API Binance

Binance

 

Binance est une bourse de cryptomonnaies internationale multilingue. Elle propose des API pour accéder aux données Binance. Les API suivantes sont supportées :

 

  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. Flux UserData : les clients abonnés reçoivent des informations sur leur compte. Nécessite une clé API pour s'authentifier et utilise WebSocket comme protocole.
  3. REST API : Nécessite une clé API et un secret pour l'authentification et utilise HTTPs comme protocole.
    1. Données de marché
    2. Données de compte et de trading
    3. Portefeuille
  4. Futures : Les flux de données de marché WebSocket Futures sont pris en charge via le client API Binance Futures.

 

Le client prend également en charge Binance.us ; les APIs 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. Flux UserData : les clients abonnés reçoivent des informations sur leur compte. Nécessite une clé API pour s'authentifier et utilise WebSocket comme protocole.
  3. REST API : les clients peuvent demander au serveur des données de marché et de compte. Nécessite une clé API et un secret pour s'authentifier et utilise HTTPs comme protocole.

 

Propriétés

L'API Binance 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. Certaines sont privées et liées aux données utilisateur ; ces méthodes nécessitent l'utilisation des clés API Binance.

 

 

 

 

Utilisations les plus courantes

 

API de flux WebSocket

Le point de terminaison de base est wss://stream.binance.com:9443, le client peut s'abonner / se désabonner des événements après une connexion réussie.

Les méthodes d'abonnement / désabonnement suivantes sont prises en charge.

 

Méthode Paramètres Description
AggregateTrades Symbol envoyer les informations de transaction agrégées pour un seul ordre preneur
Trades Symbol diffuser les informations brutes sur les transactions ; chaque transaction a un acheteur et un vendeur uniques
KLine Symbole, Intervalle diffuser les mises à jour des klines/bougies actuelles chaque seconde, minute, heure…
MiniTicker Symbol Statistiques mini-ticker sur une fenêtre glissante de 24h. Ce ne sont PAS les statistiques du jour UTC, mais une fenêtre glissante de 24h pour les 24 heures précédentes.
AllMiniTickers   Statistiques mini-ticker sur une fenêtre glissante de 24h pour tous les symboles ayant changé dans un tableau. Ce ne sont PAS les statistiques de la journée UTC, mais une fenêtre glissante de 24h pour les 24 heures précédentes. Notez que seuls les tickers ayant changé seront présents dans le tableau.
Ticker Symbol Statistiques de ticker sur une fenêtre glissante de 24h pour un seul symbole. Il ne s'agit PAS des statistiques du jour UTC, mais d'une fenêtre glissante de 24h pour les 24h précédentes.
AllMarketTickers   Statistiques de ticker sur une fenêtre glissante de 24h pour tous les symboles ayant changé dans un tableau. Il ne s'agit PAS des statistiques du jour UTC, mais d'une fenêtre glissante de 24h pour les 24h précédentes. Notez que seuls les tickers ayant changé seront présents dans le tableau.
BookTicker Symbol Envoie en temps réel toute mise à jour du prix ou de la quantité du meilleur bid ou ask pour un symbole donné.
AllBookTickers   Pousse toute mise à jour du meilleur prix ou de la quantité bid/ask en temps réel pour tous les symboles.
PartialBookDepth Symbole, Profondeur Les <niveaux> premières offres et demandes, transmises chaque seconde. Les valeurs <niveaux> valides sont 5, 10 ou 20.
DiffDepth Symbol Mises à jour de profondeur de prix et de quantité du carnet d'ordres utilisées pour gérer localement un carnet d'ordres.

 

Après un abonnement / désabonnement réussi, le client reçoit un message à ce sujet, où id est le résultat de la méthode Subscribed / Unsubscribed.

 


{
  "result": null,
  "id": 1
}

 

API User Data Stream

Nécessite une ApiKey valide obtenue depuis votre compte Binance, et ApiKey doit être définie dans la propriété Binance.ApiKey du composant.

 

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
Mise à jour du compte L'état du compte est mis à jour avec l'événement outboundAccountInfo.
Mise à jour du solde

La mise à jour du solde se produit dans les cas suivants :

 

  • Dépôts ou retraits depuis le compte
  • Transfert de fonds entre comptes (ex. Spot vers Margin)
Mise à jour d'ordre Les ordres sont mis à jour avec l'événement executionReport.

 

 

REST API

