API Cex Plus

Cex Plus

 

APIs prises en charge

 

 

Propriétés

API WebSockets

WebSocket est un protocole de communication full-duplex basé sur TCP. Full-duplex signifie que les deux parties peuvent s'envoyer des messages de manière asynchrone en utilisant le même canal de communication. Cette section décrit quels messages Exchange Plus et le Client doivent s'envoyer mutuellement. Tous les messages doivent être des objets JSON valides.

 

L'API WebSocket est principalement utilisée pour obtenir des informations ou effectuer des actions qui ne sont pas disponibles ou pas faciles à réaliser avec l'API REST. Cependant, certaines requêtes ou actions peuvent être effectuées aussi bien via l'API REST que l'API WebSocket. Exchange Plus envoie des messages au client en réponse à une requête précédemment envoyée par le client, ou comme notification d'un événement (sans requête préalable du client).

 

 

Appels API publics

 

La limite de débit de l'API publique est implicite afin de protéger le système contre les attaques DDoS et de garantir que tous les clients ont le même niveau d'accès stable aux points de terminaison de l'API Exchange Plus. Les requêtes publiques sont limitées par l'adresse IP depuis laquelle les requêtes d'API publiques sont effectuées. Les limites de requêtes sont déterminées à partir du coût associé à chaque appel d'API publique. Par défaut, chaque requête publique a un coût de 1 point, mais pour certaines requêtes spécifiques, ce coût peut être plus élevé. Consultez les informations à jour sur le coût de la limite de débit des requêtes dans la spécification de chaque méthode.

 

Exchange Plus limite les appels à l'API publique à un maximum de 100 points par minute, sachant que chaque appel à l'API publique a son propre coût (voir ci-dessous). Si la limite de débit des requêtes est atteinte, Exchange Plus répond avec une erreur, envoie un événement de déconnexion au client et ferme la connexion WS ensuite. Exchange Plus reprendra le service au client à partir de la prochaine minute calendaire. Dans l'exemple suivant, le compteur de requêtes sera réinitialisé à 11:02:00.000.

 

Méthode Description
GetTicker Cette méthode est conçue pour obtenir des informations actuelles sur le Ticker, y compris les données sur les prix actuels, les variations de prix et de volume sur 24h, le dernier événement de transaction, etc. pour certains actifs.
GetOrderBook Cette méthode permet au client de recevoir un instantané actuel du carnet d'ordres pour une paire de trading spécifique.
GetCandles En utilisant la méthode Candles, le client peut recevoir des bougies OHLCV historiques de différentes résolutions et types de données. Le client peut indiquer des filtres supplémentaires de plage de temps et de limite pour rendre la réponse plus précise aux exigences du client.
GetTradeHistory Cette méthode permet au client d'obtenir des données historiques sur les trades effectués sur la paire de trading demandée. Le client peut compléter la requête d'historique de trades avec des paramètres de filtre supplémentaires, tels que la période de temps, la plage d'identifiants de trade, le côté, etc., pour recevoir les trades correspondant aux paramètres de la requête.
GetServerTime Cette méthode est utilisée pour obtenir l'heure actuelle sur le serveur Exchange Plus. Elle peut être utile pour les applications qui doivent être synchronisées avec l'heure du serveur.
GetPairsInfo La méthode Pair Info permet au client de recevoir les paramètres pour toutes les paires de trading supportées.
GetCurrenciesInfo La méthode Currencies Info permet au client de recevoir les paramètres de toutes les devises configurées dans Exchange Plus ainsi que la disponibilité des dépôts et retraits entre Exchange Plus et le portefeuille CEX.IO.
GetProcessingInfo Cette requête permet au Client de recevoir des informations détaillées sur les options disponibles pour effectuer des dépôts depuis des portefeuilles externes et des retraits vers des portefeuilles externes pour chaque cryptomonnaie prise en charge, incluant le nom de la cryptomonnaie et les blockchains disponibles pour les dépôts/retraits. De plus, pour chaque blockchain prise en charge, sont indiqués le type de cryptomonnaie sur la blockchain indiquée, la disponibilité actuelle des dépôts/retraits, les montants minimaux pour les dépôts/retraits, les frais de retrait externes. Ces informations permettent au Client d'être plus flexible dans le choix de la blockchain souhaitée pour recevoir l'adresse de dépôt et initier des retraits externes via une certaine blockchain, afin d'utiliser la méthode la plus pratique pour transférer ses actifs cryptographiques vers ou depuis l'écosystème CEX.IO.
SubscribeOrderBook En s'abonnant via WebSocket, le client peut s'abonner au flux du carnet d'ordres pour la paire de trading demandée. En réponse à la demande d'abonnement au carnet d'ordres, le client recevra l'instantané actuel (initial) du carnet d'ordres pour la paire demandée avec le numéro seqId indiqué. Pour suivre les mises à jour suivantes du carnet d'ordres, le client doit s'abonner via WebSocket aux messages « order_book_increment », qui contiendront le nom de la paire de trading, le numéro seqId et les deltas de niveaux de prix des offres et demandes.
UnSubscribeOrderBook Se désabonner du canal du carnet d'ordres.
SubscribeTrade En utilisant la méthode Trade Subscribe, le client peut s'abonner via WebSocket au flux en direct des événements de trading qui se produisent sur la paire de trading demandée. En réponse à la requête Trade Subscribe, le client recevra un identifiant unique d'abonnement au trading qui devra être utilisé ultérieurement pour se désabonner lorsque l'abonnement au trading n'est plus nécessaire. Le client doit s'abonner via WebSocket aux messages « tradeHistorySnapshot » et « tradeUpdate » pour recevoir les instantanés initiaux et périodiques de l'historique des transactions, ainsi que les événements de trading en direct pour la paire de trading demandée.
UnSubscribeTrade Se désabonner du canal de trading.

 

 

