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 dispone di 2 tipi di metodi: pubblici e privati. I metodi pubblici sono accessibili senza autenticazione, ad esempio per ottenere i prezzi dei ticker. I metodi privati relativi ai dati 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 |
| SubscribeSymbolTicker | Symbol | Sottoscrivi a questo topic per ricevere le notifiche push delle modifiche BBO. Se non si verificano modifiche entro un secondo, non verrà inviato nulla. Verrà inviato ogni 100ms con il BBO più recente. Se non vi sono state modifiche rispetto agli ultimi dati, non verrà inviato nulla. |
| SubscribeAllSymbolsTicker | Si iscriva a questo topic per ricevere il push di tutte le variazioni BBO dei simboli di mercato. | |
| SubscribeSymbolSnapshot | Symbol | Iscrizione per ricevere i dati di snapshot per un singolo simbolo. I dati di snapshot vengono inviati a intervalli di 2 secondi. |
| SubscribeMarketSnapshot | Mercato | Sottoscrivere questo topic per ottenere i dati snapshot dell'intero mercato. I dati snapshot vengono inviati a intervalli di 2 secondi. |
| SubscribeLevel2MarketData | Symbol | Si iscriva a questo topic per ottenere i dati del book ordini Level2. Quando l'iscrizione websocket ha successo, il sistema Le invierà i dati di variazione incrementale inviati dal websocket. |
| SubscribeLevel2_5BestAskBid | Symbol | Il sistema restituirà i dati dei 5 migliori ordini ask/bid, che sono i dati snapshot ogni 100 millisecondi (in altre parole, i dati dei 5 migliori ordini ask/bid restituiti ogni 100 millisecondi in tempo reale). |
| SubscribeLevel2_50BestAskBid | Symbol | Il sistema restituirà i dati dei 50 migliori ordini ask/bid, che sono i dati snapshot di ogni 100 millisecondi (in altre parole, i dati dei 50 migliori ordini ask/bid restituiti ogni 100 millisecondi in tempo reale). |
| SubscribeKlines | Symbol | Sottoscrivere questo topic per ricevere i dati K-Line. |
| SubscribeMatchExecutionData | Symbol | Sottoscrivere questo topic per ricevere il flusso di dati degli eventi corrispondenti del Livello 3. Per ogni ordine eseguito, il sistema invierà i messaggi di corrispondenza nel seguente formato. |
| SubscribeIndexPrice | Symbol | Sottoscriversi a questo topic per ottenere il prezzo dell'indice per il trading su margine. |
| SubscribeMarkPrice | Symbol | Iscrizione a questo topic per ricevere il prezzo mark per il trading a margine. |
| SubscribeOrderBookChanged | Symbol | Sottoscrivi questo argomento per ricevere le modifiche al book degli ordini sul trading a margine. |
| SubscribeLevel1 | Symbol | Sottoscriversi ai dati best bid/ask di Livello 1 per un simbolo. |
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. |
| SubscribePositionStatus | Il sistema invierà l'evento di modifica quando lo stato della posizione cambia. |
| SubscribeMarginTradeOrders | Il sistema invierà questo messaggio ai prestatori quando l'ordine entra nel libro degli ordini. |
| 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. |
| SubscribeTradeOrdersV2 | Sottoscrive il canale V2 degli ordini di trade per notifiche avanzate di aggiornamento degli ordini. |
| SubscribeCrossMarginPosition | Sottoscrizione agli aggiornamenti della posizione su margine incrociato. Il sistema invierà l'evento di modifica quando la posizione su margine incrociato cambia. |
| SubscribeIsolatedMarginPosition | Sottoscrivi gli aggiornamenti delle posizioni in margin isolato. Il sistema invierà l'evento di modifica quando la posizione in margin isolato cambia. |
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 |
| GetSymbolList | Mercato | Effettui una richiesta tramite questo endpoint per ottenere un elenco delle coppie di valute disponibili per il trading. Se desidera ottenere le informazioni di mercato del simbolo di trading |
| GetTicker | Symbol | Richiedere tramite questo endpoint i Dati di Mercato di Livello 1. Il valore restituito include il miglior prezzo e dimensione in acquisto, il miglior prezzo e dimensione in vendita, nonché l'ultimo prezzo negoziato e l'ultima dimensione negoziata. |
| GetAllTickers | Richiedere i ticker di mercato per tutte le coppie di trading nel mercato (incluso il volume delle ultime 24 ore). | |
| Get24hrStats | Symbol | Richiedere tramite questo endpoint per ottenere le statistiche del ticker specificato nelle ultime 24 ore. |
| GetMarketList | Richiedere tramite questo endpoint per ottenere la valuta delle transazioni per l'intero mercato di trading. | |
| GetPartOrderBook20 | Symbol | Effettuare una richiesta tramite questo endpoint per ottenere un elenco degli ordini aperti per un simbolo. Il book degli ordini di livello 2 include tutte le offerte e domande (aggregate per prezzo); questo livello restituisce una sola dimensione per ogni prezzo attivo (come se ci fosse un solo ordine per quel prezzo). Il sistema restituirà 20 dati (dati ask e bid) del book degli ordini. |
| GetPartOrderBook100 | Symbol | Effettua una richiesta tramite questo endpoint per ottenere un elenco di ordini aperti per un simbolo. Il book degli ordini di Livello 2 include tutti i bid e gli ask (aggregati per prezzo); questo livello restituisce una sola dimensione per ogni prezzo attivo (come se ci fosse un solo ordine per quel prezzo). Il sistema restituirà 100 record di dati (dati ask e bid) del book degli ordini. |
| GetFullOrderBook | Symbol | Richiedere tramite questo endpoint per ottenere il book degli ordini del simbolo specificato. Il book degli ordini di livello 2 include tutte le offerte di acquisto e di vendita (aggregate per prezzo). Questo livello restituisce una sola dimensione aggregata per ciascun prezzo (come se ci fosse un solo ordine per quel prezzo). Questa API restituirà dati con profondità completa. |
| GetKLines | Symbol | Effettua una richiesta tramite questo endpoint per ottenere la kline del simbolo specificato. I dati vengono restituiti in bucket raggruppati in base al tipo richiesto. |
| GetCurrencies | Effettuare la richiesta tramite questo endpoint per ottenere l'elenco delle valute. | |
| GetCurrencyDetail | Valuta | Richiedere tramite questo endpoint per ottenere i dettagli della valuta di una valuta specificata |
| GetFiatPrice | Richiedere tramite questo endpoint per ottenere i dettagli della valuta di una valuta specificata | |
| GetPartOrderBook1 | Symbol | Effettui una richiesta tramite questo endpoint per ottenere il miglior prezzo bid/ask di Livello 1 per un simbolo. |
EndPoint API privati
Richiede un APIKey e un APISecret per essere autorizzato dal server.
EndPoint Utente
| Metodo | Parametri | Descrizione |
| GetAllSubAccounts | È possibile ottenere le informazioni utente di tutti i sotto-utenti tramite questa interfaccia. | |
| GetListAccounts | Ottiene un elenco di account. | |
| GetAccount | AccountId | Informazioni per un singolo account. Utilizzare questo endpoint quando si conosce l'accountId. |
| GetAccountBalanceSubAccount | SubUserId | Questo endpoint restituisce le informazioni sull'account di un sotto-utente specificato tramite subUserId. |
| InnerTransfer | Questo endpoint API può essere utilizzato per trasferire fondi tra account internamente. Gli utenti possono trasferire fondi tra il proprio account principale, account di trading, account margin cross e account margin isolato senza costi. È supportato il trasferimento di fondi dall'account principale, dall'account margin cross e dall'account di trading all'account futures, ma non è supportato il trasferimento di fondi dagli account futures verso altri account. | |
| GetDepositAddresses | Valuta | Ottieni gli indirizzi di deposito per una valuta. |
| CreateDepositAddress | Valuta | Creare un nuovo indirizzo di deposito per una valuta. |
| GetDepositList | Ottiene la cronologia dei depositi. | |
| GetAccountLedgers | Ottiene le voci del ledger dell'account. | |
| GetTradeFees | Symbols | Recupera le commissioni di trading per i simboli specificati. |
Endpoint di prelievo
| Metodo | Parametri | Descrizione |
| GetWithdrawalsList | Ottieni un elenco dei prelievi. | |
| GetHistoricalWithdrawalsList | Elenco dei prelievi storici V1 di KuCoin. | |
| GetWithdrawalsQuotas | Valuta | Ottieni le quote di prelievo |
| ApplyWithdraw | Currency, Address, Amount | Crea un prelievo |
| CancelWithdraw | WithdrawalId | Solo le richieste di prelievo con stato PROCESSING possono essere annullate. |
Endpoint di trading
| Metodo | Parametri | Descrizione |
| PlaceOrder | È possibile inserire due tipi di ordini: limite e mercato. Gli ordini possono essere inseriti solo se il conto dispone di fondi sufficienti. Una volta inserito un ordine, i fondi del conto vengono bloccati per la durata dell'ordine. L'importo e il tipo di fondi bloccati dipendono dal tipo di ordine e dai parametri specificati | |
| PlaceMarketOrder | Inserisce un ordine a mercato. | |
| PlaceLimitOrder | Inserisce un Ordine Limit. | |
| PlaceMarginOrder | Inserisce un Ordine a Margine. | |
| CancelOrder | Annulla un ordine tramite ID ordine. | |
| CancelOrderByClientOid | Annulla un Order tramite il Client Order Id. | |
| CancelAllOrders | Annulla tutti gli ordini aperti. | |
| ListOrders | Richiedere tramite questo endpoint per ottenere l'elenco degli ordini correnti. Gli elementi sono paginati e ordinati per mostrare i più recenti per primi | |
| GetRecentOrders | Richiedere tramite questo endpoint per ottenere 1000 ordini nelle ultime 24 ore. | |
| GetOrder | Effettuare una richiesta tramite questo endpoint per ottenere le informazioni su un singolo ordine tramite il suo ID. | |
| GetOrderByClientOid | Richiedere tramite questo endpoint per ottenere le informazioni di un singolo ordine tramite il Client order ID. | |
| ListFills | Richiedere tramite questo endpoint per ottenere i fill recenti. | |
| GetRecentFills | Effettuare una richiesta tramite questo endpoint per ottenere un elenco di 1000 operazioni nelle ultime 24 ore. | |
| PlaceStopOrder | Inserisce un ordine Stop. | |
| PlaceStopMarketOrder | Inserisce un ordine Stop Market. | |
| PlaceStopLimitOrder | Inserisce un ordine Stop Limit. | |
| CancelStopOrder | Annulla un ordine Stop aperto tramite l'ID ordine | |
| CancelStopOrderByClientOid | Annulla un ordine Stop aperto tramite l'ID ordine del client | |
| CancelAllStopOrders | Annulla tutti gli ordini Stop | |
| GetStopOrder | Richiede tramite questa interfaccia le informazioni di uno stop order tramite l'ID dell'ordine. | |
| GetStopOrderByClientOid | Richiedere tramite questa interfaccia le informazioni su un ordine stop tramite l'ID ordine client. | |
| ListStopOrders | Richiedere tramite questo endpoint per ottenere l'elenco attuale degli ordini stop non ancora attivati. Gli elementi sono paginati e ordinati in modo da mostrare i più recenti per primi. | |
| PlaceHFOrder | Inserire un ordine ad alta frequenza. | |
| CancelHFOrder | Annulla un ordine ad alta frequenza tramite ID ordine. | |
| CancelHFOrderByClientOid | Annulla un ordine ad alta frequenza tramite l'ID dell'ordine del client. | |
| CancelAllHFOrders | Annulla tutti gli ordini ad alta frequenza. | |
| GetHFActiveOrders | Ottieni gli ordini ad alta frequenza attivi. | |
| GetHFDoneOrders | Ottiene gli ordini ad alta frequenza completati. | |
| GetHFOrder | Ottieni un ordine ad alta frequenza specifico tramite l'ID ordine. |
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).