API Binance

Binance

 

A Binance é uma exchange de criptomoedas internacional e multilíngue. Ela oferece algumas APIs para acessar dados da Binance. As seguintes APIs são suportadas:

 

  1. WebSocket streams: permite que você faça subscribe a alguns métodos e obtenha dados em tempo real. Os eventos são enviados aos clientes pelo servidor para os assinantes. Usa o WebSocket como protocolo.
  2. UserData stream: os clientes assinados obtêm detalhes da conta. Requer uma chave de API para autenticar e usa WebSocket como protocolo.
  3. REST API: Requer uma API Key e Secret para autenticar e utiliza HTTPs como protocolo.
    1. Market Data
    2. Account and Trading Data
    3. Wallet
  4. Futures: os WebSocket Futures Market Data Streams são suportados através da API Binance Futures Client.

 

O cliente também suporta Binance.us; as seguintes APIs são suportadas:

 

  1. WebSocket streams: permite que você faça subscribe a alguns métodos e obtenha dados em tempo real. Os eventos são enviados aos clientes pelo servidor para os assinantes. Usa o WebSocket como protocolo.
  2. UserData stream: os clientes assinados obtêm detalhes da conta. Requer uma chave de API para autenticar e usa WebSocket como protocolo.
  3. REST API: os clientes podem solicitar dados de mercado e de conta ao servidor. Requer uma API Key e Secret para autenticar e usa HTTPs como protocolo.

 

Properties

A API da Binance tem 2 tipos de métodos: públicos e privados. Os métodos públicos podem ser acessados sem autenticação, por exemplo: obter preços de tickers. Alguns são privados e relacionados a dados do usuário; esses métodos exigem o uso das chaves de API da Binance.

 

 

 

 

Most common uses

 

WebSocket Stream API

O endpoint base é wss://stream.binance.com:9443, o cliente pode assinar / cancelar a assinatura de eventos após uma conexão bem-sucedida.

Os seguintes métodos de Assinatura / Cancelamento de assinatura são suportados.

 

Method Parâmetros Descrição
AggregateTrades Symbol envia informações de trade agregadas para uma única taker order
Trades Symbol envia informações brutas de trade; cada trade tem um comprador e um vendedor únicos
KLine Symbol, Interval envia atualizações dos klines/candlestick atuais a cada segundo, minuto, hora...
MiniTicker Symbol Estatísticas de mini-ticker de janela deslizante de 24h. Estas NÃO são as estatísticas do dia UTC, mas uma janela deslizante de 24h das últimas 24h.
AllMiniTickers   Estatísticas de mini-ticker de janela móvel de 24h para todos os símbolos que mudaram, em um array. Estas NÃO são as estatísticas do dia UTC, mas uma janela móvel de 24h para as 24h anteriores. Observe que apenas os tickers que mudaram estarão presentes no array.
Ticker Symbol Estatísticas de ticker de janela deslizante de 24h para um único símbolo. Estas NÃO são as estatísticas do dia UTC, mas uma janela deslizante de 24h para as 24h anteriores.
AllMarketTickers   Estatísticas de ticker de janela deslizante de 24h para todos os símbolos que mudaram, em um array. Estas NÃO são as estatísticas do dia UTC, mas uma janela deslizante de 24h para as 24h anteriores. Observe que apenas os tickers que mudaram estarão presentes no array.
BookTicker Symbol Envia qualquer atualização do melhor preço ou quantidade de bid ou ask em tempo real para um símbolo especificado.
AllBookTickers   Envia qualquer atualização no preço ou na quantidade do melhor bid ou ask em tempo real para todos os símbolos.
PartialBookDepth Symbol, Depth Os <levels> bids e asks principais, enviados a cada segundo. Os <levels> válidos são 5, 10 ou 20.
DiffDepth Symbol Atualizações de preço e profundidade de quantidade do livro de ordens usadas para gerenciar um livro de ordens localmente.

 

Após uma assinatura / cancelamento de assinatura bem-sucedido, o cliente recebe uma mensagem sobre isso, onde id é o resultado do método Subscribed / Unsubscribed.

 


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

 

User Data Stream API

Requer uma ApiKey válida obtida da sua conta binance, e a ApiKey deve ser definida na propriedade Binance.ApiKey do componente.

 

Os dados a seguir são enviados ao cliente toda vez que há uma alteração. Não há necessidade de assinar nenhum método; isso é feito automaticamente se você definir uma ApiKey válida.

 

