Como a API funciona
Endpoint de API
Todas as tuas requisições de API devem ser feitas para o seguinte endpoint de API:
https://api.cryptohopper.com/v1/
Métodos de Request Suportados
GET Use GET para recuperar um recurso ou um conjunto de recursos (como uma lista de todos os teus bots de trading, as tuas ordens atuais ou uma lista das tuas últimas transações). Esse método é seguro e idempotente.
POST Usa POST para criar um recurso. Por exemplo: coloca uma nova ordem de compra/venda, cria um novo robô de trading.
PATCH Usa PATCH para atualizar um recurso. Por exemplo: iniciar ou parar seu robô de trading, ou atualizar seus dados pessoais. Com esse método, é só fornecer os campos que je quer modificar no corpo da requisição.
DELETE Usa DELETER para deletar um recurso.
Parâmetros de Requisição
Tem quatro tipos de parâmetros que usamos na nossa API: path, query string, cabeçalho e parâmetros do corpo da requisição. Os parâmetros do corpo da requisição são dados enviados no corpo da requisição JSON para requisições POST e PATCH. Os parâmetros de cabeçalho são, obviamente, parâmetros que precisam ser enviados no cabeçalho. Mais informações sobre os parâmetros de Cabeçalho, Path e Query string estão abaixo.
Parâmetros de Cabeçalho
Toda requisição para nossa API precisa ser autenticada enviando os seguintes valores no cabeçalho:
- access-token - Seu token de acesso recebido com a autenticação OAuth2.
Parâmetros de Caminho
Estes são parâmetros fornecidos no URI do endpoint. Por exemplo, o endpoint GET Hopper:
https://api.cryptohopper.com/v1/hopper/{hopper_id}
Para recuperar um robô de negociação pelo seu ID único, precisa substituir o valor do seu ID no placeholder {hopper_id}. Por exemplo, para recuperar um robô de negociação com o ID 37, você requisitaria o seguinte URL:
https://api.cryptohopper.com/v1/hopper/37
Alguns endpoints exigem múltiplos parâmetros. Por exemplo, se quiseres retornar um pedido específico do Hopper anterior, precisas chamar a seguinte URL:
https://api.cryptohopper.com/v1//hopper/{hopperId}/order/{orderId}
E substituindo os parâmetros pelo Hopper e ID da ordem, je conseguirá:
https://api.cryptohopper.com/v1//hopper/37/order/231
Para uma lista detalhada dos parâmetros requeridos em cada endpoint da API, consulta nosso guia de referência da API.
Parâmetros da Query String
Usamos esses tipos de parâmetros em requisições GET para filtragem e/ou paginação de dados. Esses parâmetros não são especificados no caminho, mas como um conjunto de valores separados pelo caractere ‘&' na string da URL.
Por exemplo, para pegar as ordens de compra de Bitcoin de um robô de trading, je pode chamar a endpoint Hopper Order assim:
https://api.cryptohopper.com/v1/hopper/37/order/?order_type=buy&coin=btc
Olhando nossa referência de API, je percebe que, nesse caso, o parâmetro order_type pode receber os valores 'compra' ou 'venda', e o parâmetro coin pode ser qualquer código de moeda criptografada em minúsculo.
Formato de Resposta
Todas as respostas estão no formato de um objeto JSON. Portanto, o tipo MIME que encontras em todas as nossas respostas será application/json. Consulta a nossa documentação de referência da API para o formato específico de resposta JSON no corpo de cada requisição e resposta.
Códigos de Resposta HTTP
Usamos os códigos de status de resposta definidos pelos padrões RFC 2616 e RFC 6585..
200 - OK Requisição bem-sucedida. O cliente recebe o resultado da requisição no corpo e nos headers da resposta.
201 – Criado A requisição foi aceita e um novo recurso foi criado.
202 – Aceito A requisição foi aceita para processamento, mas o processamento não foi concluído.
204 – Sem Conteúdo O servidor processou a requisição com sucesso, mas nenhum conteúdo é retornado.
304 – Não Modificado O recurso não foi modificado desde a versão especificada pelos headers da requisição If-Modified-Since ou If-None-Match. Não é preciso retransmitir o recurso, já que o cliente ainda tem uma cópia baixada anteriormente.
Códigos de Erro HTTP
400 – Bad Request O servidor não pode ou não processará a solicitação devido a um aparente erro do cliente. O corpo da mensagem retornará as informações do erro.
400 – Bad Request O servidor não pode ou não processará a requisição devido a um aparente erro do cliente. A corpo da mensagem retornará as informações do erro.
401 – Unauthorized A requisição exige autenticação de usuário e foi negada devido a credenciais de API inválidas ou ausentes.
403 – Forbidden O servidor entendeu a requisição, mas está recusando o acesso porque je não tem permissão ou jeus credenciais foram revogadas.
404 – Not found Recurso solicitado não encontrado. Esse erro pode ser devido a uma condição temporária ou permanente.
405 – Method Not Allowed O método de requisição usado não é suportado pelo endpoint da API solicitado.
405 – Method Not Allowed O método de requisição usado não é suportado pelo endpoint da API solicitado.
429 – Too Many Request O usuário excedeu o limite de requisições API. Consulta o cabeçalho Retry-After retornado para saber quantos segundos precisa esperar para fazer uma nova requisição. Consulta nossa seção de limites de requisições para ver quais são os limites atuais.
500 – Internal Server Error Aconteceu um erro no nosso servidor que impede a gente de responder à tua requisição. Os nossos desenvolvedores vão ficar sem café da manhã por uma semana como primeiro aviso...
503 – Service Unavailable Nossos servidores podem estar com um problema e não conseguirão atender à sua solicitação.
Mensagens de erro
Sempre que a API retornar um código de erro, vai anexar um objeto JSON com a descrição do erro no corpo. Uma mensagem de erro ficaria assim:
{
"status": 400,
"error": 1,
"message": "Missing required request parameters: [access_token]"
}
Limites de Taxa
Nossa API tem um limite de requisições para distribuir os recursos de banda de maneira justa para todos os usuários. Os limites atuais são de 2 requisições por segundo por usuário, exceto para a colocação de ordens de compra. Nesse caso, o máximo de ordens de compra que podem ser colocadas é uma a cada 8 segundos.
Se você ultrapassar o número de requisições por segundo disponíveis, receberá um código de resposta de erro 429. Verifique o cabeçalho Retry-After incluído na resposta, que contém o tempo em segundos que você precisa esperar para fazer outra requisição.