API Kucoin

Kucoin

 

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 :

 

  1. Flux WebSocket : permet de s'abonner à certaines méthodes et d'obtenir des données en temps réel. Les événements sont poussés vers les clients par le serveur vers les abonnés. Utilise WebSocket comme protocole.
  2. REST API : les clients peuvent demander au serveur des données de marché et de compte. Nécessite une clé API, un secret et une phrase de passe pour s'authentifier et utilise HTTPs comme protocole.

 

 

Propriétés

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.

 

 

Utilisations les plus courantes

 

Flux WebSocket

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.

 

Canaux publics

 

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.

 

Canaux privés

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.

 

 

REST API

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.

 

 

Événements

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).