Method Descrição
Account Update O estado da conta é atualizado com o evento outboundAccountInfo.
Balance Update

A atualização de saldo ocorre durante o seguinte:

 

  • Depósitos ou saques da conta
  • Transferência de fundos entre contas (por exemplo, de Spot para Margin)
Order Update As ordens são atualizadas com o evento executionReport.

 

 

REST API

O endpoint base é: https://api.binance.com. Todos os endpoints retornam um objeto ou array JSON. Os dados são retornados em ordem ascendente. Mais antigos primeiro, mais recentes por último.

 

Acesso às Opções da REST API, utilizando a propriedade REST_API.BinanceOptions.

 

 

EndPoints da API Pública

 

Esses endpoints podem ser acessados sem nenhuma autorização.

 

General EndPoints

 

Method Parâmetros Descrição
Ping   Testa a conectividade com a Rest API.
GetServerTime   Testar a conectividade com a Rest API e obter a hora atual do servidor.
GetExchangeInformation   Regras de negociação atuais do exchange e informações do símbolo

 

 

Market Data EndPoints

 

Method Parâmetros Descrição
GetOrderBook Symbol Obtém o Order Book.
GetTrades Symbol Obter negociações recentes
GetHistoricalTrades Symbol Obtém negociações mais antigas.
GetAggregateTrades Symbol Obtém negociações agregadas e compactadas. Negociações que são executadas ao mesmo tempo, da mesma ordem, com o mesmo preço terão a quantidade agregada.
GetKLines Symbol, Interval Barras de Kline/candlestick de um símbolo. As Klines são identificadas exclusivamente pelo seu open time.
GetAveragePrice Symbol Preço médio atual de um símbolo.
Get24hrTicker Symbol Estatísticas de variação de preço da janela móvel de 24 horas. Tenha cuidado ao acessar isto sem um símbolo.
GetPriceTicker Symbol Último preço de um símbolo.
GetPriceTickers Symbols Preço mais recente para um array de símbolos. Exemplo: ["BTCUSDT","BNBUSDT"]
GetBookTicker Symbol Melhor preço/quantidade no order book para um símbolo ou símbolos.
GetUIKLines Symbol, Interval Barras Kline/candlestick para um símbolo. A resposta é similar a GetKLines, otimizada para apresentação de gráficos de candlestick.
GetRollingWindowTicker Symbol, Symbols, WindowSize Estatísticas de variação de preço em janela móvel. Nota: o WindowSize padrão é 1d se não for especificado.
GetTradingDayTicker Symbol, Symbols, Type Estatísticas de variação de preço de um dia de negociação.

 

 

 

Private API EndPoints

 

Requer uma APIKey e uma APISecret para ser autorizado pelo servidor.

 

Account Data EndPoints

 

Method Parâmetros Descrição
NewOrder Symbol, Side, Type Envia uma nova ordem.
PlaceMarketOrder Side, Symbol, Quantity Coloca uma Nova Market Order
PlaceMarketQuoteOrder Side, Symbol, QuoteOrderQty Coloca uma Nova Ordem de Cotação de Mercado
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice Coloca uma nova ordem limitada
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice Coloca uma Nova Ordem Stop
PlaceStopTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Coloca uma Nova Ordem Stop Trailing
PlaceTakeProfitOrder Side, Symbol, Quantity, StopPrice, LimitPrice Coloca uma Nova Take Profit Order
PlaceTakeProfitTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Coloca uma Nova Ordem Take ProfitTrailing
PlaceLimitMakerOrder Side, Symbol, Quantity Coloca uma nova Limit Market Order
TestNewOrder Symbol, Side, Type Testa a criação de nova ordem e a assinatura/recvWindow long. Cria e valida uma nova ordem, mas não a envia ao matching engine.
QueryOrder Symbol Verifica o status de uma ordem.
CancelOrder Symbol Cancela uma ordem ativa. Cancela uma ordem ativa. OrderId ou OrigClientOrderId deve ser enviado.
CancelAllOpenOrders Symbol (opcional)  
GetOpenOrders   Obter todas as ordens abertas em um símbolo. Tenha cuidado ao acessar isto sem um símbolo.
GetAllOrders Symbol Obtém todas as ordens da conta; ativas, canceladas ou preenchidas.
NewOCO Symbol, Side, Quantity, Price, StopPrice Envia uma nova OCO
CancelOCO Symbol Cancela uma Lista de Ordens inteira
QueryOCO Symbol Recupera um OCO específico com base nos parâmetros opcionais informados
GetAllOCO   Recupera todas as OCO com base nos parâmetros opcionais fornecidos
GetOpenOCO   Obtém todas as OCO Abertas.
GetAccountInformation   Obtém as informações da conta atual.
GetAccountTradeList Symbol Obtém os trades de uma conta e símbolo específicos.
CancelReplaceOrder Symbol, Side, Type, CancelReplaceMode Cancela uma ordem existente e coloca uma nova ordem no mesmo símbolo.
NewOrderListOCO Symbol, Side, Quantity, AboveType, BelowType Coloca uma nova lista de ordens OCO.
NewOrderListOTO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingType, PendingSide, PendingQuantity Registra uma nova lista de ordens OTO (One-Triggers-the-Other).
NewOrderListOTOCO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity Coloca uma nova lista de ordens OTOCO (One-Triggers-a-One-Cancels-the-Other).
NewSOROrder Symbol, Side, Type, Quantity Coloca uma ordem utilizando Smart Order Routing (SOR).
TestSOROrder Symbol, Side, Type, Quantity Testar uma nova ordem utilizando Smart Order Routing (SOR). Cria e valida uma nova ordem, mas não a envia ao motor de correspondência.
GetOrderRateLimitUsage Exibe a contagem de ordens atual do usuário para todos os intervalos.
GetPreventedMatches Symbol Exibe a lista de ordens que expiraram por causa de STP (Self Trade Prevention).
GetAllocations Symbol Recupera as alocações resultantes da colocação de ordens SOR.
GetAccountCommission Symbol Obter as taxas de comissão atuais da conta.

 

 

 

