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:
El cliente también es compatible con Binance.us; se admiten las siguientes APIs:
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.
REST 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
}
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:
|
| Actualización de orden | Las órdenes se actualizan con el evento executionReport. |
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. |
| 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"
|
| 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:
|
| GetWalletQueryUserUniversalTransferHistory |
|
| 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 |
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.