Binance è un exchange di criptovalute internazionale e multilingue. Offre alcune API per accedere ai dati di Binance. Sono supportate le seguenti API:
Il client supporta anche Binance.us; sono supportate le seguenti API:
L'API di Binance ha 2 tipi di metodi: pubblici e privati. I metodi pubblici sono accessibili senza autenticazione, ad esempio: ottenere i prezzi dei ticker. Alcuni sono privati e relativi ai dati utente; tali metodi richiedono l'uso delle chiavi API di Binance.
REST API
L'endpoint base è wss://stream.binance.com:9443; il client può sottoscrivere/annullare la sottoscrizione agli eventi dopo una connessione riuscita.
Sono supportati i seguenti metodi di sottoscrizione/cancellazione della sottoscrizione.
| Metodo | Parametri | Descrizione |
| AggregateTrades | Symbol | invia informazioni di trading aggregate per un singolo ordine taker |
| Trades | Symbol | pubblica informazioni grezze sulle transazioni; ogni transazione ha un acquirente e un venditore univoci |
| KLine | Symbol, Interval | invia aggiornamenti alle klines/candlestick correnti ogni secondo, minuto, ora... |
| MiniTicker | Symbol | Statistiche mini-ticker su finestra mobile di 24 ore. NON si tratta delle statistiche del giorno UTC, ma di una finestra mobile di 24 ore per le 24 ore precedenti. |
| AllMiniTickers | Statistiche mini-ticker a finestra mobile di 24 ore per tutti i simboli che hanno subito variazioni, in un array. NON si tratta delle statistiche del giorno UTC, bensì di una finestra mobile di 24 ore sulle 24 ore precedenti. Si noti che nell'array saranno presenti solo i ticker che hanno subito variazioni. | |
| Ticker | Symbol | Statistiche del ticker su finestra mobile di 24 ore per un singolo simbolo. Queste NON sono le statistiche del giorno UTC, ma una finestra mobile di 24 ore relativa alle 24 ore precedenti. |
| AllMarketTickers | Statistiche del ticker su finestra mobile di 24 ore per tutti i simboli che sono cambiati, in un array. Queste NON sono le statistiche del giorno UTC, ma una finestra mobile di 24 ore relativa alle 24 ore precedenti. Si noti che nell'array saranno presenti solo i ticker che sono cambiati. | |
| BookTicker | Symbol | Invia in tempo reale qualsiasi aggiornamento al prezzo o alla quantità della migliore offerta o domanda per un simbolo specificato. |
| AllBookTickers | Trasmette in tempo reale qualsiasi aggiornamento al prezzo o alla quantità del miglior bid o ask per tutti i symbol. | |
| PartialBookDepth | Symbol, Depth | Le migliori offerte e richieste per <levels> livelli, aggiornate ogni secondo. I valori validi per <levels> sono 5, 10 o 20. |
| DiffDepth | Symbol | Aggiornamenti della profondità di prezzo e quantità del libro degli ordini utilizzati per gestire localmente un libro degli ordini. |
Dopo una sottoscrizione / annullamento della sottoscrizione con esito positivo, il client riceve un messaggio in merito, dove id è il risultato del metodo Subscribed / Unsubscribed.
{
"result": null,
"id": 1
}
Richiede un ApiKey valido ottenuto dal proprio account Binance; ApiKey deve essere impostato nella proprietà Binance.ApiKey del componente.
I seguenti dati vengono inviati al client ogni volta che si verifica una modifica. Non è necessario sottoscrivere alcun metodo; questa operazione viene eseguita automaticamente se si imposta un ApiKey valido.
| Metodo | Descrizione |
| Aggiornamento account | Lo stato dell'account viene aggiornato con l'evento outboundAccountInfo. |
| Aggiornamento Saldo |
L'aggiornamento del saldo si verifica nelle seguenti situazioni:
|
| Aggiornamento ordine | Gli ordini vengono aggiornati con l'evento executionReport. |
L'endpoint di base è: https://api.binance.com. Tutti gli endpoint restituiscono un oggetto o un array JSON. I dati vengono restituiti in ordine crescente. Prima i più vecchi, ultimi i più recenti.
Accesso alle opzioni REST API tramite la proprietà REST_API.BinanceOptions.
EndPoint API Pubblici
Questi endpoint sono accessibili senza alcuna autorizzazione.
EndPoint generali
| Metodo | Parametri | Descrizione |
| Ping | Verifica la connettività all'API Rest. | |
| GetServerTime | Verifica la connettività alla Rest API e ottiene l'ora corrente del server. | |
| GetExchangeInformation | Regole di trading correnti dell'exchange e informazioni sui simboli |
EndPoint dei dati di mercato
| Metodo | Parametri | Descrizione |
| GetOrderBook | Symbol | Recupera il libro degli ordini. |
| GetTrades | Symbol | Ottiene gli scambi recenti |
| GetHistoricalTrades | Symbol | Ottiene trade più vecchi. |
| GetAggregateTrades | Symbol | Recupera trade aggregati e compressi. I trade eseguiti contemporaneamente, dallo stesso ordine e allo stesso prezzo avranno la quantità aggregata. |
| GetKLines | Symbol, Interval | Barre Kline/candlestick per un simbolo. Le Kline sono identificate in modo univoco dal loro orario di apertura. |
| GetAveragePrice | Symbol | Prezzo medio attuale per un simbolo. |
| Get24hrTicker | Symbol | Statistiche di variazione del prezzo nelle ultime 24 ore a finestra scorrevole. Fare attenzione quando si accede senza specificare un simbolo. |
| GetPriceTicker | Symbol | Prezzo più recente per un simbolo. |
| GetPriceTickers | Simboli | Prezzo più recente per un array di simboli. Esempio: ["BTCUSDT","BNBUSDT"] |
| GetBookTicker | Symbol | Miglior prezzo/quantità sull'order book per un simbolo o più simboli. |
| GetUIKLines | Symbol, Interval | Barre Kline/candlestick per un simbolo. La risposta è simile a GetKLines, ottimizzata per la presentazione di grafici a candele. |
| GetRollingWindowTicker | Symbol, Symbols, WindowSize | Statistiche di variazione del prezzo su finestra temporale mobile. Nota: il valore predefinito di WindowSize è 1d se non specificato. |
| GetTradingDayTicker | Symbol, Symbols, Type | Statistiche di variazione del prezzo per una giornata di trading. |
EndPoint API privati
Richiede un APIKey e un APISecret per essere autorizzato dal server.
EndPoint dati account
| Metodo | Parametri | Descrizione |
| NewOrder | Symbol, Side, Type | Invia un nuovo ordine. |
| PlaceMarketOrder | Side, Symbol, Quantity | Inserisce un nuovo ordine di mercato |
| PlaceMarketQuoteOrder | Side, Symbol, QuoteOrderQty | Inserisce un nuovo Market Quote Order |
| PlaceLimitOrder | Side, Symbol, Quantity, LimitPrice | Inserisce un nuovo ordine limite |
| PlaceStopOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | Inserisce un nuovo ordine Stop |
| PlaceStopTrailingOrder | Side, Symbol, Quantity, TrailingDelta, LimitPrice | Inserisce un Nuovo Ordine Stop Trailing |
| PlaceTakeProfitOrder | Side, Symbol, Quantity, StopPrice, LimitPrice | Inserisce un nuovo ordine Take Profit |
| PlaceTakeProfitTrailingOrder | Side, Symbol, Quantity, TrailingDelta, LimitPrice | Inserisce un nuovo ordine Take Profit Trailing |
| PlaceLimitMakerOrder | Side, Symbol, Quantity | Inserisce un nuovo ordine limite di mercato |
| TestNewOrder | Symbol, Side, Type | Testa la creazione di un nuovo ordine e la firma/recvWindow lungo. Crea e valida un nuovo ordine ma non lo invia al motore di corrispondenza. |
| QueryOrder | Symbol | Verifica lo stato di un ordine. |
| CancelOrder | Symbol | Annulla un ordine attivo. Annulla un ordine attivo. Deve essere inviato OrderId oppure OrigClientOrderId. |
| CancelAllOpenOrders | Symbol (opzionale) | |
| GetOpenOrders | Recupera tutti gli ordini aperti su un simbolo. Prestare attenzione quando si accede senza specificare un simbolo. | |
| GetAllOrders | Symbol | Ottieni tutti gli ordini dell'account: attivi, annullati o eseguiti. |
| NewOCO | Symbol, Side, Quantity, Price, StopPrice | Invia un nuovo OCO |
| CancelOCO | Symbol | Annulla un intero Elenco Ordini |
| QueryOCO | Symbol | Recupera un OCO specifico in base ai parametri opzionali forniti |
| GetAllOCO | Recupera tutti gli OCO in base ai parametri opzionali forniti | |
| GetOpenOCO | Recupera tutti gli OCO aperti. | |
| GetAccountInformation | Ottieni le informazioni sull'account corrente. | |
| GetAccountTradeList | Symbol | Ottieni le operazioni per un account e un simbolo specifici. |
| CancelReplaceOrder | Symbol, Side, Type, CancelReplaceMode | Annulla un ordine esistente e inserisce un nuovo ordine sullo stesso simbolo. |
| NewOrderListOCO | Symbol, Side, Quantity, AboveType, BelowType | Inserire un nuovo ordine OCO. |
| NewOrderListOTO | Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingType, PendingSide, PendingQuantity | Inserisce un nuovo elenco di ordini OTO (One-Triggers-the-Other). |
| NewOrderListOTOCO | Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity | Inserire un nuovo ordine lista OTOCO (One-Triggers-a-One-Cancels-the-Other). |
| NewSOROrder | Symbol, Side, Type, Quantity | Inserisce un ordine tramite Smart Order Routing (SOR). |
| TestSOROrder | Symbol, Side, Type, Quantity | Testa un nuovo ordine utilizzando lo Smart Order Routing (SOR). Crea e convalida un nuovo ordine ma non lo invia al matching engine. |
| GetOrderRateLimitUsage | Visualizza il conteggio corrente degli ordini dell'utente per tutti gli intervalli. | |
| GetPreventedMatches | Symbol | Visualizza l'elenco degli ordini scaduti a causa di STP (Self Trade Prevention). |
| GetAllocations | Symbol | Recupera le allocazioni risultanti dal posizionamento degli ordini SOR. |
| GetAccountCommission | Symbol | Ottiene gli attuali tassi di commissione dell'account. |
Converti EndPoints
| Metodo | Parametri | Descrizione |
| GetAllConvertPairs | FromAsset, ToAsset | Interroga tutte le coppie di token convertibili e i rispettivi limiti superiori/inferiori dei token |
| GetConvertAssetInfo | Interrogazione per informazioni sulla precisione degli asset supportati | |
| SendConvertQuoteRequest | FromAsset, ToAsset | Richiedi una quotazione per le coppie di token richieste |
| AcceptConvertQuote | QuoteId | Accetta la quotazione offerta tramite l'ID della quotazione. |
| GetConvertOrderStatus | OrderId o QuoteId | Interroga lo stato dell'ordine tramite l'ID ordine. |
| PlaceConvertLimitOrder | BaseAsset, QuoteAsset, Side, LimitPrice |
Consentire agli utenti di inserire un ordine limite. baseAsset o quoteAsset possono essere determinati tramite l'endpoint exchangeInfo. |
| CancelConvertLimitOrder | OrderId | Consente agli utenti di annullare un ordine limite |
| GetConvertLimitOpenOrders | Consentire agli utenti di consultare tutti gli ordini limite esistenti | |
| GetConvertTradeHistory | StartTime, EndTime | L'intervallo massimo tra startTime e endTime è di 30 giorni. |
Endpoint Wallet
(*gli endpoint wallet funzionano solo con il server di produzione, non con quello demo)
| Metodo | Descrizione |
| GetWalletSystemStatus | Recuperare lo stato del sistema. |
| GetWalletAllCoinsInformation | Ottieni informazioni sulle monete (disponibili per deposito e prelievo) per l'utente. |
| GetWalletDailyAccountSnapshot | Tipo: "SPOT", "MARGIN", "FUTURES"
|
| SetWalletDisableFastWithdrawSwitch | Questa richiesta disabiliterà l'opzione fastwithdraw nel Suo account. È necessario abilitare l'opzione "trade" per la chiave API che richiede questo endpoint. |
| SetWalletEnableFastWithdrawSwitch | Questa richiesta abiliterà il prelievo rapido nel proprio account. È necessario abilitare l'opzione "trade" per la chiave API che richiede questo endpoint. Quando il prelievo rapido è attivato, il trasferimento di fondi verso un account Binance avviene istantaneamente. Non vi è alcuna transazione on-chain, nessun ID transazione e nessun costo di prelievo. |
| WalletWithdraw |
Invia una richiesta di prelievo.
|
| GetWalletDepositHistory | Recupera la cronologia dei depositi. |
| GetWalletWithdrawHistory | Recupera la cronologia dei prelievi. |
| GetWalletDepositAddress | Recupera l'indirizzo di deposito con la rete. |
| GetWalletAccountStatus | Recupera i dettagli dello stato dell'account. |
| GetWalletAccountAPITradingStatus | Recupera i dettagli sullo stato di trading dell'API dell'account. |
| GetWalletDustLog | Restituisce solo gli ultimi 100 record Restituisce solo i record successivi al 01/12/2020 |
| GetWalletAssetsConvertedBNB | |
| WalletDustTransfer |
Converti asset dust in BNB. È necessario abilitare l'autorizzazione Spot & Margin Trading per la chiave API che effettua richieste a questo endpoint. |
| GetWalletAssetDividendRecord | Interroga il registro dei dividendi degli asset. |
| GetWalletAssetDetail | Recupera i dettagli degli asset supportati su Binance. |
| GetWalletTradeFee | Recupera la commissione di trading |
| WalletUserUniversalTransfer |
È necessario abilitare l'opzione Permits Universal Transfer per la chiave API che richiede questo endpoint. MAIN_UMFUTURE Trasferimento dal conto Spot al conto Futures USDⓈ-M ENUM del Tipo:
|
| GetWalletQueryUserUniversalTransferHistory |
|
| GetWalletFundingWallet | Attualmente supporta la query dei seguenti asset aziendali:Binance Pay, Binance Card, Binance Gift Card, Stock Token |
| GetWalletUserAsset | Recupera gli asset dell'utente, solo per i dati positivi. |
| GetWalletApiKeyPermission |
I messaggi Binance vengono ricevuti nel componente TsgcWebSocketClient; è possibile utilizzare i seguenti eventi:
OnConnect
Dopo una connessione riuscita al server Binance.
OnDisconnect
Dopo una disconnessione dal server Binance
OnMessage
I messaggi inviati dal server al client vengono gestiti in questo evento.
OnError
In caso di qualsiasi errore nel protocollo, verrà chiamato questo evento.
OnException
Se si verifica un'eccezione non gestita, verrà chiamato questo evento.
Inoltre, esiste un evento specifico nel componente API Binance, chiamato OnBinanceHTTPException, che viene generato ogni volta che si verifica un errore nella chiamata di una richiesta HTTP (API REST o WebSocket User Stream).
(*) A causa di modifiche ai server Binance, le versioni Indy precedenti a Rad Studio 10.1 non saranno in grado di connettersi ai server di test. Questo problema non riguarda l'edizione Enterprise né i casi in cui la versione Indy è stata aggiornata all'ultima versione.