API Binance

Binance

 

Binance es un exchange de criptomonedas internacional y multilingüe. Ofrece diversas APIs para acceder a los datos de Binance. Se admiten las siguientes APIs:

 

  1. WebSocket streams: le permite suscribirse a algunos métodos y obtener datos en tiempo real. El servidor envía eventos a los clientes suscriptores. Utiliza WebSocket como protocolo.
  2. Flujo UserData: los clientes suscritos reciben detalles de la cuenta. Requiere una clave API para autenticarse y usa WebSocket como protocolo.
  3. REST API: Requiere una clave API y un secreto para autenticarse y usa HTTPS como protocolo.
    1. Datos de mercado
    2. Datos de cuenta y negociación
    3. Cartera
  4. Futuros: Los flujos de datos de mercado de Futuros WebSocket son compatibles a través del cliente API de Binance Futures.

 

El cliente también es compatible con Binance.us; se admiten las siguientes APIs:

 

  1. WebSocket streams: le permite suscribirse a algunos métodos y obtener datos en tiempo real. El servidor envía eventos a los clientes suscriptores. Utiliza WebSocket como protocolo.
  2. Flujo UserData: los clientes suscritos reciben detalles de la cuenta. Requiere una clave API para autenticarse y usa WebSocket como protocolo.
  3. REST API: los clientes pueden solicitar al servidor datos de mercado y de cuenta. Requiere una clave API y un secreto para autenticarse y utiliza HTTPs como protocolo.

 

Propiedades

La API de Binance tiene 2 tipos de métodos: públicos y privados. Se puede acceder a los métodos públicos sin autenticación, por ejemplo: obtener precios de ticker. Algunos son privados y están relacionados con datos del usuario; esos métodos requieren el uso de claves API de Binance.

 

 

 

 

Usos más comunes

 

WebSocket Stream API

El endpoint base es wss://stream.binance.com:9443; el cliente puede suscribirse o cancelar la suscripción a eventos tras una conexión satisfactoria.

Se admiten los siguientes métodos de suscripción / cancelación de suscripción.

 

Método Parámetros Descripción
AggregateTrades Symbol envía información de operaciones agregada para una única orden de tomador
Operaciones Symbol envía información de operaciones sin procesar; cada operación tiene un comprador y un vendedor únicos
KLine Symbol, Interval envía actualizaciones de las klines/velas actuales cada segundo, minuto, hora...
MiniTicker Symbol Estadísticas del mini-ticker en ventana móvil de 24 horas. Estas NO son las estadísticas del día UTC, sino una ventana móvil de 24 horas correspondiente a las últimas 24 horas.
AllMiniTickers   Estadísticas de mini-ticker de ventana móvil de 24 horas para todos los símbolos que han cambiado, en forma de array. Estas NO son las estadísticas del día UTC, sino una ventana móvil de 24 horas de las últimas 24 horas. Tenga en cuenta que en el array solo aparecerán los tickers que hayan cambiado.
Ticker Symbol Estadísticas de ticker de ventana móvil de 24 horas para un único símbolo. Estas NO son las estadísticas del día UTC, sino una ventana móvil de 24 horas para las 24 horas anteriores.
AllMarketTickers   Estadísticas de ticker de ventana móvil de 24 horas para todos los símbolos que cambiaron en un array. Estas NO son las estadísticas del día UTC, sino una ventana móvil de 24 horas para las 24 horas anteriores. Tenga en cuenta que solo los tickers que hayan cambiado estarán presentes en el array.
BookTicker Symbol Envía en tiempo real cualquier actualización del mejor precio o cantidad de oferta o demanda para un símbolo especificado.
AllBookTickers   Envía en tiempo real cualquier actualización del precio o cantidad de la mejor oferta o demanda para todos los símbolos.
PartialBookDepth Símbolo, Profundidad Las <levels> mejores ofertas de compra y venta, enviadas cada segundo. Los valores válidos de <levels> son 5, 10 o 20.
DiffDepth Symbol Actualizaciones de profundidad de precio y cantidad del libro de órdenes utilizadas para gestionar localmente un libro de órdenes.

 

Tras una suscripción o cancelación de suscripción exitosa, el cliente recibe un mensaje al respecto, donde id es el resultado del método Subscribed / Unsubscribed.

 


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

 

API de flujo de datos de usuario

Requiere una ApiKey válida obtenida de su cuenta de Binance, y la ApiKey debe estar configurada en la propiedad Binance.ApiKey del componente.

 

Los siguientes datos se envían al cliente cada vez que hay un cambio. No es necesario suscribirse a ningún método; esto se realiza automáticamente si se establece un ApiKey válido.

 

Método Descripción
Actualización de cuenta El estado de la cuenta se actualiza con el evento outboundAccountInfo.
Actualización de saldo