Convert EndPoints

 

Method Parâmetros Descrição
GetAllConvertPairs FromAsset, ToAsset Consulta todos os pares de tokens conversíveis e os respectivos limites superior/inferior dos tokens
GetConvertAssetInfo   Consulta as informações de precisão suportadas de um ativo
SendConvertQuoteRequest FromAsset, ToAsset Solicita uma cotação para os pares de tokens solicitados
AcceptConvertQuote QuoteId Aceita a cotação oferecida pelo ID da cotação.
GetConvertOrderStatus OrderId ou QuoteId Consulta o status da ordem por ID da ordem.
PlaceConvertLimitOrder BaseAsset, QuoteAsset, Side, LimitPrice

Permite que os usuários coloquem uma limit order.

baseAsset ou quoteAsset podem ser determinados através do endpoint exchangeInfo.
O preço limite é definido de baseAsset para quoteAsset.
Utiliza-se baseAmount ou quoteAmount.

CancelConvertLimitOrder OrderId Permite que os usuários cancelem uma ordem limite
GetConvertLimitOpenOrders   Permite que os usuários consultem todas as limit orders existentes
GetConvertTradeHistory StartTime, EndTime O intervalo máximo entre startTime e endTime é de 30 dias.

 

 

 

Wallet EndPoints

(*os endpoints de wallet só funcionam com o servidor de produção, não com o demo)

 

Method Descrição
GetWalletSystemStatus Obtém o status do sistema.
GetWalletAllCoinsInformation Obtém informações de moedas (disponíveis para depósito e saque) para o usuário.
GetWalletDailyAccountSnapshot Type: "SPOT", "MARGIN", "FUTURES"
  • O período de tempo da consulta deve ser menor que 30 dias
  • Suporta consulta apenas dentro do último mês
  • Se startTime e endTime não forem enviados, retorna os registros dos últimos 7 dias por padrão
SetWalletDisableFastWithdrawSwitch Esta requisição desabilitará o switch fastwithdraw na sua conta.
Você precisa habilitar a opção "trade" para a api key que solicita este endpoint.
SetWalletEnableFastWithdrawSwitch Esta requisição habilitará o switch de fastwithdraw na sua conta.
Você precisa habilitar a opção "trade" para a chave de api que faz requisições a este endpoint.
Quando o Fast Withdraw Switch está ativado, a transferência de fundos para uma conta Binance será feita instantaneamente. Não há transação on-chain, nem ID de transação, nem taxa de saque.
WalletWithdraw

Submeter uma requisição de saque.

 

GetWalletDepositHistory Obtém o histórico de depósitos.
GetWalletWithdrawHistory Buscar histórico de saques (Withdraw).
GetWalletDepositAddress Buscar endereço de depósito com rede.
GetWalletAccountStatus Busca o detalhe do status da conta.
GetWalletAccountAPITradingStatus Obtém os detalhes do status de trading da API da conta.
GetWalletDustLog Retorna apenas os últimos 100 registros
Retorna apenas os registros após 2020/12/01
GetWalletAssetsConvertedBNB  
WalletDustTransfer

