Kucoin es un exchange de criptomonedas internacional y multilingüe. Ofrece varias APIs para acceder a los datos de Kucoin. Se admiten las siguientes APIs:
La API de Kucoin 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. Los métodos privados relacionados con datos del usuario requieren el uso de claves de API de Kucoin.
REST API
Para suscribirse a los mensajes de un canal de un determinado servidor, el lado cliente debe enviar un mensaje de suscripción al servidor.
Si la suscripción tiene éxito, el sistema le enviará mensajes de acuse de recibo cuando la respuesta se establezca como true.
{
"id":"1545910660739",
"type":"ack"
}
Mientras haya mensajes de tema generados, el sistema enviará los mensajes correspondientes al lado del cliente.
Se admiten los siguientes métodos de suscripción / cancelación de suscripción.
| Método | Parámetros | Descripción |
| SubscribeSymbolTicker | Symbol | Suscríbase a este tema para recibir notificaciones push de los cambios en BBO. Si no hay cambios en un segundo, no se enviará ninguna notificación. Se enviará cada 100 ms con el BBO más reciente. Si no hubo cambios respecto a los últimos datos, no se enviará ninguna notificación. |
| SubscribeAllSymbolsTicker | Suscríbase a este tópico para recibir las actualizaciones de BBO de todos los símbolos del mercado. | |
| SubscribeSymbolSnapshot | Symbol | Suscríbase para obtener datos de instantánea para un único símbolo. Los datos de instantánea se envían cada 2 segundos. |
| SubscribeMarketSnapshot | Mercado | Suscríbase a este topic para obtener los datos de instantánea de todo el mercado. Los datos de instantánea se envían a intervalos de 2 segundos. |
| SubscribeLevel2MarketData | Symbol | Suscríbase a este tema para obtener datos del libro de órdenes de nivel 2. Cuando la suscripción al websocket sea exitosa, el sistema le enviará los datos de cambio incremental transmitidos por el websocket. |
| SubscribeLevel2_5BestAskBid | Symbol | El sistema devolverá los 5 mejores datos de órdenes de compra/venta, que son los datos de instantánea de cada 100 milisegundos (en otras palabras, los 5 mejores datos de órdenes de compra/venta devueltos cada 100 milisegundos en tiempo real). |
| SubscribeLevel2_50BestAskBid | Symbol | El sistema devolverá los datos de las 50 mejores órdenes de compra/venta, que son datos de instantánea cada 100 milisegundos (es decir, los datos de las 50 mejores órdenes de compra/venta se devuelven cada 100 milisegundos en tiempo real). |
| SubscribeKlines | Symbol | Suscríbase a este tema para obtener datos K-Line. |
| SubscribeMatchExecutionData | Symbol | Suscríbase a este tema para obtener el flujo de datos de eventos correspondiente al Nivel 3. Por cada orden negociada, el sistema le enviará los mensajes de coincidencia en el siguiente formato. |
| SubscribeIndexPrice | Symbol | Suscríbase a este tópico para obtener el precio del índice para el trading con margen. |
| SubscribeMarkPrice | Symbol | Suscríbase a este tema para obtener el precio de marca para el trading con margen. |
| SubscribeOrderBookChanged | Symbol | Suscríbase a este tema para obtener los cambios del libro de órdenes en operaciones con margen. |
| SubscribeLevel1 | Symbol | Suscribirse a los datos de mejor oferta/demanda de nivel 1 para un símbolo. |
Si el parámetro ACK se envía como true, tras una suscripción o cancelación de suscripción satisfactoria, el cliente recibe un mensaje al respecto.
Requiere una ApiKey válida obtenida de su cuenta Kucoin. La ApiKey, ApiSecret y Passphrase deben establecerse en la propiedad Kucoin del componente API del cliente.
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 |
| SubscribeTradeOrders | Este tema enviará todos los eventos de cambio de sus órdenes. |
| SubscribeAccountBalance |
Recibirá este mensaje cuando cambie el saldo de una cuenta. El mensaje contiene los detalles del cambio. |
| SubscribePositionStatus | El sistema enviará el evento de cambio cuando el estado de la posición cambie. |
| SubscribeMarginTradeOrders | El sistema enviará este mensaje a los prestamistas cuando la orden entre en el libro de órdenes. |
| SubscribeStopOrder | Cuando el sistema recibe una orden stop, recibirá un mensaje con el tipo "open". Significa que esta orden ha entrado en el sistema y está esperando ser activada. |
| SubscribeTradeOrdersV2 | Suscribirse al canal de órdenes de negociación V2 para notificaciones de actualización de órdenes mejoradas. |
| SubscribeCrossMarginPosition | Suscríbase a las actualizaciones de posición de margen cruzado. El sistema enviará el evento de cambio cuando la posición de margen cruzado cambie. |
| SubscribeIsolatedMarginPosition | Suscribirse a las actualizaciones de posición de margen aislado. El sistema enviará el evento de cambio cuando cambie la posición de margen aislado. |
Todos los endpoints devuelven un objeto JSON o un array.
Endpoints de la API pública
Se puede acceder a estos endpoints sin ninguna autorización.
EndPoints generales
| Método | Parámetros | Descripción |
| GetServiceStatus | Pruebe la conectividad con la API REST y obtenga el estado del servicio | |
| GetServerTime | Compruebe la conectividad con la Rest API y obtenga la hora actual del servidor. |
Endpoints de datos de mercado
| Método | Parámetros | Descripción |
| GetSymbolList | Mercado | Realice una solicitud a este endpoint para obtener una lista de pares de divisas disponibles para operar. Si desea obtener la información de mercado del símbolo de negociación |
| GetTicker | Symbol | Realice una solicitud a este endpoint para obtener datos de mercado de Nivel 1. El valor devuelto incluye el mejor precio de compra y su tamaño, el mejor precio de venta y su tamaño, así como el último precio negociado y el último volumen negociado. |
| GetAllTickers | Solicitar tickers de mercado para todos los pares de negociación del mercado (incluido el volumen de 24 h). | |
| Get24hrStats | Symbol | Realice una solicitud a este endpoint para obtener las estadísticas del ticker especificado en las últimas 24 horas. |
| GetMarketList | Solicite a través de este endpoint la divisa de transacción de todo el mercado de negociación. | |
| GetPartOrderBook20 | Symbol | Realice una solicitud a este endpoint para obtener una lista de órdenes abiertas para un símbolo. El libro de órdenes de nivel 2 incluye todas las ofertas y demandas (agregadas por precio); este nivel devuelve un único tamaño por cada precio activo (como si solo existiera una orden para ese precio). El sistema le devolverá 20 datos (datos de oferta y demanda) del libro de órdenes. |
| GetPartOrderBook100 | Symbol | Solicite a través de este endpoint la lista de órdenes abiertas de un símbolo. El libro de órdenes de nivel 2 incluye todas las ofertas y demandas (agregadas por precio); este nivel devuelve solo un tamaño por cada precio activo (como si hubiera una única orden para ese precio). El sistema le devolverá 100 registros de datos (datos de compra y venta) del libro de órdenes. |
| GetFullOrderBook | Symbol | Solicite a través de este endpoint para obtener el libro de órdenes del símbolo especificado. El libro de órdenes de nivel 2 incluye todas las ofertas de compra y venta (agregadas por precio). Este nivel devuelve únicamente un tamaño agregado por cada precio (como si hubiera una sola orden para ese precio). Esta API devuelve datos con profundidad completa. |
| GetKLines | Symbol | Solicite a través de este endpoint para obtener la vela del símbolo especificado. Los datos se devuelven en grupos según el tipo solicitado. |
| GetCurrencies | Realice una solicitud a este endpoint para obtener la lista de divisas. | |
| GetCurrencyDetail | Divisa | Realice una solicitud a este endpoint para obtener los detalles de divisa de una moneda específica |
| GetFiatPrice | Realice una solicitud a este endpoint para obtener los detalles de divisa de una moneda específica | |
| GetPartOrderBook1 | Symbol | Realice una solicitud a través de este punto de conexión para obtener el mejor precio de compra/venta de Nivel 1 para un símbolo. |
Endpoints de API privada
Requiere una APIKey y un APISecret para ser autorizado por el servidor.
User EndPoints
| Método | Parámetros | Descripción |
| GetAllSubAccounts | Puede obtener la información del usuario de todos los subusuarios a través de esta interfaz. | |
| GetListAccounts | Obtener una lista de cuentas. | |
| GetAccount | AccountId | Información de una sola cuenta. Utilice este endpoint cuando conozca el accountId. |
| GetAccountBalanceSubAccount | SubUserId | Este endpoint devuelve la información de cuenta de un subusuario especificado por el subUserId. |
| InnerTransfer | Este endpoint de la API puede utilizarse para transferir fondos entre cuentas internamente. Los usuarios pueden transferir fondos entre su cuenta principal, cuenta de trading, cuenta de margen cruzado y cuenta de margen aislado de forma gratuita. Se admite la transferencia de fondos desde la cuenta principal, la cuenta de margen cruzado y la cuenta de trading a la cuenta de futuros, pero no se admite la transferencia desde cuentas de futuros a otras cuentas. | |
| GetDepositAddresses | Moneda | Obtiene las direcciones de depósito para una divisa. |
| CreateDepositAddress | Moneda | Crear una nueva dirección de depósito para una divisa. |
| GetDepositList | Obtener el historial de depósitos. | |
| GetAccountLedgers | Obtiene las entradas del libro mayor de la cuenta. | |
| GetTradeFees | Símbolos | Obtiene las tarifas de operación para los símbolos especificados. |
Puntos de Acceso de Retiro
| Método | Parámetros | Descripción |
| GetWithdrawalsList | Obtiene una lista de los Retiros. | |
| GetHistoricalWithdrawalsList | Lista de retiros históricos de KuCoin V1. | |
| GetWithdrawalsQuotas | Moneda | Obtener cuotas de retiros |
| ApplyWithdraw | Moneda, Dirección, Importe | Crear un retiro |
| CancelWithdraw | WithdrawalId | Solo se pueden cancelar las solicitudes de retiro con estado PROCESSING. |
Endpoints de operaciones
| Método | Parámetros | Descripción |
| PlaceOrder | Puede colocar dos tipos de órdenes: límite y mercado. Las órdenes solo pueden colocarse si su cuenta tiene fondos suficientes. Una vez colocada una orden, los fondos de su cuenta quedarán retenidos durante el tiempo que dure la orden. El importe y el tipo de fondos retenidos dependen del tipo de orden y de los parámetros especificados. | |
| PlaceMarketOrder | Coloca una Orden de Mercado. | |
| PlaceLimitOrder | Coloca una Orden Límite. | |
| PlaceMarginOrder | Coloca una orden de margen. | |
| CancelOrder | Cancela una orden por ID de orden. | |
| CancelOrderByClientOid | Cancela una orden por ID de orden del cliente. | |
| CancelAllOrders | Cancelar todas las órdenes abiertas. | |
| ListOrders | Solicite a este punto final para obtener su lista de órdenes actual. Los elementos están paginados y ordenados para mostrar los más recientes primero. | |
| GetRecentOrders | Realice una solicitud a través de este punto de acceso para obtener 1000 órdenes en las últimas 24 horas. | |
| GetOrder | Realice una solicitud a este endpoint para obtener información de una sola orden por ID de orden. | |
| GetOrderByClientOid | Solicite a través de este endpoint la información de un único pedido mediante el ID de pedido del cliente. | |
| ListFills | Solicite a través de este endpoint para obtener las transacciones recientes. | |
| GetRecentFills | Realice una solicitud a este endpoint para obtener una lista de 1000 transacciones en las últimas 24 horas. | |
| PlaceStopOrder | Coloca una orden Stop. | |
| PlaceStopMarketOrder | Coloca una Orden de Mercado Stop. | |
| PlaceStopLimitOrder | Coloca una orden Stop Limit. | |
| CancelStopOrder | Cancela una orden Stop abierta por Id de orden | |
| CancelStopOrderByClientOid | Cancela una Orden Stop Abierta por Id de Orden del Cliente | |
| CancelAllStopOrders | Cancelar todas las órdenes stop | |
| GetStopOrder | Solicite a través de esta interfaz la información de una orden de stop mediante el ID de la orden. | |
| GetStopOrderByClientOid | Solicite a través de esta interfaz para obtener información de una orden stop mediante el ID de orden del cliente. | |
| ListStopOrders | Realice una solicitud a este endpoint para obtener su lista actual de órdenes stop no activadas. Los elementos están paginados y ordenados para mostrar los más recientes primero. | |
| PlaceHFOrder | Colocar una orden de alta frecuencia. | |
| CancelHFOrder | Cancela una orden de alta frecuencia por ID de orden. | |
| CancelHFOrderByClientOid | Cancelar una orden de alta frecuencia por ID de orden del cliente. | |
| CancelAllHFOrders | Cancelar todas las órdenes de alta frecuencia. | |
| GetHFActiveOrders | Obtener órdenes de alta frecuencia activas. | |
| GetHFDoneOrders | Obtener órdenes de alta frecuencia completadas. | |
| GetHFOrder | Obtener una orden de alta frecuencia específica por ID de orden. |
Los mensajes de Kucoin se reciben en el componente TsgcWebSocketClient; puede usar los siguientes eventos:
OnConnect
Después de una conexión exitosa al servidor de Kucoin.
OnDisconnect
Tras una desconexión del servidor de Kucoin
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, hay un evento específico en el componente de la API de Kucoin, llamado OnKucoinHTTPException, que se activa cada vez que hay un error al llamar a una solicitud HTTP (API REST o WebSocket Feeds).