La Actualización de Saldo ocurre durante lo siguiente:

 

  • Depósitos o retiros de la cuenta
  • Transferencia de fondos entre cuentas (p. ej. Spot a Margin)
Actualización de orden Las órdenes se actualizan con el evento executionReport.

 

 

REST API

El endpoint base es: https://api.binance.com. Todos los endpoints devuelven un objeto o array JSON. Los datos se devuelven en orden ascendente: primero los más antiguos, últimos los más recientes.

 

Acceso a las opciones de la API REST mediante la propiedad REST_API.BinanceOptions.

 

 

Endpoints de la API pública

 

Se puede acceder a estos endpoints sin ninguna autorización.

 

EndPoints generales

 

Método Parámetros Descripción
Ping   Prueba la conectividad con la API REST.
GetServerTime   Compruebe la conectividad con la Rest API y obtenga la hora actual del servidor.
GetExchangeInformation   Reglas de negociación actuales del exchange e información del símbolo

 

 

Endpoints de datos de mercado

 

Método Parámetros Descripción
GetOrderBook Symbol Obtener el libro de órdenes.
GetTrades Symbol Obtener operaciones recientes
GetHistoricalTrades Symbol Obtener operaciones más antiguas.
GetAggregateTrades Symbol Obtenga operaciones agregadas y comprimidas. Las operaciones que se ejecutan al mismo tiempo, desde la misma orden y al mismo precio tendrán la cantidad agregada.
GetKLines Symbol, Interval Barras Kline/velas para un símbolo. Las Klines se identifican de forma única por su tiempo de apertura.
GetAveragePrice Symbol Precio promedio actual de un símbolo.
Get24hrTicker Symbol Estadísticas de cambio de precio en ventana deslizante de 24 horas. Tenga cuidado al acceder sin símbolo.
GetPriceTicker Symbol Último precio de un símbolo.
GetPriceTickers Símbolos Último precio para una matriz de símbolos. Ejemplo: ["BTCUSDT","BNBUSDT"]
GetBookTicker Symbol Mejor precio/cantidad en el libro de órdenes para un símbolo o símbolos.
GetUIKLines Symbol, Interval Barras Kline/velas japonesas para un símbolo. La respuesta es similar a GetKLines, optimizada para la presentación de gráficos de velas japonesas.
GetRollingWindowTicker Symbol, Symbols, WindowSize Estadísticas de variación de precio en ventana deslizante. Nota: el valor predeterminado de WindowSize es 1d si no se especifica.
GetTradingDayTicker Symbol, Symbols, Type Estadísticas de cambio de precio para un día de negociación.

 

 

 

Endpoints de API privada

 

Requiere una APIKey y un APISecret para ser autorizado por el servidor.

 

Endpoints de datos de cuenta

 

Método Parámetros Descripción
NewOrder Symbol, Side, Type Enviar una nueva orden.
PlaceMarketOrder Side, Symbol, Quantity Coloca una Nueva Orden de Mercado
PlaceMarketQuoteOrder Side, Symbol, QuoteOrderQty Coloca una Nueva Orden de Cotización de Mercado
PlaceLimitOrder Side, Symbol, Quantity, LimitPrice Coloca una nueva orden limitada
PlaceStopOrder Side, Symbol, Quantity, StopPrice, LimitPrice Coloca una nueva orden stop
PlaceStopTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Coloca una nueva orden Stop Trailing
PlaceTakeProfitOrder Side, Symbol, Quantity, StopPrice, LimitPrice Coloca una nueva orden de toma de beneficios
PlaceTakeProfitTrailingOrder Side, Symbol, Quantity, TrailingDelta, LimitPrice Coloca una Nueva Orden Trailing de Toma de Ganancias
PlaceLimitMakerOrder Side, Symbol, Quantity Coloca una Nueva Orden de Mercado con Límite
TestNewOrder Symbol, Side, Type Prueba la creación de nuevas órdenes y la firma/recvWindow largo. Crea y valida una nueva orden pero no la envía al motor de emparejamiento.
QueryOrder Symbol Comprueba el estado de un pedido.
CancelOrder Symbol Cancela una orden activa. Cancela una orden activa. Se debe enviar OrderId u OrigClientOrderId.
CancelAllOpenOrders Símbolo (opcional)  
GetOpenOrders   Obtiene todas las órdenes abiertas de un símbolo. Tenga cuidado al acceder sin especificar símbolo.
GetAllOrders Symbol Obtener todas las órdenes de la cuenta: activas, canceladas o ejecutadas.
NewOCO Symbol, Side, Quantity, Price, StopPrice Enviar una nueva OCO
CancelOCO Symbol Cancelar una lista de órdenes completa
QueryOCO Symbol Recupera un OCO específico basándose en los parámetros opcionales proporcionados
GetAllOCO   Recupera todos los OCO según los parámetros opcionales proporcionados
GetOpenOCO   Obtener todos los OCO abiertos.
GetAccountInformation   Obtiene la información actual de la cuenta.
GetAccountTradeList Symbol Obtiene las operaciones de una cuenta y símbolo específicos.
CancelReplaceOrder Symbol, Side, Type, CancelReplaceMode Cancela una orden existente y coloca una nueva orden en el mismo símbolo.
NewOrderListOCO Symbol, Side, Quantity, AboveType, BelowType Coloca una nueva lista de órdenes OCO.
NewOrderListOTO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingType, PendingSide, PendingQuantity Colocar una nueva lista de órdenes OTO (One-Triggers-the-Other).
NewOrderListOTOCO Symbol, WorkingType, WorkingSide, WorkingQuantity, WorkingPrice, PendingSide, PendingAboveType, PendingBelowType, PendingQuantity Coloque una nueva lista de órdenes OTOCO (One-Triggers-a-One-Cancels-the-Other).
NewSOROrder Symbol, Side, Type, Quantity Coloca una orden utilizando el enrutamiento inteligente de órdenes (SOR).
TestSOROrder Symbol, Side, Type, Quantity Pruebe una nueva orden usando Smart Order Routing (SOR). Crea y valida una nueva orden pero no la envía al motor de emparejamiento.
GetOrderRateLimitUsage Muestra el uso del recuento de órdenes actual del usuario para todos los intervalos.
GetPreventedMatches Symbol Muestra la lista de órdenes que expiraron debido a STP (Self Trade Prevention).
GetAllocations Symbol Recupera las asignaciones resultantes de la colocación de órdenes SOR.
GetAccountCommission Symbol Obtener las tasas de comisión de la cuenta actual.

 

 

 

