Principais conclusões
APIs são pedaços de código que permitem que os aplicativos compartilhem informações e podem ser usados para aprimorar estratégias de negociação de criptomoedas.
Postman é uma plataforma API que simplifica o processo de construção e uso de APIs.
Saiba mais sobre como usar o Postman para negociação à vista no ecossistema da API Binance.
Introdução
Compreender e usar uma API para negociação de criptomoedas pode abrir um mundo de possibilidades para entrar e sair de posições. Com algum conhecimento simples de codificação, você pode conectar-se ao back-end de uma bolsa para automatizar suas estratégias de negociação. Ao evitar o site, você pode seguir um caminho muito mais rápido para o mecanismo de correspondência para aplicativos de alto desempenho.
Neste artigo, usaremos o Postman, uma plataforma API simplificada, para nos comunicarmos com a exchange. Não se preocupe – não colocaremos nenhum dinheiro real em risco.
Pré-requisitos
Chaves da rede de teste
Usaremos o testnet para nossos propósitos atuais. Este recurso de simulação nos dará alguns fundos sem valor real para brincar. Eles funcionam da mesma forma que moedas e tokens reais; portanto, quando estiver familiarizado com a API, você poderá começar a usá-la para negociar fundos reais.
Comece indo para a Spot Test Network.
Para obter acesso, faça login com uma conta GitHub. Você precisará criar um, caso ainda não o tenha feito.
Clique em Autenticar e faça login via GitHub.
Em Chaves de API, você será informado de que não possui chaves registradas. Clique em Gerar chave HMAC_SHA256 para criar um par.
Na próxima tela, dê um rótulo às teclas. Chame-os do que quiser e clique em Gerar.
São apresentadas duas chaves: a chave API e a chave secreta. É importante que você registre isso agora. Caso contrário, você precisará iniciar o processo de criação de chave novamente. Recomendamos armazená-los no aplicativo de notas da sua máquina para facilitar a cópia e colagem posterior.
Observação: vale a pena rotular suas chaves ao usar a troca real para gerenciar chaves diferentes. Sua conta pode ter várias chaves com permissões diferentes. Se você estiver executando vários bots de negociação, o uso de chaves separadas com rótulos descritivos facilita o gerenciamento de permissões ou a exclusão de chaves individuais sem alterar todos os seus bots.
Baixando e instalando o Postman
Postman é uma plataforma de colaboração API. É um ponto de partida perfeito para nós – teremos acesso a coleções de solicitações Binance que testaremos sem a necessidade de escrever uma única linha de código.
O programa está disponível para Mac, Windows e Linux. Vá para a página Downloads e baixe o arquivo .zip.
Depois de concluído, localize-o no explorador de arquivos e instale-o. Abra o aplicativo e pronto! Você pode criar uma conta para fazer login, mas não é necessário. Se quiser pular esta etapa, basta selecionar a opção na parte inferior da janela.
Criando o ambiente
Nesta fase, você deve ter uma interface semelhante à seguinte.
Primeiro, queremos criar nosso ambiente. Esta etapa é apenas uma forma de adicionar variáveis às solicitações com as quais trabalharemos. Primeiro, precisaremos obter algumas informações do repositório Binance GitHub. Vá até aqui e baixe o arquivo .zip.
O download não deve demorar muito. Você pode encontrá-lo no seu explorador de arquivos e descompactá-lo. Então, podemos voltar para o Postman.
Clique no ícone de engrenagem no canto superior direito (ilustrado acima). Você será saudado com um pop-up Gerenciar ambientes.
Selecione Importar e navegue até a pasta extraída (binance-postman-api).
Entre nele e entre na pasta de ambientes.
Agora você verá dois arquivos (um para mainnet e outro para testnet). O que procuramos é binance_com_spot_testnet_api.postman_environment.json. Certifique-se de ter a chave correta porque nossas chaves não funcionarão uma com a outra.
Quase lá. Clique na API Binance Spot Testnet para ver as variáveis abaixo. Edite os dois parâmetros destacados em vermelho colando as chaves que você salvou anteriormente. Clique em atualizar e saia do pop-up.
Nesta tela, deixe os campos de carimbo de data/hora e assinatura em branco. Esses dois valores serão criados automaticamente em cada solicitação.
Há uma última coisa a fazer. À direita do ícone de engrenagem em que clicamos para configurar o ambiente anteriormente, você verá um menu suspenso que atualmente diz Sem ambiente. Clique nele e selecione API Binance Spot Testnet.
Importando a coleção
Agora vamos importar a coleção – trata-se de um extenso sortimento de solicitações que fazem o trabalho pesado para nós na hora de fazer ligações. Para carregá-lo em nosso ambiente:
Clique em Importar no canto superior esquerdo.
No pop-up, na guia Arquivo, selecione Carregar arquivos.
Estamos procurando a pasta binance-postman-api novamente. Localize e abra-o.
Desta vez, insira coleções no subdiretório.
Existem dois arquivos aqui novamente. Uma é para trabalhar com a API de futuros. Mas estamos trabalhando com o spot, então você deve selecionar o arquivo Binance Spot API.postman_collection.json.
Agora você deve ver uma tela de confirmação identificando a importação como estando no formato Postman Collection. Selecione Importar.
Na guia Coleções à esquerda da janela, você notará que temos uma pasta com mais de 100 solicitações. Parabéns! Estamos prontos para ir. Na próxima seção, veremos os tipos de solicitações que podemos fazer.
Fazendo pedidos
Se você expandir as pastas na guia Coleções, verá que podemos fazer muitas solicitações diferentes. A partir do código de cores, você pode notar que existem três tipos de métodos que podemos usar:
GET: O método GET é usado para recuperar coisas de um servidor. Usaremos isso para encontrar informações sobre o saldo da sua conta, preços de ativos, etc.
POST: Geralmente usaremos o método POST para criar informações em um servidor. Este método é necessário para fazer pedidos, solicitar retiradas, etc.
DELETE: O método DELETE solicita ao servidor que exclua informações. Será útil para cancelar pedidos.
Encontre a lista de símbolos e as regras de negociação
É hora do nosso primeiro pedido! Obteremos os símbolos que podemos negociar na bolsa e as regras de negociação:
OBTER /api/v3/exchangeInfo
Este não requer nenhum parâmetro adicional – você pode copiar e colar na barra de endereço e obterá uma resposta. Mas o Postman facilita a visualização e modificação de solicitações onde incluímos vários parâmetros.
Para carregar esta solicitação, selecione Mercado > Informações de troca. Uma aba como a seguinte aparecerá:
Não precisamos fazer mais nada aqui, então vá em frente e clique em Enviar. Você receberá uma resposta:
Na seção destacada superior, você verá algumas informações importantes:
O status da resposta (200 significa que tivemos sucesso, 400-499 significa que encontramos um problema).
O tempo que levou para receber a resposta (menos de um segundo).
O tamanho da resposta (~22 KB).
Na segunda caixa está a maior parte da resposta. Esta caixa contém informações sobre a bolsa, os pares que você pode negociar e seus valores mínimos/máximos.
Parece muita informação, mas o formato facilita o trabalho programático. Ao escrever scripts para interagir com ele, você poderá facilmente escolher propriedades específicas de elementos específicos da resposta.
Verifique os saldos das contas
Vamos verificar quais ativos temos e quanto de cada um:
OBTER /api/v3/conta
Você pode encontrar este em Comércio > Informações da conta. Clique nele para ver um layout semelhante ao anterior. Você também notará, entretanto, que temos duas novas variáveis: carimbo de data/hora e assinatura. A assinatura é uma medida de segurança. Como agora solicitamos informações confidenciais, isso provará que somos o titular da conta.
O carimbo de data/hora informa ao servidor quando a solicitação foi enviada. Como as redes podem não ser confiáveis ou enfrentar períodos de inatividade, o servidor pode receber nossa solicitação muito mais tarde do que o pretendido. Se tiver passado muito tempo, o pedido será rejeitado. Você pode especificar quanto tempo deseja esperar com o parâmetro recvWindow, cujo padrão é 5.000 milissegundos.
Postman cuida da geração desses dois campos para nós. Clique em enviar e você receberá uma resposta. Nos saldos, você deverá ver seis ativos – BNB, BTC, BUSD, ETH, LTC e TRX. O saldo será dividido entre ativos livres e bloqueados. Ainda não bloqueamos nenhum, então todos os seus ativos devem estar gratuitos.
Obtenha o preço atual de um símbolo
Podemos obter o preço atual de um ativo de diferentes maneiras. Talvez o mais simples seja com a seguinte solicitação:
OBTER /api/v3/ticker/24hr
Como você pode imaginar, isso nos dará informações sobre os preços dos ativos nas últimas vinte e quatro horas. Você pode encontrá-lo em Mercado> Estatísticas de alteração de preço do ticker de 24 horas. O par padrão com o qual somos recebidos como variável de símbolo é BTC/USDT.
Você pode enviá-lo imediatamente para ver um detalhamento das informações de preços. Você também pode alterar o símbolo (para BNB/USDT, LTC/USDT, etc.) ou desmarcar a variável para retornar dados de 40 pares.
Também temos uma chamada mais simples (Mercado > Símbolo Preço Ticker) que retorna o preço atual pelo qual um ativo está sendo negociado:
OBTER /api/v3/preço
Tal como acontece com o anterior, você pode alterar a variável do símbolo ou removê-la completamente e obter o preço mais recente para todos os símbolos.
Verifique a profundidade da carteira de pedidos atual
A profundidade da carteira de pedidos – também conhecida como profundidade do mercado (DOM) – pode nos dizer muito sobre o mercado. Faremos uma ligação que retornará algumas informações úteis:
OBTER /api/v3/profundidade
Quando enviamos isso com os valores padrão (Mercado > Livro de Pedidos), recebemos uma resposta que nos informa sobre os lances e solicita BTC/USDT. O servidor testnet não produzirá tantos dados quanto o servidor real, então abaixo está uma captura de tela do que você esperaria ver em um ambiente real:
Na seção destacada acima, podemos ver o primeiro lance. Como estamos olhando o livro BTC/USDT, o número superior é o preço que alguém está disposto a pagar pelo seu BTC. Abaixo está o valor que eles estão dispostos a comprar. Portanto, isso indica que este pedido está pedindo 0,999 BTC a uma taxa de 9.704,65 USDT por BTC. Se continuássemos a rolar para baixo, veríamos o preço de oferta diminuir – representando compradores que pagariam menos.
A oferta principal será naturalmente a mais atraente se você estiver procurando por um bom retorno para seu investimento. Ainda assim, se você estiver tentando vender 3 BTC, por exemplo, só conseguirá vender 0,999 BTC pelo melhor preço. Você precisará aceitar as ofertas subsequentes (mais baratas) até que seu pedido seja atendido.
Continue rolando e você verá as perguntas. Eles são funcionalmente semelhantes aos lances, exceto que representam ordens de venda de BTC por USDT.
Faça um pedido de teste
Agora vamos postar um pedido de teste.
POST /api/v3/pedido/teste
Mesmo que estejamos usando apenas fundos testnet, esta solicitação não gerará um pedido. Pode ser útil testar pedidos antes de enviá-los. Encontre-o em Negociação > Testar Novo Pedido (TRADE).
Você pode ver que temos muito mais parâmetros envolvidos. Vamos examinar os verificados:
símbolo – já nos deparamos com este anteriormente. Este é o par que você deseja negociar.
lado – aqui você estipula se deseja COMPRAR ou VENDER. Com o par BTC/USDT, BUY indica que você deseja comprar BTC por USDT, enquanto vender venderá BTC por USDT.
type – o tipo de pedido que você deseja enviar. Valores possíveis (detalhados aqui):
LIMITE
MERCADO
PARAR A PERDA DE
STOP_LOSS_LIMIT
OBTER LUCROS
TAKE_PROFIT_LIMIT
LIMIT_MAKER
timeInForce – este parâmetro expressa como você deseja que o pedido seja executado:
GTC (válido até ser cancelado) – talvez a configuração mais popular, o GTC garantirá que seu pedido seja válido até que seja atendido ou cancelado.
FOK (preencher ou matar) – FOK instrui a bolsa a executar uma ordem de uma só vez. Caso a troca não consiga fazê-lo, o pedido é cancelado imediatamente.
IOC (imediato ou cancelado) – todo ou parte do pedido deve ser executado imediatamente ou será cancelado. Ao contrário do FOK, os pedidos não são cancelados se puderem ser parcialmente atendidos.
quantidade – a quantidade do ativo que você deseja comprar ou vender.
preço – o preço pelo qual você deseja vender. Para o par BTC/USDT, isso é expresso em USDT.
newClientOrderId – um identificador para o pedido. Este não é um campo obrigatório, mas você pode configurá-lo para um identificador que facilitará a consulta posterior. Caso contrário, será gerado aleatoriamente pela exchange.
OK! Vamos criar um pedido de teste agora. Continuaremos com os valores gerados automaticamente: uma ordem limite para vender 0,1 BTC por USDT a US$ 9.000. Clique em Enviar. Se der certo, receberemos {} como resposta.
Faça um pedido de verdade
É hora de fazer um pedido real.
POSTAR /api/v3/pedido
Navegue até Negociar > Novo Pedido. Você já está familiarizado com os pedidos de teste, então os parâmetros aqui não serão nenhuma surpresa. Vamos deixar todos os valores como estão, mas alterar o preço que estamos vendendo para 40.000 USD. Ajuste o valor do preço para refletir isso. Em seguida, clique em Enviar.
Sua resposta retornará vários detalhes sobre o pedido, se for bem-sucedido.
Verifique o status de um pedido aberto
Recebemos a confirmação de que o pedido foi feito na seção anterior, mas e se quisermos verificá-lo novamente mais tarde? Temos alguns pedidos à nossa disposição.
OBTER /api/v3/openOrders
Você encontrará isso em Negociação > Ordens Abertas Atuais (USER_DATA). BTC/USDT é selecionado por padrão. Se você clicar em Enviar, você receberá todos os seus pedidos BTC/USDT abertos (até agora, você só deverá ver aquele que definimos anteriormente). Você também pode optar por não especificar um símbolo, o que retornará todos os seus pedidos em aberto.
OBTER /api/v3/allOrders
Trade > All Orders (USER_DATA) oferece uma visão geral de todos os pedidos – não apenas dos abertos. Aqui, você deve fornecer um símbolo. orderId, startTime, endTime e limit são parâmetros opcionais que podem ajudá-lo a refinar sua pesquisa. Vamos deixá-los aqui, então desmarque-os. Clique em Enviar e você verá a mesma resposta de antes. Se você tivesse algum pedido fechado ou cancelado, você também os veria aqui.
Por último, podemos consultar pedidos específicos com o seguinte:
OBTER /api/v3/pedido
Obtenha isso em Negociação> Consultar pedido (USER_DATA). Você precisará fornecer o orderId ou origClientOrderId (a tag opcional “newClientOrderId” que você pode adicionar aos pedidos). Desmarque orderId. Para origClientOrderId, forneceremos a tag padrão anterior – ”my_order_id_1”. Preencha o campo e clique em Enviar para obter a resposta.
Cancelar um pedido
Depois de algum tempo, poderemos decidir que a meta de 40.000 USD é demasiado otimista, por isso queremos cancelá-la. Nesse caso, usaríamos o seguinte:
EXCLUIR /api/v3/pedido
Em Negociação > Cancelar pedido há uma solicitação que nos permitirá destacar pedidos para cancelamento. Desmarque orderId e newClientOrderId e passe “my_order_id_1” como o valor para origClientOrderId.
Ao enviar esta solicitação, o pedido será devolvido. Se você rolar para baixo até “status”, verá que ele realmente foi cancelado. Para confirmar isso, use o endpoint GET /api/v3/openOrders novamente (fornecendo uma lista vazia) ou GET /api/v3/order com origClientOrderId.
Faça um pedido que seja atendido instantaneamente
Nosso pedido anterior não foi atendido porque era um pedido com limite que só seria acionado quando o preço do BTC atingisse 40.000 USD. Com uma ordem de mercado, dizemos essencialmente: “Compre ou venda a qualquer preço pelo qual o ativo esteja sendo negociado atualmente”. Isso será preenchido instantaneamente.
Para isso, vamos voltar para Comércio > Nova Ordem. Demonstraremos o tipo de resposta (newOrderRespType), que é um parâmetro que podemos ajustar dependendo da resposta que queremos do servidor. Existem três opções aqui: ACK, RESULT ou FULL – você pode ver exemplos de cada resposta aqui. Iremos com ACK, que nos dá uma simples confirmação de que o pedido foi recebido.
Abaixo, você pode ver que estamos prestes a enviar uma ordem de mercado para vender BNB por BUSD ao preço de mercado atual.
Observe que a resposta nos fornece informações mínimas:
Você pode verificar se o pedido foi preenchido com o endpoint /api/v3/allOrders.
Verificando suas negociações
Vejamos por último o ponto final para verificar suas negociações:
OBTER /api/v3/myTrades
Ele está localizado em Comércio > Lista de comércio da conta (USER_DATA). Ele permite que você verifique cada negociação em busca de um símbolo específico. Se você quiser ver todas as suas negociações para o símbolo padrão (BTC/USDT), simplesmente desmarque startTime, endTime e fromId. A resposta retornará até 500 negociações – basta ajustar o limite se quiser ver mais.
Depurando com Postman
No Postman, é possível revelar ainda mais a solicitação e resposta HTTP bruta.
Este menu abrirá o console do Postman, que imprime os detalhes de cada solicitação.
Comece com a API Binance
O objetivo deste guia foi apresentar gentilmente a API da Binance sem escrever uma única linha de código. Se você acompanhou, agora deve ter uma ideia de como podemos solicitar e enviar informações.
Enquanto isso, perguntas? Acesse nosso crescente fórum da Comunidade de Desenvolvedores Binance ou consulte a documentação.
Leitura adicional
Glossário: Interface de Programação de Aplicativo (API)
O que é uma chave de API e como usá-la com segurança?
Como usar uma chave API com segurança: 5 dicas da Binance

