Kucoin è un exchange di criptovalute internazionale e multilingue. Offre alcune API per accedere ai dati di Kucoin. Sono supportate le seguenti API:
L'API Kucoin ha 2 tipi di metodi: pubblici e privati. I metodi pubblici sono accessibili senza autenticazione, ad esempio: ottenere i prezzi dei ticker. I metodi privati e relativi ai dati dell'utente richiedono l'uso delle chiavi API Kucoin.
REST API
Per sottoscrivere i messaggi di un canale da un determinato server, il lato client deve inviare un messaggio di sottoscrizione al server.
Se la sottoscrizione ha esito positivo, il sistema invierà messaggi ack quando la risposta è impostata su true.
{
"id":"1545910660739",
"type":"ack"
}
Mentre vengono generati messaggi di topic, il sistema invierà i messaggi corrispondenti al lato client.
Sono supportati i seguenti metodi di sottoscrizione/cancellazione della sottoscrizione.
| Metodo | Parametri | Descrizione |
| SubscribeSymbolTickerV2 | Symbol | Sottoscriviti a questo topic per ricevere gli aggiornamenti in tempo reale delle variazioni BBO. Dopo la sottoscrizione, quando si verificano modifiche nel book degli ordini, il sistema invierà in tempo reale le informazioni sul simbolo del ticker. Si consiglia di utilizzare il nuovo topic per informazioni tempestive. |
| SubscribeSymbolTicker | Symbol | Sottoscrivere questo topic per ricevere gli aggiornamenti in tempo reale delle variazioni BBO. Il canale ticker fornisce aggiornamenti dei prezzi in tempo reale ogni volta che avviene un'esecuzione. Se vengono abbinati più ordini contemporaneamente, verrà inviato solo l'ultimo evento di abbinamento. |
| SubscribeLevel2MarketData | Symbol | Sottoscrivere questo topic per ottenere i dati dell'order book di Livello 2. |
| SubscribeExecutionData | Symbol | Per ogni ordine eseguito, il sistema invierà i messaggi di corrispondenza nel formato seguente. |
| SubscribeLevel2_5BestAskBid | Symbol | Restituito al massimo ogni 100 millisecondi. |
| SubscribeLevel2_50BestAskBid | Symbol | Restituito al massimo ogni 100 millisecondi. |
| SubscribeContractMarketData | Symbol | Sottoscrivere questo topic per ottenere i dati di mercato del contratto. |
| SubscribeSystemAnnouncements | Symbol | Sottoscrivere questo topic per ricevere gli annunci di sistema. |
| SubscribeTransactionStatistics | Symbol | Le statistiche delle transazioni verranno inviate agli utenti ogni 5 secondi. |
| SubscribeKlines | Symbol | Effettua la sottoscrizione ai dati delle klines (candlestick) dei contratti. |
| SubscribeFundingFeeSettlement | Symbol | Sottoscrivere le notifiche di liquidazione delle commissioni di finanziamento. |
Se il parametro ACK viene inviato a true, dopo una sottoscrizione/annullamento della sottoscrizione riuscita, il client riceve un messaggio in merito.
Richiede una ApiKey valida ottenuta dal Suo account Kucoin. ApiKey, ApiSecret e Passphrase devono essere impostati nella proprietà Kucoin del componente API client.
I seguenti dati vengono inviati al client ogni volta che si verifica una modifica. Non è necessario sottoscrivere alcun metodo; questa operazione viene eseguita automaticamente se si imposta un ApiKey valido.
| Metodo | Descrizione |
| SubscribeTradeOrders | Questo topic invierà tutti gli eventi di modifica degli ordini. |
| SubscribeAccountBalance |
Si riceverà questo messaggio quando cambia il saldo di un account. Il messaggio contiene i dettagli della modifica. |
| SubscribePositionChange | Il sistema invierà l'evento di modifica quando lo stato della posizione cambia. |
| SubscribeStopOrder | Quando un ordine stop viene ricevuto dal sistema, si riceverà un messaggio con tipo "open". Ciò significa che l'ordine è entrato nel sistema ed è in attesa di essere attivato. |
| SubscribeMarginMode | Sottoscrizione alle modifiche della modalità di margine. Il sistema invierà l'evento di modifica quando la modalità di margine viene aggiornata. |
| SubscribeCrossMarginLeverage | Iscriversi alle variazioni della leva cross margin. Il sistema invierà l'evento di modifica quando la leva cross margin viene aggiornata. |
Tutti gli endpoint restituiscono un oggetto o un array JSON.
EndPoint API Pubblici
Questi endpoint sono accessibili senza alcuna autorizzazione.
EndPoint generali
| Metodo | Parametri | Descrizione |
| GetServiceStatus | Verifica la connettività all'API Rest e ottieni lo stato del servizio | |
| GetServerTime | Verifica la connettività alla Rest API e ottiene l'ora corrente del server. |
EndPoint dei dati di mercato
| Metodo | Parametri | Descrizione |
| GetOpenContractList | Invia una richiesta per ottenere le informazioni su tutti i contratti aperti. | |
| GetOrderInfoContract | Invia una richiesta per ottenere informazioni sul contratto specificato. | |
| GetTicker | Symbol | Il ticker in tempo reale include l'ultimo prezzo negoziato, l'ultima dimensione negoziata, l'ID transazione, il lato del taker di liquidità, il miglior prezzo e dimensione bid, il miglior prezzo e dimensione ask, nonché il momento della transazione degli ordini. Questi messaggi possono essere ottenuti anche tramite WebSocket. Il Sequence Number viene utilizzato per verificare se i messaggi inviati tramite WebSocket sono continui. |
| GetPartOrderBook20 | Symbol | Ottieni uno snapshot degli ordini aperti aggregati per un simbolo. |
| GetPartOrderBook100 | Symbol | Ottieni uno snapshot degli ordini aperti aggregati per un simbolo. |
| GetFullOrderBook | Symbol | Ottieni uno snapshot degli ordini aperti aggregati per un simbolo. |
| GetLevel2PullingMessages | Symbol | Se i messaggi inviati tramite WebSocket non sono continui, è possibile inviare la seguente richiesta e recuperare nuovamente i dati per garantire che la sequenza non presenti lacune. Nella richiesta, il parametro start corrisponde al numero di sequenza dell'ultimo messaggio ricevuto più 1, mentre il parametro end corrisponde al numero di sequenza del messaggio ricevuto corrente meno 1. Dopo aver recuperato nuovamente i messaggi e averli applicati al proprio order book locale, è possibile continuare ad aggiornare l'order book tramite il feed incrementale WebSocket. Se la differenza tra il parametro end e il parametro start è superiore a 500, interrompere l'utilizzo di questa richiesta e si consiglia di ricostruire il Level 2 orderbook. |
| GetTradeHistory | Symbol | Elenca le ultime 100 operazioni per un simbolo. |
| GetInterestRateList | Symbol | Verificare l'elenco dei tassi di interesse. |
| GetIndexList | Symbol | Verifica elenco indici |
| GetCurrentMarkPrice | Symbol | Verifica il mark price corrente. |
| GetPremiumIndex | Symbol | Invia una richiesta per ottenere l'indice premium. |
| GetCurrentFundingRate | Symbol | Invia richiesta per verificare il prezzo mark corrente. |
| GetKLine | Symbol | Ottieni i Dati K Line del Contratto |
EndPoint API privati
Richiede un APIKey e un APISecret per essere autorizzato dal server.
EndPoint Utente
| Metodo | Parametri | Descrizione |
| GetAccountOverview | Ottieni panoramica dell'account | |
| GetTransactionHistory | Se ci sono posizioni aperte, lo stato della prima pagina restituita sarà Pending, indicando il profitto e la perdita realizzati nel periodo di liquidazione corrente di 8 ore. Specificare il numero di offset minimo della pagina corrente nel campo offset per voltare pagina. |
Endpoint di trading
| Metodo | Parametri | Descrizione |
| PlaceOrder | Può inserire due tipi di ordini: limit e market. Gli ordini possono essere inseriti solo se il suo account dispone di fondi sufficienti. Una volta inserito un ordine, i suoi fondi verranno bloccati per la durata dell'ordine. L'importo dei fondi bloccati dipende dal tipo di ordine e dai parametri specificati. | |
| PlaceMarketOrder | Inserisce un ordine a mercato. | |
| PlaceLimitOrder | Inserisce un Ordine Limit. | |
| CancelOrder | Annulla un ordine tramite ID ordine. | |
| LimitOrderMassCancellation | Annulla tutti gli ordini aperti (esclusi gli ordini stop). La risposta è un elenco di orderID degli ordini annullati. | |
| StopOrderMassCancellation | Annulla tutti gli ordini stop non attivati. La risposta è un elenco di orderID degli ordini stop annullati. Per annullare gli ordini stop attivati, utilizzare 'Limit Order Mass Cancelation'. | |
| GetOrderList | Elenca gli ordini correnti. | |
| GetUntriggeredStopOrderList | Ottiene l'elenco degli ordini stop non attivati. | |
| GetListOrdersCompleted24hr | Ottieni un elenco dei 1000 ordini recenti nelle ultime 24 ore. Se è necessario ottenere la cronologia degli ordini negoziati di recente con bassa latenza, è possibile interrogare questo endpoint. | |
| GetOrder | Recupero di un singolo ordine tramite id ordine (incluso un ordine stop). | |
| GetOrderByClientOid | Recupera un singolo ordine tramite l'ID ordine del client (incluso un ordine stop). | |
| GetFills | Recupera un elenco delle transazioni recenti. | |
| GetRecentFills | Ottieni un elenco degli ultimi 1000 eseguiti nelle ultime 24 ore. Se è necessario ottenere la cronologia degli ordini negoziati di recente con bassa latenza, è possibile interrogare questo endpoint. | |
| ActiveOrderValueCalculation | È possibile interrogare questo endpoint per ottenere il numero totale e il valore di tutti gli ordini attivi. | |
| GetPositionDetails | Ottieni i dettagli di una posizione specificata. | |
| GetPositionList | Ottieni i dettagli di una posizione specificata. | |
| AutoDepositMargin | Abilitazione/Disabilitazione del margine a deposito automatico | |
| AddMarginManually | Aggiungi Margine Manualmente | |
| ObtainFuturesRiskLimitLevel | Questa interfaccia può essere utilizzata per ottenere informazioni sul livello del limite di rischio di uno specifico contratto | |
| AdjustRiskLimitLevel | Questa interfaccia serve per la regolazione del livello del limite di rischio. La regolazione del livello annullerà l'ordine aperto; la risposta può solo indicare se l'invio della richiesta di regolazione è andato a buon fine o meno. | |
| GetFundingHistory | Invia richiesta per ottenere la cronologia del finanziamento. | |
| GetMaxOpenSize | Ottieni la dimensione massima della posizione aperta per un contratto. | |
| SwitchMarginMode | Passa dalla modalità cross margin alla modalità isolated margin e viceversa. | |
| GetMarginMode | Ottiene la modalità di margine corrente per un contratto. |
I messaggi Kucoin vengono ricevuti nel componente TsgcWebSocketClient; è possibile utilizzare i seguenti eventi:
OnConnect
Dopo una connessione riuscita al server Kucoin.
OnDisconnect
Dopo una disconnessione dal server Kucoin
OnMessage
I messaggi inviati dal server al client vengono gestiti in questo evento.
OnError
In caso di qualsiasi errore nel protocollo, verrà chiamato questo evento.
OnException
Se si verifica un'eccezione non gestita, verrà chiamato questo evento.
Inoltre, è disponibile un evento specifico nel componente API Kucoin, denominato OnKucoinHTTPException, che viene generato ogni volta che si verifica un errore durante la chiamata a una richiesta HTTP (REST API o WebSocket Feed).