Convertir endpoints

 

Método Parámetros Descripción
GetAllConvertPairs FromAsset, ToAsset Consultar todos los pares de tokens convertibles y los límites superiores/inferiores respectivos de cada token
GetConvertAssetInfo   Consultar información de precisión de activos admitidos
SendConvertQuoteRequest FromAsset, ToAsset Solicita una cotización para los pares de tokens indicados
AcceptConvertQuote QuoteId Aceptar la cotización ofrecida por ID de cotización.
GetConvertOrderStatus OrderId o QuoteId Consultar el estado de un pedido por ID de pedido.
PlaceConvertLimitOrder BaseAsset, QuoteAsset, Side, LimitPrice

Permita a los usuarios colocar una orden limitada.

baseAsset o quoteAsset se pueden determinar a través del endpoint exchangeInfo.
El precio límite se define de baseAsset a quoteAsset.
Se utiliza baseAmount o quoteAmount.

CancelConvertLimitOrder OrderId Permite a los usuarios cancelar una orden límite
GetConvertLimitOpenOrders   Permite a los usuarios consultar todas las órdenes límite existentes
GetConvertTradeHistory StartTime, EndTime El intervalo máximo entre startTime y endTime es de 30 días.

 

 

 

Endpoints de cartera

(*los endpoints de billetera solo funcionan con el servidor de producción, no con el de demostración)

 

Método Descripción
GetWalletSystemStatus Obtener el estado del sistema.
GetWalletAllCoinsInformation Obtiene información sobre las monedas disponibles para depósito y retiro para el usuario.
GetWalletDailyAccountSnapshot Tipo: "SPOT", "MARGIN", "FUTURES"
  • El período de tiempo de la consulta debe ser inferior a 30 días
  • Solo se admiten consultas dentro del último mes
  • Si no se envían startTime y endTime, se devuelven los registros de los últimos 7 días de forma predeterminada
SetWalletDisableFastWithdrawSwitch Esta solicitud desactivará el interruptor de retiro rápido en su cuenta.
Es necesario habilitar la opción "trade" para la clave API que solicita este endpoint.
SetWalletEnableFastWithdrawSwitch Esta solicitud activará el interruptor de retiro rápido en su cuenta.
Debe habilitar la opción "trade" para la clave de API que realiza esta solicitud.
Cuando el interruptor de Retiro Rápido está activado, la transferencia de fondos a una cuenta Binance se realiza de forma instantánea. No hay transacción en cadena, ni ID de transacción ni comisión de retiro.
WalletWithdraw

Enviar una solicitud de retirada de fondos.

 

GetWalletDepositHistory Obtener historial de depósitos.
GetWalletWithdrawHistory Obtener historial de retiros.
GetWalletDepositAddress Obtener la dirección de depósito con la red.
GetWalletAccountStatus Obtener detalles del estado de la cuenta.
GetWalletAccountAPITradingStatus Obtiene el detalle del estado de negociación de la API de la cuenta.
GetWalletDustLog Devuelve solo los últimos 100 registros
Devuelve solo los registros posteriores al 2020/12/01
GetWalletAssetsConvertedBNB  
WalletDustTransfer