Le point de terminaison de base est : https://api.binance.com. Tous les points de terminaison retournent un objet ou un tableau JSON. Les données sont retournées dans l'ordre croissant : les plus anciennes en premier, les plus récentes en dernier.

 

Accès aux options de l'API REST, en utilisant la propriété REST_API.BinanceOptions.

 

 

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
Ping   Tester la connectivité à l'API Rest.
GetServerTime   Tester la connectivité à l'API Rest et obtenir l'heure actuelle du serveur.
GetExchangeInformation   Règles de trading actuelles de la plateforme et informations sur les symboles

 

 

Points de terminaison des données de marché

 

Méthode Paramètres Description
GetOrderBook Symbol Obtenir le carnet d'ordres.
GetTrades Symbol Obtenir les transactions récentes
GetHistoricalTrades Symbol Obtenir les anciens trades.
GetAggregateTrades Symbol Obtenir des transactions agrégées et compressées. Les transactions réalisées au même moment, issues du même ordre et au même prix auront la quantité agrégée.
GetKLines Symbole, Intervalle Barres Kline/chandeliers pour un symbole. Les Klines sont identifiées de manière unique par leur heure d'ouverture.
GetAveragePrice Symbol Prix moyen actuel pour un symbole.
Get24hrTicker Symbol Statistiques de variation de prix sur une fenêtre glissante de 24 heures. Attention lors de l'accès sans symbole.
GetPriceTicker Symbol Dernier prix pour un symbole.
GetPriceTickers Symboles Dernier prix pour un tableau de symboles. Exemple : ["BTCUSDT","BNBUSDT"]
GetBookTicker Symbol Meilleur prix/quantité dans le carnet d'ordres pour un ou plusieurs symboles.
GetUIKLines Symbole, Intervalle Barres Kline/chandelier pour un symbole. La réponse est similaire à GetKLines, optimisée pour la présentation des graphiques en chandeliers.
GetRollingWindowTicker Symbol, Symbols, WindowSize Statistiques de variation de prix sur une fenêtre glissante. Remarque : WindowSize est par défaut 1d si non spécifié.
GetTradingDayTicker Symbol, Symbols, Type Statistiques de variation de prix pour une journée de trading.

 

 

 

Points de terminaison API privés

 

Nécessite une APIKey et un APISecret pour être autorisé par le serveur.

 

Points de terminaison des données de compte

 

Méthode Paramètres Description
NewOrder Symbol, Side, Type Envoyer un nouvel ordre.
PlaceMarketOrder Side, Symbol, Quantity Place un nouvel ordre au marché
PlaceMarketQuoteOrder Side, Symbol, QuoteOrderQty Passe un nouvel ordre de cotation au marché
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice Place un nouvel ordre à cours limité
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice Passer un nouvel ordre stop
PlaceStopTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Passe un nouvel ordre stop suiveur
PlaceTakeProfitOrder Side, Symbol, Quantity, StopPrice, LimitPrice Place un nouvel ordre Take Profit
PlaceTakeProfitTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Place un nouvel ordre Take Profit Trailing
PlaceLimitMakerOrder Side, Symbol, Quantity Place un nouvel ordre limite au marché
TestNewOrder Symbol, Side, Type Tester la création d'un nouvel ordre et la signature/recvWindow long. Crée et valide un nouvel ordre mais ne l'envoie pas dans le moteur de correspondance.
QueryOrder Symbol Vérifier le statut d'un ordre.
CancelOrder Symbol Annule un ordre actif. Annule un ordre actif. OrderId ou OrigClientOrderId doit être envoyé.
CancelAllOpenOrders Symbole (optionnel)  
GetOpenOrders   Obtenir tous les ordres ouverts sur un symbole. Soyez prudent lors de l'accès sans symbole.
GetAllOrders Symbol Obtenir tous les ordres du compte ; actifs, annulés ou exécutés.
NewOCO Symbole, Côté, Quantité, Prix, PrixStop Envoyer un nouvel OCO
CancelOCO Symbol Annuler une liste d'ordres entière
QueryOCO Symbol Récupère un OCO spécifique basé sur les paramètres optionnels fournis
GetAllOCO   Récupère tous les OCO en fonction des paramètres optionnels fournis
GetOpenOCO   Obtenir tous les OCO ouverts.
GetAccountInformation   Obtenir les informations du compte courant.
GetAccountTradeList Symbol Obtenir les transactions pour un compte et un symbole spécifiques.
CancelReplaceOrder Symbol, Side, Type, CancelReplaceMode Annule un ordre existant et place un nouvel ordre sur le même symbole.
NewOrderListOCO Symbol, Side, Quantity, AboveType, BelowType Placer un nouvel ordre liste OCO.
NewOrderListOTO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingType, PendingSide, PendingQuantity Placer un nouvel ordre OTO (One-Triggers-the-Other).
NewOrderListOTOCO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity Placer un nouvel ordre OTOCO (One-Triggers-a-One-Cancels-the-Other).
NewSOROrder Symbol, Side, Type, Quantity Passe un ordre en utilisant le routage intelligent des ordres (SOR).
TestSOROrder Symbol, Side, Type, Quantity Tester un nouvel ordre en utilisant le routage intelligent des ordres (SOR). Crée et valide un nouvel ordre mais ne l'envoie pas au moteur de correspondance.
GetOrderRateLimitUsage Affiche l'utilisation actuelle du nombre de requêtes de l'utilisateur pour tous les intervalles.
GetPreventedMatches Symbol Affiche la liste des ordres expirés en raison du STP (Self Trade Prevention).
GetAllocations Symbol Récupère les allocations résultant du placement d'un ordre SOR.
GetAccountCommission Symbol Obtenir les taux de commission du compte en cours.

 

 

 