Exemple : obtenir le dernier ticker de la paire BTC-USD

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.OnCexPlusConnect := OnCexPlusConnectEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusConnectEvent(Sender: TObject);
begin
  oCexPlus.GetTicker('BTC-USD');
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Ticker data: ' + Msg);
end;

 

 

 

Appels API privés

 

Exchange Plus utilise des clés API pour permettre l'accès aux API privées.

 

Le client peut générer, configurer et gérer des clés API, définir des niveaux d'autorisation, des adresses IP en liste blanche pour la clé API, etc. via le Terminal Web Exchange Plus dans la section de gestion des clés API du profil.

 

Limite de clés API : Par défaut, le client peut avoir jusqu'à 5 clés API.

 

Pour restreindre l'accès à certaines fonctionnalités lors de l'utilisation de clés API, un ensemble spécifique de permissions doit être défini pour chaque clé API. L'ensemble de permissions défini peut être modifié ultérieurement si nécessaire.

 

Les niveaux d'autorisation suivants sont disponibles pour les clés API :

 

 

 

Méthode Description
GetCurrentFee Cette méthode indique les frais actuels à un moment précis en tenant compte du volume sur 30 jours du client et du jour de la semaine (les frais peuvent être différents par exemple le week-end).
GetFeeStrategy La stratégie de frais retourne toutes les options de frais qui pourraient être appliquées au client, en tenant compte du volume de transactions du client, du jour de la semaine, des paires, du groupe de paires, etc. Cette méthode fournit des informations sur la stratégie générale de frais, qui inclut toutes les valeurs de frais de transaction possibles pouvant être appliquées au client. Pour recevoir les frais de transaction actuels, basés sur le volume de transactions sur 30 jours du client, celui-ci doit utiliser la méthode [Frais actuels]. Pour recevoir le volume de transactions actuel sur 30 jours, le client doit utiliser la méthode [Volume].
GetVolume Cette requête permet au client de recevoir son volume de trading des 30 derniers jours en équivalent USD.
CreateAccount Cette requête permet au client de créer un nouveau sous-compte. Par défaut, le client peut avoir jusqu'à 5 sous-comptes, y compris le compte principal.
GetAccountStatus En utilisant la méthode Account Status V3, le client peut connaître le solde actuel et son équivalent indicatif dans la devise convertie (par défaut "USD"), les montants bloqués dans les ordres ouverts (actifs) pour chaque sous-compte et devise. Si un solde de commission de trading est disponible pour le client, la réponse contiendra également des données générales sur le solde de commission de trading telles que le nom de la promo, le nom de la devise, le solde total et la date d'expiration de cette promo sur le solde de commission de trading. Il est de la responsabilité du client de suivre le solde de trading disponible sur son sous-compte, c'est-à-dire le solde actuel du sous-compte diminué du montant bloqué dans les ordres ouverts (actifs) sur ce sous-compte.
GetOrders Cette requête permet au client d'obtenir des informations sur ses commandes.
NewOrder Le client peut placer de nouveaux ordres via l'API WebSocket en utilisant Do My New Order Request. En plus d'une réponse à cette demande, Exchange Plus envoie au client des messages Account Event et Execution Report si la demande réussit. Le message de réponse indique le dernier état à jour de l'ordre disponible dans le système au moment de l'envoi de la réponse. Si le client n'a pas reçu de message de réponse à Do My New Order Request - le client peut interroger l'état actuel de l'ordre en utilisant Get My Orders Request avec le paramètre clientOrderId. Lors de l'envoi d'une demande de nouvel ordre, il est fortement recommandé d'utiliser le paramètre clientOrderId qui correspond à la demande de nouvel ordre spécifique côté client. Exchange Plus évite de placer plusieurs ordres avec le même clientOrderId. Si plus d'un nouvel ordre avec le même clientOrderId et d'autres paramètres d'ordre identiques sont identifiés - Exchange Plus ne place que le premier ordre et retourne le statut de cet ordre au client en réponse aux deuxième et demandes d'ordre suivantes avec les mêmes paramètres. Si plus d'un nouvel ordre avec le même clientOrderId mais avec d'autres paramètres d'ordre différents sont identifiés - Exchange Plus ne traite que le premier ordre et rejette les deuxième et demandes d'ordre suivantes avec le même clientOrderID mais avec des paramètres d'ordre différents.
NewMarketOrder Place un nouvel ordre au marché.
NewLimitOrder Place un nouvel ordre à cours limité.
CancelOrder Le client peut annuler des ordres. En plus d'une réponse à cette demande, Exchange Plus envoie au client des messages Account Event et Execution Report si cette demande est réussie. De plus, si la demande d'annulation d'un ordre est refusée, Exchange Plus envoie un message Order Cancellation Rejection.
CancelAllOrders Le client peut annuler tous les ordres ouverts via l'API WebSocket. En plus de la réponse à cette requête, Exchange Plus lancera le processus d'annulation pour tous les ordres ouverts et enverra les messages correspondants d'événement de compte et de rapport d'exécution au client.
GetTransactionHistory Cette requête permet au Client de connaître ses transactions financières (dépôts, retraits, transferts internes, commissions ou transactions).
GetFundingHistory Cette requête permet au client de trouver ses transactions de dépôt et de retrait.
InternalTransfer Le client peut demander un transfert d'argent entre ses sous-comptes ou entre son compte principal et un sous-compte. Exchange Plus ne facture aucune commission au client pour le transfert de fonds entre ses comptes. En réponse à cette requête, Exchange Plus envoie des messages d'événement de compte au client si la requête réussit.
GetDepositAddress Cette méthode peut être utilisée par le Client pour recevoir une adresse crypto pour déposer de la crypto-monnaie. L'adresse de dépôt peut être générée pour les comptes principaux et secondaires. La liste des blockchains disponibles pour générer une adresse de dépôt peut être reçue par le Client via la requête Get Processing Info.
FundsDepositFromWallet Le client peut déposer des fonds depuis le portefeuille CEX.IO vers le compte Exchange Plus. Le système évite le traitement de plusieurs requêtes de dépôt avec le même clientTxId. Si plusieurs requêtes de dépôt avec des clientTxId identiques sont reçues, le système ne traite que la première requête de dépôt et rejette les deuxième et suivantes avec le même clientTxId.
FundsWithdrawalToWallet Le client peut retirer des fonds du compte Exchange Plus vers le portefeuille CEX.IO. Le système évite les demandes de retrait multiples avec le même clientTxId. Si plusieurs demandes de retrait avec un clientTxId identique sont reçues, le système ne traite que la première et rejette les deuxième et suivantes avec le même clientTxId.
GetWalletBalance Récupère les informations de solde du portefeuille CEX.IO.
SubscribeAccountEvents S'abonne aux notifications d'événements de compte en temps réel (modifications de solde, exécutions d'ordres).
UnSubscribeAccountEvents Se désabonne des notifications d'événements de compte.
   

 

 

Exemple : obtenir les ordres.

 


oClient := TsgcWebSocketClient.Create(nil);
oCexPlus := TsgcWSAPI_CexPlus.Create(nil);
oCexPlus.Client := oClient;
oCexPlus.CexPlus.ApiKey := 'your-api-key';
oCexPlus.CexPlus.ApiSecret := 'your-api-secret';
oCexPlus.OnCexPlusAuthenticated := OnCexPlusAuthenticatedEvent;
oCexPlus.OnCexPlusMessage := OnCexPlusMessageEvent;
oClient.Active := True;
 
procedure OnCexPlusAuthenticatedEvent(Sender: TObject);
begin
  oCexPlus.GetOrders();
end;
 
procedure OnCexPlusMessageEvent(Sender: TObject; Event, Msg: string);
begin
  ShowMessage('Orders: ' + Msg);
end;