Convertir activos dust a BNB.

Es necesario habilitar el permiso de Trading al Contado y en Margen en la clave API que solicita este endpoint.

GetWalletAssetDividendRecord Consultar el registro de dividendos de activos.
GetWalletAssetDetail Obtener detalles de los activos admitidos en Binance.
GetWalletTradeFee Obtener comisión de negociación
WalletUserUniversalTransfer

Es necesario habilitar la opción Permitir transferencia universal para la clave API que solicita este endpoint. MAIN_UMFUTURE Transferencia de cuenta Spot a cuenta de futuros USDⓈ-M

ENUM de tipo:

  • MAIN_CMFUTURE Transferencia de cuenta Spot a cuenta de futuros COIN-M
  • MAIN_MARGIN Transferencia de cuenta Spot a cuenta de margen(cruzado)
  • UMFUTURE_MAIN Transferencia de cuenta de futuros USDⓈ-M a cuenta Spot
  • UMFUTURE_MARGIN Transferencia de cuenta de futuros USDⓈ-M a cuenta de margen(cruzado)
  • CMFUTURE_MAIN Transferencia de cuenta de futuros COIN-M a cuenta Spot
  • CMFUTURE_MARGIN Transferencia de cuenta de futuros COIN-M a cuenta de margen (cruzado)
  • MARGIN_MAIN Transferencia de cuenta de margen(cruzado)a cuenta Spot
  • MARGIN_UMFUTURE Transferencia de cuenta de margen(cruzado)a futuros USDⓈ-M
  • MARGIN_CMFUTURE Transferencia de cuenta de margen(cruzado)a futuros COIN-M
  • ISOLATEDMARGIN_MARGIN Transferencia de cuenta de margen aislado a cuenta de margen (cruzado)
  • MARGIN_ISOLATEDMARGIN Transferencia de cuenta de margen (cruzado) a cuenta de margen aislado
  • ISOLATEDMARGIN_ISOLATEDMARGIN Transferencia de cuenta de margen aislado a cuenta de margen aislado
  • MAIN_FUNDING Transferencia de cuenta Spot a cuenta de financiación
  • FUNDING_MAIN Transferencia de cuenta de financiación a cuenta Spot
  • FUNDING_UMFUTURE Transferencia de cuenta de financiación a cuenta UMFUTURE
  • UMFUTURE_FUNDING Transferencia de cuenta UMFUTURE a cuenta de financiación
  • MARGIN_FUNDING Transferencia de cuenta MARGIN a cuenta de financiación
  • FUNDING_MARGIN Transferencia de cuenta de financiación a cuenta de margen
  • FUNDING_CMFUTURE Transferencia de cuenta de financiación a cuenta CMFUTURE
  • CMFUTURE_FUNDING Transferencia de cuenta CMFUTURE a cuenta de financiación
GetWalletQueryUserUniversalTransferHistory
  • fromSymbol debe enviarse cuando el tipo sea ISOLATEDMARGIN_MARGIN e ISOLATEDMARGIN_ISOLATEDMARGIN
  • toSymbol debe enviarse cuando el tipo sea MARGIN_ISOLATEDMARGIN e ISOLATEDMARGIN_ISOLATEDMARGIN
  • Solo se admiten consultas de los últimos 6 meses
  • Si no se envían startTime ni endTime, se devuelven los registros de los últimos 7 días de forma predeterminada
GetWalletFundingWallet Actualmente admite consultas sobre los siguientes activos empresariales: Binance Pay, Binance Card, Binance Gift Card, Stock Token
GetWalletUserAsset Obtiene los activos del usuario, solo datos positivos.
GetWalletApiKeyPermission  

 

 

Eventos

Los mensajes de Binance se reciben en el componente TsgcWebSocketClient; puede utilizar los siguientes eventos:

 

OnConnect

Tras una conexión exitosa al servidor Binance.

OnDisconnect

Tras una desconexión del servidor de Binance

OnMessage

Los mensajes enviados por el servidor al cliente se gestionan en este evento.

OnError

Si hay algún error en el protocolo, se llamará a este evento.

OnException

Si hay una excepción no controlada, se invocará este evento.

 

Además, existe un evento específico en el componente Binance API, llamado OnBinanceHTTPException, que se lanza cada vez que se produce un error al llamar a una solicitud HTTP (REST API o WebSocket User Stream).

 

(*) Debido a cambios en los servidores de Binance, las versiones de Indy anteriores a Rad Studio 10.1 no podrán conectarse a los servidores de prueba. Este problema no afecta a la Enterprise Edition ni a quienes hayan actualizado la versión de Indy a la más reciente.