Convertir les points de terminaison

 

Méthode Paramètres Description
GetAllConvertPairs FromAsset, ToAsset Interroger toutes les paires de tokens convertibles et leurs limites supérieures/inférieures respectives.
GetConvertAssetInfo   Interrogation des informations de précision des actifs pris en charge
SendConvertQuoteRequest FromAsset, ToAsset Demander un devis pour les paires de jetons demandées
AcceptConvertQuote QuoteId Accepter le devis proposé par identifiant de devis.
GetConvertOrderStatus OrderId ou QuoteId Interroger le statut d'un ordre par son identifiant.
PlaceConvertLimitOrder BaseAsset, QuoteAsset, Side, LimitPrice

Permet aux utilisateurs de passer un ordre limité.

baseAsset ou quoteAsset peuvent être déterminés via le point de terminaison exchangeInfo.
Le prix limite est défini de baseAsset à quoteAsset.
Soit baseAmount soit quoteAmount est utilisé.

CancelConvertLimitOrder OrderId Permettre aux utilisateurs d'annuler un ordre à cours limité
GetConvertLimitOpenOrders   Permet aux utilisateurs d'interroger tous les ordres limités existants
GetConvertTradeHistory StartTime, EndTime L'intervalle maximum entre startTime et endTime est de 30 jours.

 

 

 

Points de terminaison du portefeuille

(*les points de terminaison wallet fonctionnent uniquement avec le serveur de production, pas la démo)

 

Méthode Description
GetWalletSystemStatus Récupérer le statut du système.
GetWalletAllCoinsInformation Obtenir les informations sur les monnaies (disponibles pour le dépôt et le retrait) pour l'utilisateur.
GetWalletDailyAccountSnapshot Type : "SPOT", "MARGIN", "FUTURES"
  • La période de requête doit être inférieure à 30 jours
  • Prise en charge des requêtes uniquement dans le dernier mois
  • Si startTime et endTime ne sont pas envoyés, retourne les enregistrements des 7 derniers jours par défaut
SetWalletDisableFastWithdrawSwitch Cette requête désactivera le commutateur de retrait rapide sous votre compte.
Vous devez activer l'option "trade" pour la clé API qui effectue cette requête.
SetWalletEnableFastWithdrawSwitch Cette requête activera l'option de retrait rapide sur votre compte.
Vous devez activer l'option "trade" pour la clé API qui demande ce point de terminaison.
Lorsque Fast Withdraw Switch est activé, le transfert de fonds vers un compte Binance se fait instantanément. Il n'y a pas de transaction on-chain, pas d'identifiant de transaction et pas de frais de retrait.
WalletWithdraw

Soumettre une demande de retrait.

 

GetWalletDepositHistory Récupérer l'historique des dépôts.
GetWalletWithdrawHistory Récupérer l'historique des retraits.
GetWalletDepositAddress Récupérer l'adresse de dépôt avec le réseau.
GetWalletAccountStatus Récupérer le détail du statut du compte.
GetWalletAccountAPITradingStatus Récupère les détails du statut de trading de l'API du compte.
GetWalletDustLog Retourner uniquement les 100 derniers enregistrements
Retourner uniquement les enregistrements après le 01/12/2020
GetWalletAssetsConvertedBNB  
WalletDustTransfer

