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 dispose 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 des 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 |
| SubscribeSymbolTickerV2 | Symbol | Abonnez-vous à ce topic pour recevoir les mises à jour BBO en temps réel. Après l'abonnement, lorsque des changements surviennent dans le carnet d'ordres, le système vous enverra les informations du ticker en temps réel. Il est recommandé d'utiliser le nouveau topic pour des informations à jour. |
| SubscribeSymbolTicker | Symbol | Abonnez-vous à ce sujet pour obtenir les mises à jour BBO en temps réel. Le canal ticker fournit des mises à jour de prix en temps réel à chaque transaction. Si plusieurs ordres sont exécutés simultanément, seul le dernier événement de correspondance sera transmis. |
| SubscribeLevel2MarketData | Symbol | Abonnez-vous à ce sujet pour obtenir les données du carnet d'ordres de niveau 2. |
| SubscribeExecutionData | Symbol | Pour chaque ordre exécuté, le système vous enverra les messages de correspondance dans le format suivant. |
| SubscribeLevel2_5BestAskBid | Symbol | Retourné au maximum toutes les 100 millisecondes. |
| SubscribeLevel2_50BestAskBid | Symbol | Retourné au maximum toutes les 100 millisecondes. |
| SubscribeContractMarketData | Symbol | Abonnez-vous à ce sujet pour obtenir les données de marché du contrat. |
| SubscribeSystemAnnouncements | Symbol | Abonnez-vous à ce topic pour recevoir les annonces système. |
| SubscribeTransactionStatistics | Symbol | Les statistiques de transaction seront envoyées aux utilisateurs toutes les 5 secondes. |
| SubscribeKlines | Symbol | S'abonner aux données de lignes de contrat (chandeliers). |
| SubscribeFundingFeeSettlement | Symbol | Abonnez-vous aux notifications de règlement des frais de financement. |
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. |
| SubscribePositionChange | Le système enverra l'événement de changement lorsque le statut de la position change. |
| 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é. |
| SubscribeMarginMode | Abonnez-vous aux changements de mode de marge. Le système enverra l'événement de changement lorsque le mode de marge est mis à jour. |
| SubscribeCrossMarginLeverage | S'abonner aux modifications de levier en marge croisée. Le système transmettra l'événement de modification lorsque le levier en marge croisée est mis à jour. |
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 |
| GetOpenContractList | Soumettre une requête pour obtenir les informations de tous les contrats ouverts. | |
| GetOrderInfoContract | Soumettre une requête pour obtenir les informations du contrat spécifié. | |
| GetTicker | Symbol | Le ticker en temps réel inclut le dernier prix négocié, la dernière taille négociée, l'identifiant de transaction, le côté du preneur de liquidité, le meilleur prix et taille bid, le meilleur prix et taille ask ainsi que l'heure de transaction des ordres. Ces messages peuvent également être obtenus via Websocket. Le numéro de séquence est utilisé pour déterminer si les messages poussés par Websocket sont continus. |
| GetPartOrderBook20 | Symbol | Obtenir un snapshot des ordres ouverts agrégés pour un symbole. |
| GetPartOrderBook100 | Symbol | Obtenir un snapshot des ordres ouverts agrégés pour un symbole. |
| GetFullOrderBook | Symbol | Obtenir un snapshot des ordres ouverts agrégés pour un symbole. |
| GetLevel2PullingMessages | Symbol | Si les messages poussés par Websocket ne sont pas continus, vous pouvez soumettre la requête suivante et récupérer à nouveau les données pour vous assurer que la séquence n'est pas manquante. Dans la requête, le paramètre start est le numéro de séquence de votre dernier message reçu plus 1, et le paramètre end est le numéro de séquence de votre message reçu actuel moins 1. Après avoir récupéré à nouveau les messages et les avoir appliqués à votre carnet d'ordres d'exchange local, vous pouvez continuer à mettre à jour le carnet d'ordres via le flux incrémental Websocket. Si la différence entre le paramètre end et start est supérieure à 500, arrêtez d'utiliser cette requête et nous vous suggérons de reconstruire le carnet d'ordres Level 2. |
| GetTradeHistory | Symbol | Lister les 100 dernières transactions pour un symbole. |
| GetInterestRateList | Symbol | Vérifier la liste des taux d'intérêt. |
| GetIndexList | Symbol | Vérifier la liste des index |
| GetCurrentMarkPrice | Symbol | Vérifier le prix mark actuel. |
| GetPremiumIndex | Symbol | Soumettre une requête pour obtenir l'indice de prime. |
| GetCurrentFundingRate | Symbol | Soumettre une requête pour vérifier le prix mark actuel. |
| GetKLine | Symbol | Obtenir les données K Line du contrat |
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 |
| GetAccountOverview | Obtenir la vue d'ensemble du compte | |
| GetTransactionHistory | Si des positions ouvertes existent, le statut de la première page retournée sera Pending, indiquant le profit et la perte réalisés dans la période de règlement de 8 heures en cours. Veuillez spécifier le numéro d'offset minimum de la page courante dans le champ offset pour tourner la page. |
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é, vos fonds seront mis en attente pour la durée de l'ordre. Le montant des fonds en attente dépend du type d'ordre et des paramètres spécifiés. | |
| PlaceMarketOrder | Place un ordre au marché. | |
| PlaceLimitOrder | Place un ordre à cours limité. | |
| CancelOrder | Annule un ordre par identifiant d'ordre. | |
| LimitOrderMassCancellation | Annuler tous les ordres ouverts (à l'exclusion des ordres stop). La réponse est une liste d'orderID des ordres annulés. | |
| StopOrderMassCancellation | Annuler tous les ordres stop non déclenchés. La réponse est une liste d'IDs d'ordres des ordres stop annulés. Pour annuler les ordres stop déclenchés, veuillez utiliser 'Limit Order Mass Cancelation'. | |
| GetOrderList | Listez vos ordres actuels. | |
| GetUntriggeredStopOrderList | Obtenir la liste des ordres stop non déclenchés. | |
| GetListOrdersCompleted24hr | Obtenir la liste des 1000 ordres récents des dernières 24 heures. Si vous avez besoin d'obtenir l'historique de vos ordres tradés récents avec une faible latence, vous pouvez interroger ce point de terminaison. | |
| GetOrder | Obtenir un ordre unique par identifiant d'ordre (y compris un ordre stop). | |
| GetOrderByClientOid | Obtenir un seul ordre par identifiant d'ordre client (y compris un ordre stop). | |
| GetFills | Obtenir la liste des exécutions récentes. | |
| GetRecentFills | Obtenir la liste des 1000 exécutions récentes des dernières 24 heures. Si vous avez besoin d'obtenir l'historique de vos ordres récents avec une faible latence, vous pouvez interroger ce point de terminaison. | |
| ActiveOrderValueCalculation | Vous pouvez interroger ce point de terminaison pour obtenir le nombre total et la valeur de tous vos ordres actifs. | |
| GetPositionDetails | Obtenir les détails d'une position spécifiée. | |
| GetPositionList | Obtenir les détails d'une position spécifiée. | |
| AutoDepositMargin | Activer/Désactiver le dépôt de marge automatique | |
| AddMarginManually | Ajouter manuellement une marge | |
| ObtainFuturesRiskLimitLevel | Cette interface peut être utilisée pour obtenir des informations sur le niveau de limite de risque d'un contrat spécifique | |
| AdjustRiskLimitLevel | Cette interface est destinée à l'ajustement du niveau de limite de risque. L'ajustement du niveau annulera l'ordre ouvert ; la réponse peut uniquement indiquer si la soumission de la demande d'ajustement a réussi ou non. | |
| GetFundingHistory | Soumettre une demande pour obtenir l'historique des financements. | |
| GetMaxOpenSize | Obtenir la taille de position ouverte maximale pour un contrat. | |
| SwitchMarginMode | Basculer entre les modes de marge croisée et de marge isolée. | |
| GetMarginMode | Obtenir le mode de marge actuel pour un contrat. |
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).