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 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 relacionados a dados do usuário exigem o uso das API keys 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 |
| SubscribeSymbolTicker | Symbol | Inscreva-se neste tópico para obter o push de alterações de BBO. Se não houver alteração dentro de um segundo, ele não será enviado. Será enviado a cada 100ms com o BBO mais recente. Se não houve alteração em relação aos últimos dados, ele não será enviado. |
| SubscribeAllSymbolsTicker | Assine este tópico para obter o push de todas as mudanças de BBO dos símbolos de mercado. | |
| SubscribeSymbolSnapshot | Symbol | Assina para obter dados de snapshot de um único símbolo. Os dados de snapshot são enviados em intervalos de 2 segundos. |
| SubscribeMarketSnapshot | Market | Assine este tópico para obter os dados de snapshot de todo o mercado. Os dados de snapshot são enviados em intervalos de 2 segundos. |
| SubscribeLevel2MarketData | Symbol | Assine este tópico para obter dados do livro de ordens Level2. Quando a assinatura do websocket for bem-sucedida, o sistema enviaria a você os dados de mudança incremental enviados pelo websocket. |
| SubscribeLevel2_5BestAskBid | Symbol | O sistema retornará os dados das 5 melhores ordens de ask/bid, que são os dados de snapshot a cada 100 milissegundos (em outras palavras, os dados das 5 melhores ordens de ask/bid retornados a cada 100 milissegundos em tempo real). |
| SubscribeLevel2_50BestAskBid | Symbol | O sistema retornará os dados das 50 melhores ordens de ask/bid, que são os dados de snapshot a cada 100 milissegundos (em outras palavras, os dados das 50 melhores ordens de ask/bid retornados a cada 100 milissegundos em tempo real). |
| SubscribeKlines | Symbol | Assine este tópico para obter os dados de K-Line. |
| SubscribeMatchExecutionData | Symbol | Assine este tópico para obter o fluxo de dados de eventos de correspondência do Level 3. Para cada ordem negociada, o sistema enviará as mensagens de correspondência no formato a seguir. |
| SubscribeIndexPrice | Symbol | Inscreva-se neste tópico para obter o preço de índice da negociação com margem. |
| SubscribeMarkPrice | Symbol | Assine este tópico para obter o mark price para trading de margem. |
| SubscribeOrderBookChanged | Symbol | Assine este tópico para obter as alterações do order book no trade de margem. |
| SubscribeLevel1 | Symbol | Assina os dados de melhor bid/ask de Level 1 para um símbolo. |
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. |
| SubscribePositionStatus | O sistema enviará o evento de mudança quando o status da posição mudar. |
| SubscribeMarginTradeOrders | O sistema enviará esta mensagem aos lenders quando a ordem entrar no order book. |
| 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. |
| SubscribeTradeOrdersV2 | Assine o canal de ordens de negociação V2 para notificações aprimoradas de atualização de ordem. |
| SubscribeCrossMarginPosition | Assine atualizações de posição de cross margin. O sistema enviará o evento de mudança quando a posição de cross margin mudar. |
| SubscribeIsolatedMarginPosition | Assina atualizações de posição em margem isolada. O sistema enviará o evento de alteração quando a posição em margem isolada mudar. |
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 |
| GetSymbolList | Market | Faça uma requisição através deste endpoint para obter uma lista de pares de moedas disponíveis para negociação. Se você quiser obter as informações de mercado do símbolo de negociação |
| GetTicker | Symbol | Faça a requisição por este endpoint para obter Market Data de Nível 1. O valor retornado inclui o melhor preço e tamanho de bid, o melhor preço e tamanho de ask, bem como o último preço negociado e o último tamanho negociado. |
| GetAllTickers | Solicita os tickers de mercado para todos os pares de negociação do mercado (incluindo volume de 24h). | |
| Get24hrStats | Symbol | Solicite por este endpoint para obter as estatísticas do ticker especificado nas últimas 24 horas. |
| GetMarketList | Faça uma requisição através deste endpoint para obter a moeda de transação de todo o mercado de negociação. | |
| GetPartOrderBook20 | Symbol | Requisita por meio deste endpoint para obter uma lista de ordens abertas de um símbolo. O order book de Level-2 inclui todos os bids e asks (agregados por preço); este nível retorna apenas um tamanho para cada preço ativo (como se houvesse apenas uma única ordem para aquele preço). O sistema retornará 20 itens de dados (dados de ask e bid) no order book. |
| GetPartOrderBook100 | Symbol | Faça a requisição por este endpoint para obter uma lista de ordens abertas de um símbolo. O livro de ordens de Nível 2 inclui todos os bids e asks (agregados por preço); este nível retorna apenas um tamanho para cada preço ativo (como se houvesse apenas uma única ordem para aquele preço). O sistema retornará 100 itens de dados (dados de ask e bid) no livro de ordens. |
| GetFullOrderBook | Symbol | Requisite através deste endpoint para obter o order book do símbolo especificado. O order book Level 2 inclui todos os bids e asks (agregados por preço). Este nível retorna apenas um tamanho agregado para cada preço (como se houvesse apenas uma única ordem para esse preço). Esta API retornará dados com profundidade completa. |
| GetKLines | Symbol | Faça uma requisição por meio deste endpoint para obter a kline do símbolo especificado. Os dados são retornados em buckets agrupados com base no tipo solicitado. |
| GetCurrencies | Requisite através deste endpoint para obter a lista de moedas. | |
| GetCurrencyDetail | Currency | Requisite através deste endpoint para obter os detalhes de uma moeda especificada |
| GetFiatPrice | Requisite através deste endpoint para obter os detalhes de uma moeda especificada | |
| GetPartOrderBook1 | Symbol | Faça a requisição por este endpoint para obter o melhor bid/ask de Nível 1 de um símbolo. |
Private API EndPoints
Requer uma APIKey e uma APISecret para ser autorizado pelo servidor.
User EndPoints
| Method | Parâmetros | Descrição |
| GetAllSubAccounts | Você pode obter as informações de usuário de todos os sub-usuários por meio desta interface. | |
| GetListAccounts | Obter uma lista de contas. | |
| GetAccount | AccountId | Informações de uma única conta. Utilize este endpoint quando você conhecer o accountId. |
| GetAccountBalanceSubAccount | SubUserId | Este endpoint retorna as informações da conta de um subusuário especificado pelo subUserId. |
| InnerTransfer | Este endpoint da API pode ser usado para transferir fundos entre contas internamente. Os usuários podem transferir fundos entre sua conta principal, conta de negociação, conta de margem cruzada e conta de margem isolada gratuitamente. A transferência de fundos da conta principal, conta de margem cruzada e conta de negociação para a conta de futuros é suportada, mas a transferência de fundos das contas de futuros para outras contas não é suportada. | |
| GetDepositAddresses | Currency | Obtém os endereços de depósito de uma moeda. |
| CreateDepositAddress | Currency | Criar um novo endereço de depósito para uma moeda. |
| GetDepositList | Obter histórico de depósitos. | |
| GetAccountLedgers | Obter as entradas do ledger da conta. | |
| GetTradeFees | Symbols | Obtém as taxas de trade para os símbolos especificados. |
Endpoints de saque
| Method | Parâmetros | Descrição |
| GetWithdrawalsList | Obtém uma lista dos Withdrawals. | |
| GetHistoricalWithdrawalsList | Lista de saques históricos da KuCoin V1. | |
| GetWithdrawalsQuotas | Currency | Get Withdrawals Quotas |
| ApplyWithdraw | Currency, Address, Amount | Cria um Withdraw |
| CancelWithdraw | WithdrawalId | Somente requisições de saque com status PROCESSING podem ser canceladas. |
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 colocada uma ordem, os fundos da sua conta ficarão retidos pela duração da ordem. Quanto e quais fundos ficam retidos depende do tipo de ordem e dos parâmetros especificados. | |
| PlaceMarketOrder | Coloca uma Ordem a Mercado. | |
| PlaceLimitOrder | Coloca uma Ordem Limit. | |
| PlaceMarginOrder | Coloca uma Margin Order. | |
| CancelOrder | Cancela uma Ordem pelo Order Id. | |
| CancelOrderByClientOid | Cancela uma ordem pelo Client Order Id. | |
| CancelAllOrders | Cancela todas as ordens abertas. | |
| ListOrders | Faça uma requisição por este endpoint para obter sua lista de ordens atual. Os itens são paginados e ordenados para mostrar os mais recentes primeiro | |
| GetRecentOrders | Requisite por meio deste endpoint para obter 1000 ordens nas últimas 24 horas. | |
| GetOrder | Requisita por meio deste endpoint para obter as informações de uma única ordem pelo order ID. | |
| GetOrderByClientOid | Solicite por este endpoint para obter as informações de uma única ordem pelo Client order ID. | |
| ListFills | Solicite por este endpoint para obter os fills recentes. | |
| GetRecentFills | Requisita por meio deste endpoint para obter uma lista de 1000 fills nas últimas 24 horas. | |
| PlaceStopOrder | Coloca uma Stop Order. | |
| PlaceStopMarketOrder | Coloca uma Ordem Stop Market. | |
| PlaceStopLimitOrder | Coloca uma ordem Stop Limit. | |
| CancelStopOrder | Cancela uma Open Stop Order pelo Order Id | |
| CancelStopOrderByClientOid | Cancela uma Open Stop Order pelo Client Order Id | |
| CancelAllStopOrders | Cancel All Stop Orders | |
| GetStopOrder | Faça uma requisição através desta interface para obter informações de uma ordem stop pelo ID da ordem. | |
| GetStopOrderByClientOid | Requisita por meio desta interface para obter informações de uma ordem stop pelo Client order ID. | |
| ListStopOrders | Faça uma requisição neste endpoint para obter a sua lista atual de stop orders não disparadas. Os itens são paginados e ordenados para mostrar os mais recentes primeiro. | |
| PlaceHFOrder | Coloca uma ordem de alta frequência. | |
| CancelHFOrder | Cancela uma ordem de alta frequência pelo order ID. | |
| CancelHFOrderByClientOid | Cancela uma ordem de alta frequência pelo ID da ordem do cliente. | |
| CancelAllHFOrders | Cancelar todas as ordens de alta frequência. | |
| GetHFActiveOrders | Obter ordens ativas de alta frequência. | |
| GetHFDoneOrders | Obter ordens de alta frequência concluídas. | |
| GetHFOrder | Obtém uma ordem específica de alta frequência pelo ID da ordem. |
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).