A Kucoin é uma exchange de criptomoedas internacional e multilíngue. Ela oferece algumas APIs para acessar dados da Kucoin. As seguintes APIs são suportadas:
A API da Kucoin tem 2 tipos de métodos: públicos e privados. Os métodos públicos podem ser acessados sem autenticação, exemplo: obter preços de ticker. Os métodos privados e relacionados a dados do usuário exigem o uso de chaves de API da Kucoin.
REST API
Para assinar as mensagens de um canal a partir de um determinado servidor, o lado do cliente deve enviar uma mensagem de assinatura ao servidor.
Se a assinatura for bem-sucedida, o sistema enviará mensagens de ack a você, quando a resposta for definida como true.
{
"id":"1545910660739",
"type":"ack"
}
Enquanto houver mensagens de tópico geradas, o sistema enviará as mensagens correspondentes ao lado do cliente.
Os seguintes métodos de Assinatura / Cancelamento de assinatura são suportados.
| Method | Parâmetros | Descrição |
| SubscribeSymbolTickerV2 | Symbol | Assine este tópico para obter o push em tempo real das mudanças de BBO. Após a assinatura, quando houver mudanças no order book, o sistema enviará as informações do ticker symbol em tempo real para você. Recomenda-se usar o novo tópico para informações pontuais. |
| SubscribeSymbolTicker | Symbol | Faça subscribe a este tópico para obter o push em tempo real de mudanças de BBO. O canal ticker fornece atualizações de preço em tempo real sempre que ocorre um match. Se várias ordens forem correspondidas ao mesmo tempo, apenas o último evento de correspondência será enviado. |
| SubscribeLevel2MarketData | Symbol | Assine este tópico para obter dados de order book de Level 2. |
| SubscribeExecutionData | Symbol | Para cada ordem executada, o sistema enviará a você as mensagens de match no formato a seguir. |
| SubscribeLevel2_5BestAskBid | Symbol | Retornado a cada 100 milissegundos no máximo. |
| SubscribeLevel2_50BestAskBid | Symbol | Retornado a cada 100 milissegundos no máximo. |
| SubscribeContractMarketData | Symbol | Assine este tópico para obter os dados de mercado do contrato. |
| SubscribeSystemAnnouncements | Symbol | Assine este tópico para obter os anúncios do sistema. |
| SubscribeTransactionStatistics | Symbol | As estatísticas de transações serão enviadas aos usuários a cada 5 segundos. |
| SubscribeKlines | Symbol | Assinar dados de klines (candlestick) de contratos. |
| SubscribeFundingFeeSettlement | Symbol | Assine notificações de liquidação de funding fee. |
Se o parâmetro ACK for enviado como true, após uma assinatura / cancelamento de assinatura bem-sucedido, o cliente recebe uma mensagem sobre isso.
Requer uma ApiKey válida obtida da sua conta Kucoin. A ApiKey, o ApiSecret e a Passphrase devem ser definidos na propriedade Kucoin do componente de API cliente.
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 |
| SubscribeTradeOrders | Este tópico enviará todos os eventos de alteração das suas ordens. |
| SubscribeAccountBalance |
Você receberá esta mensagem quando o saldo de uma conta for alterado. A mensagem contém os detalhes da alteração. |
| SubscribePositionChange | O sistema enviará o evento de mudança quando o status da posição mudar. |
| SubscribeStopOrder | Quando uma stop order é recebida pelo sistema, você receberá uma mensagem com o tipo "open". Isso significa que esta ordem entrou no sistema e aguardou para ser acionada. |
| SubscribeMarginMode | Inscreve-se em mudanças de modo de margem. O sistema enviará o evento de mudança quando o modo de margem for atualizado. |
| SubscribeCrossMarginLeverage | Faça subscribe a alterações de alavancagem de margem cruzada. O sistema enviará o evento de alteração quando a alavancagem de margem cruzada for atualizada. |
Todos os endpoints retornam um objeto ou array JSON.
EndPoints da API Pública
Esses endpoints podem ser acessados sem nenhuma autorização.
General EndPoints
| Method | Parâmetros | Descrição |
| GetServiceStatus | Testa a conectividade com a Rest API e obtém o Status do Serviço | |
| GetServerTime | Testar a conectividade com a Rest API e obter a hora atual do servidor. |
Market Data EndPoints
| Method | Parâmetros | Descrição |
| GetOpenContractList | Envia uma requisição para obter as informações de todos os contratos abertos. | |
| GetOrderInfoContract | Envia uma requisição para obter informações do contrato especificado. | |
| GetTicker | Symbol | O ticker em tempo real inclui o último preço negociado, o último tamanho negociado, o ID da transação, o lado do tomador de liquidez, o melhor preço e tamanho de bid, o melhor preço e tamanho de ask, bem como o horário da transação das ordens. Essas mensagens também podem ser obtidas através de Websocket. O Sequence Number é usado para julgar se as mensagens enviadas pelo Websocket são contínuas. |
| GetPartOrderBook20 | Symbol | Obtém um snapshot das ordens em aberto agregadas para um símbolo. |
| GetPartOrderBook100 | Symbol | Obtém um snapshot das ordens em aberto agregadas para um símbolo. |
| GetFullOrderBook | Symbol | Obtém um snapshot das ordens em aberto agregadas para um símbolo. |
| GetLevel2PullingMessages | Symbol | Se as mensagens enviadas pelo Websocket não forem contínuas, você pode enviar a seguinte requisição e re-extrair os dados para garantir que a sequência não esteja faltando. Na requisição, o parâmetro start é o número de sequência da sua última mensagem recebida mais 1, e o parâmetro end é o número de sequência da sua mensagem recebida atual menos 1. Após re-extrair as mensagens e aplicá-las ao seu order book de exchange local, você pode continuar a atualizar o order book através do feed incremental do Websocket. Se a diferença entre os parâmetros end e start for maior que 500, pare de utilizar esta requisição e sugerimos que você reconstrua o orderbook Level 2. |
| GetTradeHistory | Symbol | Lista os últimos 100 trades de um símbolo. |
| GetInterestRateList | Symbol | Consulta a lista de taxas de juros. |
| GetIndexList | Symbol | Verificar lista de índices |
| GetCurrentMarkPrice | Symbol | Verificar o mark price atual. |
| GetPremiumIndex | Symbol | Submete uma requisição para obter o índice premium. |
| GetCurrentFundingRate | Symbol | Envia a requisição para verificar o mark price atual. |
| GetKLine | Symbol | Obtém os Dados de K Line do Contrato |
Private API EndPoints
Requer uma APIKey e uma APISecret para ser autorizado pelo servidor.
User EndPoints
| Method | Parâmetros | Descrição |
| GetAccountOverview | Get Account Overview | |
| GetTransactionHistory | Se houver posições abertas, o status da primeira página retornada será Pending, indicando o lucro e a perda realizados no período de liquidação atual de 8 horas. Especifique o número de offset mínimo da página atual no campo offset para mudar de página. |
Trade Endpoints
| Method | Parâmetros | Descrição |
| PlaceOrder | Você pode colocar dois tipos de ordens: limit e market. As ordens só podem ser colocadas se sua conta tiver fundos suficientes. Uma vez que uma ordem é colocada, seus fundos ficarão retidos pela duração da ordem. A quantidade de fundos retidos depende do tipo de ordem e dos parâmetros especificados. | |
| PlaceMarketOrder | Coloca uma Ordem a Mercado. | |
| PlaceLimitOrder | Coloca uma Ordem Limit. | |
| CancelOrder | Cancela uma Ordem pelo Order Id. | |
| LimitOrderMassCancellation | Cancela todas as ordens abertas (excluindo stop orders). A resposta é uma lista de orderIDs das ordens canceladas. | |
| StopOrderMassCancellation | Cancela todas as ordens stop não acionadas. A resposta é uma lista de orderIDs das ordens stop canceladas. Para cancelar ordens stop acionadas, use 'Limit Order Mass Cancelation'. | |
| GetOrderList | Lista suas ordens atuais. | |
| GetUntriggeredStopOrderList | Obter a lista de stop orders não acionadas. | |
| GetListOrdersCompleted24hr | Obtém uma lista das últimas 1000 ordens nas últimas 24 horas. Se você precisar obter seu histórico recente de ordens negociadas com baixa latência, pode consultar este endpoint. | |
| GetOrder | Obtém uma única ordem por order id (incluindo uma stop order). | |
| GetOrderByClientOid | Obtém uma única ordem pelo client order id (incluindo uma ordem stop). | |
| GetFills | Obtém uma lista de fills recentes. | |
| GetRecentFills | Obtém uma lista dos 1000 fills mais recentes nas últimas 24 horas. Se você precisar obter seu histórico recente de ordens negociadas com baixa latência, pode consultar este endpoint. | |
| ActiveOrderValueCalculation | Você pode consultar este endpoint para obter o número total e o valor de todas as suas ordens ativas. | |
| GetPositionDetails | Obtém os detalhes da posição de uma posição especificada. | |
| GetPositionList | Obtém os detalhes da posição de uma posição especificada. | |
| AutoDepositMargin | Habilita/Desabilita o Auto-Deposit Margin | |
| AddMarginManually | Adicionar Margem Manualmente | |
| ObtainFuturesRiskLimitLevel | Esta interface pode ser usada para obter informações sobre o nível de limite de risco de um contrato específico | |
| AdjustRiskLimitLevel | Esta interface é para o ajuste do nível de limite de risco. Ajustar o nível cancelará a ordem aberta, a resposta só pode indicar se o envio da requisição de ajuste foi bem-sucedido ou não. | |
| GetFundingHistory | Envia uma requisição para obter o histórico de funding. | |
| GetMaxOpenSize | Obter o tamanho máximo de posição aberta para um contrato. | |
| SwitchMarginMode | Alterna entre os modos de margem cruzada e isolada. | |
| GetMarginMode | Obter o modo de margem atual de um contrato. |
As mensagens da Kucoin são recebidas no componente TsgcWebSocketClient; você pode utilizar os seguintes eventos:
OnConnect
Após uma conexão bem-sucedida ao servidor Kucoin.
OnDisconnect
Após uma desconexão do servidor Kucoin
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.
Adicionalmente, há um evento específico no Componente da API Kucoin, chamado OnKucoinHTTPException, que é gerado toda vez que há um erro ao chamar uma Requisição HTTP (REST API ou WebSocket Feeds).