Kucoin est une plateforme d'échange de cryptomonnaies internationale et multilingue. Elle propose plusieurs API pour accéder aux données Kucoin. Les API suivantes sont prises en charge :
L'API Kucoin possède 2 types de méthodes : publiques et privées. Les méthodes publiques sont accessibles sans authentification, par exemple : obtenir les prix des tickers. Les méthodes privées liées aux données utilisateur nécessitent l'utilisation de clés API Kucoin.
REST API
Pour s'abonner aux messages d'un canal depuis un certain serveur, le côté client doit envoyer un message d'abonnement au serveur.
Si l'abonnement réussit, le système vous enverra des messages ack lorsque la réponse est définie à true.
{
"id":"1545910660739",
"type":"ack"
}
Tant que des messages de sujet sont générés, le système enverra les messages correspondants côté client.
Les méthodes d'abonnement / désabonnement suivantes sont prises en charge.
| Méthode | Paramètres | Description |
| SubscribeSymbolTicker | Symbol | Abonnez-vous à ce sujet pour recevoir les notifications de changements BBO. S'il n'y a aucun changement en une seconde, aucun push ne sera effectué. Les données seront poussées toutes les 100 ms avec le BBO le plus récent. Si aucun changement n'est détecté par rapport aux dernières données, aucun push ne sera effectué. |
| SubscribeAllSymbolsTicker | S'abonner à ce sujet pour recevoir le push de tous les changements BBO des symboles du marché. | |
| SubscribeSymbolSnapshot | Symbol | S'abonner pour obtenir les données instantanées d'un seul symbole. Les données instantanées sont envoyées à intervalles de 2 secondes. |
| SubscribeMarketSnapshot | Marché | Abonnez-vous à ce topic pour obtenir les données instantanées de l'ensemble du marché. Les données instantanées sont poussées à intervalles de 2 secondes. |
| SubscribeLevel2MarketData | Symbol | Abonnez-vous à ce sujet pour obtenir les données du carnet d'ordres Level2. Lorsque l'abonnement WebSocket est réussi, le système vous enverra les données de changement incrémentielles transmises par le WebSocket. |
| SubscribeLevel2_5BestAskBid | Symbol | Le système renverra les 5 meilleures données d'ordres ask/bid, qui sont les données instantanées de chaque 100 millisecondes (en d'autres termes, les 5 meilleures données d'ordres ask/bid renvoyées toutes les 100 millisecondes en temps réel). |
| SubscribeLevel2_50BestAskBid | Symbol | Le système retournera les 50 meilleures données d'ordres ask/bid, qui sont les données de snapshot toutes les 100 millisecondes (en d'autres termes, les 50 meilleures données d'ordres ask/bid retournées toutes les 100 millisecondes en temps réel). |
| SubscribeKlines | Symbol | Abonnez-vous à ce sujet pour obtenir des données K-Line. |
| SubscribeMatchExecutionData | Symbol | Abonnez-vous à ce topic pour obtenir le flux de données d'événements correspondant du niveau 3. Pour chaque ordre exécuté, le système vous enverra les messages de correspondance dans le format suivant. |
| SubscribeIndexPrice | Symbol | Abonnez-vous à ce topic pour obtenir le prix d'index pour le trading sur marge. |
| SubscribeMarkPrice | Symbol | S'abonner à cette rubrique pour obtenir le prix mark pour le trading sur marge. |
| SubscribeOrderBookChanged | Symbol | Abonnez-vous à ce sujet pour obtenir les modifications du carnet d'ordres sur les transactions sur marge. |
| SubscribeLevel1 | Symbol | S'abonner aux données meilleur cours acheteur/vendeur de niveau 1 pour un symbole. |
Si le paramètre ACK est envoyé à true, après un abonnement / désabonnement réussi, le client reçoit un message à ce sujet.
Nécessite une ApiKey valide obtenue depuis votre compte Kucoin. L'ApiKey, l'ApiSecret et la Passphrase doivent être définis dans la propriété Kucoin du composant API client.
Les données suivantes sont envoyées au client chaque fois qu'il y a un changement. Il n'est pas nécessaire de s'abonner à une méthode ; cela est fait automatiquement si vous définissez une ApiKey valide.
| Méthode | Description |
| SubscribeTradeOrders | Ce topic enverra tous les événements de modification de vos ordres. |
| SubscribeAccountBalance |
Vous recevrez ce message lorsque le solde d'un compte change. Le message contient les détails du changement. |
| SubscribePositionStatus | Le système enverra l'événement de changement lorsque le statut de la position change. |
| SubscribeMarginTradeOrders | Le système enverra ce message aux prêteurs lorsque l'ordre entre dans le carnet d'ordres. |
| SubscribeStopOrder | Lorsqu'un ordre stop est reçu par le système, vous recevrez un message avec le type « open ». Cela signifie que cet ordre est entré dans le système et attend d'être déclenché. |
| SubscribeTradeOrdersV2 | S'abonner au canal des ordres de trade V2 pour des notifications enrichies de mise à jour d'ordres. |
| SubscribeCrossMarginPosition | S'abonner aux mises à jour de position en marge croisée. Le système poussera l'événement de modification lorsque la position en marge croisée change. |
| SubscribeIsolatedMarginPosition | S'abonner aux mises à jour de position sur marge isolée. Le système enverra l'événement de changement lorsque la position sur marge isolée change. |
Tous les points de terminaison retournent soit un objet JSON, soit un tableau JSON.
Points de terminaison API publics
Ces points de terminaison sont accessibles sans aucune autorisation.
Points de terminaison généraux
| Méthode | Paramètres | Description |
| GetServiceStatus | Tester la connectivité à l'API Rest et obtenir l'état du service | |
| GetServerTime | Tester la connectivité à l'API Rest et obtenir l'heure actuelle du serveur. |
Points de terminaison des données de marché
| Méthode | Paramètres | Description |
| GetSymbolList | Marché | Faites une requête via ce point de terminaison pour obtenir une liste des paires de devises disponibles pour le trading. Si vous souhaitez obtenir les informations de marché du symbole de trading |
| GetTicker | Symbol | Utilisez ce point de terminaison pour obtenir les données de marché de niveau 1. La valeur retournée inclut le meilleur prix et la meilleure taille d'achat, le meilleur prix et la meilleure taille de vente, ainsi que le dernier prix négocié et la dernière taille négociée. |
| GetAllTickers | Demande les tickers de marché pour toutes les paires de trading sur le marché (y compris le volume sur 24h). | |
| Get24hrStats | Symbol | Envoyez une requête à cet endpoint pour obtenir les statistiques du ticker spécifié au cours des 24 dernières heures. |
| GetMarketList | Faites une requête via ce point de terminaison pour obtenir la devise de transaction de l'ensemble du marché de trading. | |
| GetPartOrderBook20 | Symbol | Utilisez ce point de terminaison pour obtenir la liste des ordres ouverts pour un symbole. Le carnet d'ordres de niveau 2 inclut tous les bids et asks (agrégés par prix) ; ce niveau ne retourne qu'une seule taille par prix actif (comme s'il n'y avait qu'un seul ordre pour ce prix). Le système retournera 20 éléments de données (bids et asks) pour le carnet d'ordres. |
| GetPartOrderBook100 | Symbol | Utilisez ce point de terminaison pour obtenir une liste des ordres ouverts pour un symbole. Le carnet d'ordres de niveau 2 inclut toutes les offres et demandes (agrégées par prix), ce niveau ne retourne qu'une seule taille pour chaque prix actif (comme s'il n'y avait qu'un seul ordre pour ce prix). Le système vous retournera 100 éléments de données (données d'offre et de demande) sur le carnet d'ordres. |
| GetFullOrderBook | Symbol | Effectuez une requête via ce point de terminaison pour obtenir le carnet d'ordres du symbole spécifié. Le carnet d'ordres de niveau 2 inclut toutes les offres et demandes (agrégées par prix). Ce niveau retourne une seule taille agrégée pour chaque prix (comme s'il n'y avait qu'un seul ordre pour ce prix). Cette API retournera les données avec toute la profondeur. |
| GetKLines | Symbol | Effectuez une requête via ce point de terminaison pour obtenir la kline du symbole spécifié. Les données sont retournées dans des intervalles regroupés selon le type demandé. |
| GetCurrencies | Effectuez une requête via cet endpoint pour obtenir la liste des devises. | |
| GetCurrencyDetail | Devise | Effectuez une requête via ce point de terminaison pour obtenir les détails de la devise d'une devise spécifiée |
| GetFiatPrice | Effectuez une requête via ce point de terminaison pour obtenir les détails de la devise d'une devise spécifiée | |
| GetPartOrderBook1 | Symbol | Faites une requête via ce point de terminaison pour obtenir la meilleure offre/demande de Niveau 1 pour un symbole. |
Points de terminaison API privés
Nécessite une APIKey et un APISecret pour être autorisé par le serveur.
Points de terminaison utilisateur
| Méthode | Paramètres | Description |
| GetAllSubAccounts | Vous pouvez obtenir les informations utilisateur de tous les sous-utilisateurs via cette interface. | |
| GetListAccounts | Obtenir une liste de comptes. | |
| GetAccount | AccountId | Informations pour un seul compte. Utilisez ce point de terminaison lorsque vous connaissez l'accountId. |
| GetAccountBalanceSubAccount | SubUserId | Ce point de terminaison retourne les informations de compte d'un sous-utilisateur identifié par le subUserId. |
| InnerTransfer | Ce point de terminaison API peut être utilisé pour transférer des fonds entre comptes en interne. Les utilisateurs peuvent transférer des fonds entre leur compte principal, compte de trading, compte de marge croisée et compte de marge isolée sans frais. Le transfert de fonds depuis le compte principal, le compte de marge croisée et le compte de trading vers le compte futures est pris en charge, mais le transfert de fonds depuis les comptes futures vers d'autres comptes n'est pas pris en charge. | |
| GetDepositAddresses | Devise | Obtenir les adresses de dépôt pour une devise. |
| CreateDepositAddress | Devise | Créer une nouvelle adresse de dépôt pour une devise. |
| GetDepositList | Obtenir l'historique des dépôts. | |
| GetAccountLedgers | Obtenir les entrées du registre du compte. | |
| GetTradeFees | Symboles | Récupère les frais de transaction pour les symboles spécifiés. |
Points de terminaison de retrait
| Méthode | Paramètres | Description |
| GetWithdrawalsList | Obtenir la liste des retraits. | |
| GetHistoricalWithdrawalsList | Liste des retraits historiques KuCoin V1. | |
| GetWithdrawalsQuotas | Devise | Obtenir les quotas de retrait |
| ApplyWithdraw | Devise, Adresse, Montant | Créer un retrait |
| CancelWithdraw | WithdrawalId | Seules les demandes de retrait avec le statut PROCESSING peuvent être annulées. |
Points de terminaison de trading
| Méthode | Paramètres | Description |
| PlaceOrder | Vous pouvez passer deux types d'ordres : limite et marché. Les ordres ne peuvent être passés que si votre compte dispose de fonds suffisants. Une fois un ordre passé, les fonds de votre compte seront mis en attente pendant la durée de l'ordre. Le montant et le type de fonds mis en attente dépendent du type d'ordre et des paramètres spécifiés | |
| PlaceMarketOrder | Place un ordre au marché. | |
| PlaceLimitOrder | Place un ordre à cours limité. | |
| PlaceMarginOrder | Place un ordre sur marge. | |
| CancelOrder | Annule un ordre par identifiant d'ordre. | |
| CancelOrderByClientOid | Annule un ordre par identifiant d'ordre client. | |
| CancelAllOrders | Annuler tous les ordres ouverts. | |
| ListOrders | Effectuez une requête via ce point de terminaison pour obtenir votre liste d'ordres actuelle. Les éléments sont paginés et triés pour afficher les plus récents en premier. | |
| GetRecentOrders | Demandez via ce point d'accès pour obtenir 1000 ordres des dernières 24 heures. | |
| GetOrder | Utilisez ce point de terminaison pour obtenir les informations d'un ordre par son identifiant. | |
| GetOrderByClientOid | Faites une requête à ce point de terminaison pour obtenir les informations d'un ordre unique par identifiant d'ordre client. | |
| ListFills | Faites une requête via ce point de terminaison pour obtenir les transactions récentes. | |
| GetRecentFills | Utilisez ce point de terminaison pour obtenir une liste de 1000 exécutions des dernières 24 heures. | |
| PlaceStopOrder | Placer un ordre Stop. | |
| PlaceStopMarketOrder | Place un ordre stop au marché. | |
| PlaceStopLimitOrder | Place un ordre Stop Limit. | |
| CancelStopOrder | Annule un ordre stop ouvert par identifiant d'ordre | |
| CancelStopOrderByClientOid | Annule un ordre stop ouvert par identifiant d'ordre client | |
| CancelAllStopOrders | Annuler tous les ordres stop | |
| GetStopOrder | Requête via cette interface pour obtenir les informations d'un ordre stop via l'identifiant d'ordre. | |
| GetStopOrderByClientOid | Demandez via cette interface pour obtenir les informations d'un ordre stop via l'identifiant d'ordre client. | |
| ListStopOrders | Envoyez une requête à ce point de terminaison pour obtenir votre liste actuelle d'ordres stop non déclenchés. Les éléments sont paginés et triés pour afficher les plus récents en premier. | |
| PlaceHFOrder | Placer un ordre à haute fréquence. | |
| CancelHFOrder | Annuler un ordre haute fréquence par identifiant d'ordre. | |
| CancelHFOrderByClientOid | Annuler un ordre haute fréquence par identifiant d'ordre client. | |
| CancelAllHFOrders | Annuler tous les ordres à haute fréquence. | |
| GetHFActiveOrders | Obtenir les ordres haute fréquence actifs. | |
| GetHFDoneOrders | Obtenir les ordres haute fréquence terminés. | |
| GetHFOrder | Obtenir un ordre haute fréquence spécifique par son identifiant. |
Les messages Kucoin sont reçus dans le composant TsgcWebSocketClient ; vous pouvez utiliser les événements suivants :
OnConnect
Après une connexion réussie au serveur Kucoin.
OnDisconnect
Après une déconnexion du serveur Kucoin
OnMessage
Les messages envoyés par le serveur au client sont traités dans cet événement.
OnError
En cas d'erreur dans le protocole, cet événement sera appelé.
OnException
En cas d'exception non gérée, cet événement sera appelé.
De plus, il existe un événement spécifique dans le composant API Kucoin, appelé OnKucoinHTTPException, qui est déclenché chaque fois qu'une erreur se produit lors de l'appel d'une requête HTTP (API REST ou flux WebSocket).