Converte ativos de dust em BNB.

Você precisa habilitar a permissão Spot & Margin Trading para a API Key que solicita este endpoint.

GetWalletAssetDividendRecord Consulta o registro de dividendos de ativos.
GetWalletAssetDetail Busca detalhes dos ativos suportados na Binance.
GetWalletTradeFee Obter taxa de trade
WalletUserUniversalTransfer

Você precisa habilitar a opção Permits Universal Transfer para a API Key que requisita este endpoint. MAIN_UMFUTURE Transferência da conta Spot para a conta USDⓈ-M Futures

ENUM de Type:

  • MAIN_CMFUTURE Transferência da conta Spot para a conta COIN-M Futures
  • MAIN_MARGIN Transferência da conta Spot para a conta Margin(cross)
  • UMFUTURE_MAIN Transferência da conta USDⓈ-M Futures para a conta Spot
  • UMFUTURE_MARGIN Transferência da conta USDⓈ-M Futures para a conta Margin(cross)
  • CMFUTURE_MAIN Transferência da conta COIN-M Futures para a conta Spot
  • CMFUTURE_MARGIN Transferência da conta COIN-M Futures para a conta Margin(cross)
  • MARGIN_MAIN Transferência da conta Margin(cross)para a conta Spot
  • MARGIN_UMFUTURE Transferência da conta Margin(cross)para USDⓈ-M Futures
  • MARGIN_CMFUTURE Transferência da conta Margin(cross)para COIN-M Futures
  • ISOLATEDMARGIN_MARGIN Transferência da conta isolated margin para a conta Margin(cross)
  • MARGIN_ISOLATEDMARGIN Transferência da conta Margin(cross) para a conta isolated margin
  • ISOLATEDMARGIN_ISOLATEDMARGIN Transferência da conta isolated margin para a conta isolated margin
  • MAIN_FUNDING Transferência da conta Spot para a conta Funding
  • FUNDING_MAIN Transferência da conta Funding para a conta Spot
  • FUNDING_UMFUTURE Transferência da conta Funding para a conta UMFUTURE
  • UMFUTURE_FUNDING Transferência da conta UMFUTURE para a conta Funding
  • MARGIN_FUNDING Transferência da conta MARGIN para a conta Funding
  • FUNDING_MARGIN Transferência da conta Funding para a conta Margin
  • FUNDING_CMFUTURE Transferência da conta Funding para a conta CMFUTURE
  • CMFUTURE_FUNDING Transferência da conta CMFUTURE para a conta Funding
GetWalletQueryUserUniversalTransferHistory
  • fromSymbol deve ser enviado quando o type é ISOLATEDMARGIN_MARGIN e ISOLATEDMARGIN_ISOLATEDMARGIN
  • toSymbol deve ser enviado quando o type é MARGIN_ISOLATEDMARGIN e ISOLATEDMARGIN_ISOLATEDMARGIN
  • Suporta consulta apenas dos últimos 6 meses
  • Se startTime e endTime não forem enviados, retorna os registros dos últimos 7 dias por padrão
GetWalletFundingWallet Atualmente suporta a consulta dos seguintes ativos de negócio:Binance Pay, Binance Card, Binance Gift Card, Stock Token
GetWalletUserAsset Obter ativos do usuário, apenas para dados positivos.
GetWalletApiKeyPermission  

 

 

Eventos

As mensagens do Binance são recebidas no componente TsgcWebSocketClient; você pode utilizar os seguintes eventos:

 

OnConnect

Após uma conexão bem-sucedida ao servidor Binance.

OnDisconnect

Após uma desconexão do servidor Binance

OnMessage

Mensagens enviadas pelo servidor ao cliente são tratadas neste evento.

OnError

Se houver algum erro no protocolo, este evento será chamado.

OnException

Se houver uma exceção não tratada, este evento será chamado.

 

Além disso, há um evento específico no Componente da API Binance, chamado OnBinanceHTTPException, que é disparado cada vez que há um erro ao chamar uma Requisição HTTP (REST API ou WebSocket User Stream).

 

(*) Devido a mudanças nos servidores da Binance, versões do Indy anteriores ao Rad Studio 10.1 não conseguirão conectar aos Test Servers. Esse problema não afeta a edição Enterprise nem se a versão do Indy tiver sido atualizada para a mais recente.