Convertir les actifs de poussière en BNB.

Vous devez activer l'autorisation de trading Spot & Margin pour la clé API qui effectue des requêtes vers ce point de terminaison.

GetWalletAssetDividendRecord Interroger l'enregistrement des dividendes d'actifs.
GetWalletAssetDetail Récupérer les détails des actifs pris en charge sur Binance.
GetWalletTradeFee Récupérer les frais de transaction
WalletUserUniversalTransfer

Vous devez activer l'option Autoriser le transfert universel pour la clé API qui demande ce point de terminaison. MAIN_UMFUTURE Transfert du compte Spot vers le compte USDⓈ-M Futures

ENUM du Type :

  • MAIN_CMFUTURE Transfert du compte Spot vers le compte COIN-M Futures
  • MAIN_MARGIN Transfert du compte Spot vers le compte Margin(cross)
  • UMFUTURE_MAIN Transfert du compte USDⓈ-M Futures vers le compte Spot
  • UMFUTURE_MARGIN Transfert du compte USDⓈ-M Futures vers le compte Margin(cross)
  • CMFUTURE_MAIN Transfert du compte COIN-M Futures vers le compte Spot
  • CMFUTURE_MARGIN Transfert du compte COIN-M Futures vers le compte Margin(cross)
  • MARGIN_MAIN Transfert du compte Margin(cross)vers le compte Spot
  • MARGIN_UMFUTURE Transfert du compte Margin(cross)vers USDⓈ-M Futures
  • MARGIN_CMFUTURE Transfert du compte Margin(cross)vers COIN-M Futures
  • ISOLATEDMARGIN_MARGIN Transfert du compte Isolated margin vers le compte Margin(cross)
  • MARGIN_ISOLATEDMARGIN Transfert du compte Margin(cross) vers le compte Isolated margin
  • ISOLATEDMARGIN_ISOLATEDMARGIN Transfert du compte Isolated margin vers le compte Isolated margin
  • MAIN_FUNDING Transfert du compte Spot vers le compte Funding
  • FUNDING_MAIN Transfert du compte Funding vers le compte Spot
  • FUNDING_UMFUTURE Transfert du compte Funding vers le compte UMFUTURE
  • UMFUTURE_FUNDING Transfert du compte UMFUTURE vers le compte Funding
  • MARGIN_FUNDING Transfert du compte MARGIN vers le compte Funding
  • FUNDING_MARGIN Transfert du compte Funding vers le compte Margin
  • FUNDING_CMFUTURE Transfert du compte Funding vers le compte CMFUTURE
  • CMFUTURE_FUNDING Transfert du compte CMFUTURE vers le compte Funding
GetWalletQueryUserUniversalTransferHistory
  • fromSymbol doit être envoyé lorsque le type est ISOLATEDMARGIN_MARGIN et ISOLATEDMARGIN_ISOLATEDMARGIN
  • toSymbol doit être envoyé lorsque le type est MARGIN_ISOLATEDMARGIN et ISOLATEDMARGIN_ISOLATEDMARGIN
  • Prend en charge uniquement les requêtes sur les 6 derniers mois
  • Si startTime et endTime ne sont pas envoyés, les enregistrements des 7 derniers jours sont renvoyés par défaut
GetWalletFundingWallet Prend actuellement en charge les actifs commerciaux suivants : Binance Pay, Binance Card, Binance Gift Card, Stock Token
GetWalletUserAsset Obtenir les actifs de l'utilisateur, uniquement pour les données positives.
GetWalletApiKeyPermission  

 

 

Événements

Les messages Binance sont reçus dans le composant TsgcWebSocketClient ; vous pouvez utiliser les événements suivants :

 

OnConnect

Après une connexion réussie au serveur Binance.

OnDisconnect

Après une déconnexion du serveur Binance

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 Binance, appelé OnBinanceHTTPException, qui est déclenché à chaque erreur lors d'un appel à une requête HTTP (API REST ou flux utilisateur WebSocket).

 

(*) En raison de modifications des serveurs Binance, les versions Indy antérieures à Rad Studio 10.1 ne pourront pas se connecter aux serveurs de test. Ce problème n'affecte pas l'édition Enterprise ni les versions Indy mises à niveau vers la dernière version.