2.0.0
A API de Dados da Bitnuvem é uma API pública que proporciona acesso em tempo real a informações detalhadas sobre cada ativo disponível em nossa corretora. Com esta API, os desenvolvedores podem integrar dados como o livro de ofertas, cotações e taxas aplicadas pela rede diretamente em suas aplicações.
A API de Negociação da Bitnuvem é projetada para realizar operações em sua conta, permitindo que consulte seu portfólio, gerencie suas ordens, efetue saques e realize envios de criptoativos, entre outras funcionalidades. Ela é feita para integrar e automatizar processos de negociação e gestão de ativos em suas aplicações.
As APIs de Dados e de Negociação da Bitnuvem têm um limite de 60 requisições por minuto. Se esse limite for ultrapassado, o sistema retornará uma mensagem padrão indicando que o limite de requisições foi excedido.
Símbolo / Ticker | Descrição | Decimais |
---|---|---|
BTC | Bitcoin | 8 |
BRL | Real | 2 |
ETH | Ethereum | 8 |
USDT | Tether | 6 |
Símbolo / Ticker | Descrição |
---|---|
BTCBRL | Bitcoin/Real |
ETHBRL | Ethereum/Real |
USDTBRL | Tether/Real |
Atributo | Descrição |
---|---|
codeint | 200 quando requisição for completada |
dataarray | Se existir, retorno com as informações da requisição |
Atributo | Descrição |
---|---|
codeint | Código do erro, sempre será um número negativo |
msgstring | Se existir, texto descritivo sobre erro |
Código | Descrição |
---|---|
200 | Requisição completada sem erros |
-1002 | Símbolo / ticker inválido |
-1001 | Ocorreu um erro na requisição |
-1003 | Registro inválido, não existe ou expirado |
-1004 | Excedido número de requisições permitidas |
-2001 | Timestamp incorreto |
-2002 | Problemas na autenticação da chave |
-2003 | Operação não suportada, sem permissão |
-2004 | Essa conta não pode continuar com a requisição (com restrição) |
-3000 | Erro desconhecido |
-3001 | Serviço indiponível no momento |
Para uso da API de Dados deve usar a URL abaixo, alterando os campos em destaque com os parametros desejados:
https://bitnuvem.com/api/v2/ENDPOINT
/api/v2/ticker/{symbol}
Método para obter informação de melhor oferta de venda e compra atual, último valor negociado, maior valor negociado nas últimas 24 horas, menor valor negociado nas últimas 24 horas, volume total negociado nas últimas 24 horas.
Atributo | Descrição |
---|---|
symbolstring | Símbolo do par que deseja consultar |
Atributo | Descrição |
---|---|
lastfloat | Último valor negociado |
volfloat | Volume total negociado nas últimas 24 horas |
variationfloat | Variação nas últimas 24 horas |
highfloat | Valor mais alto negociado nas últimas 24 horas |
lowfloat | Valor mais baixo negociado nas últimas 24 horas |
buyfloat | Melhor oferta de compra atual |
sellfloat | Melhor oferta de venda atual |
dateint | Data de última atualização do ticker |
/api/v2/orderbook/{symbol}
Método para obter informações das ofertas de compra e venda atuais no livro de oferta. Usamos bids para as ofertas de compra e asks para as ofertas de vendas.
Atributo | Descrição |
---|---|
symbolstring | Símbolo do par que deseja consultar |
Atributo | Descrição |
---|---|
bidsarray | Lista de ofertas de compras |
bids[].[0]array | Valor unitário da oferta |
bids[].[1]array | Quantia total da oferta |
asksarray | Lista de ofertas de compras |
asks[].[0]array | Valor unitário da oferta |
asks[].[1]array | Quantia total da oferta |
/api/v2/trades/{symbol}
Método para obter informações das transações de compra e venda realizadas em um intervalo de datas.
A requisição retorna um array de objetos e tem um limite de 1000 registros.
Atributo | Descrição |
---|---|
symbolstring | Símbolo do par que deseja consultar |
Atributo | Descrição |
---|---|
fromint | Data inicial da pesquisa em formato Unix Timestamp |
toint | Opcional Data final da pesquisa em formato Unix Timestamp |
Atributo | Descrição |
---|---|
dateint | Lista de ofertas de compras |
amountfloat | Lista de ofertas de compras |
pricefloat | Lista de ofertas de compras |
typestring | Lista de ofertas de compras |
tidint | Lista de ofertas de compras |
/api/v2/fee/{currency}
A consulta retornará as opções de envio disponíveis do criptoativo.
Atributo | Descrição |
---|---|
currencystring | Criptoativo que deseja consultar |
Atributo | Descrição |
---|---|
lowfloat | Valor de taxa de envio baixa |
regularfloat | Valor de taxa de envio regular |
priorityfloat | Valor de taxa de envio prioritário |
Para utilizar a este recurso é necessário estar com o cadastro completo e solicitar a criação de uma Chave API na sua conta Bitnuvem.
Quando criar uma nova chave, salve a chave secreta em um local seguro, ela é necessária para realizar as requisições.
Para usar a API de Negociações deve enviar a estrutura padrão de dados para a URL abaixo:
https://bitnuvem.com/api/v2/ENDPOINT
Para qualquer requisição da API de negociação é necessário encaminhar ao endpoint uma estrutura padrão com as informações da sua chave, parâmetros da requisição e assinatura.
No campo request_body sempre vai precisar encaminhar o timestamp atual em segundos junto com os demais parâmetros, se necessário.
Atributo | Descrição |
---|---|
api_keystring | Chave da API disponível no painel do usuário |
request_bodystring | querystring do timestamp atual em segundos + parâmetros da sua requisição |
signaturestring | request_body criptografada em HMAC SHA-256, sendo que a chave é a "Chave secreta" fornecido no momenta da criação da chave |
const crypto = require('crypto');
const axios = require('axios');
const action = 'withdraw';
const api_key = 'SUA_API_KEY_AQUI';
const api_secret = 'SEGREDO_DA_API_KEY_AQUI';
const request_body = {
timestamp: Math.floor(Date.now() / 1000),
value: 120.20,
bank_id: 231
// ... outros parâmetros se necessário
};
const queryString = new URLSearchParams(request_body).toString();
const signature = crypto.createHmac('sha256', api_secret).update(queryString).digest('hex');
const api_post = {
api_key: api_key,
request_body: queryString,
signature: signature
};
axios.post(`https://bitnuvem.com/tapi/v2/${action}`, api_post)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
import time
import hmac
import hashlib
import requests
action = 'withdraw'
api_key = 'SUA_API_KEY_AQUI'
api_secret = 'SEGREDO_DA_API_KEY_AQUI'
request_body = {
'timestamp': int(time.time()),
'value': 120.20,
'bank_id': 231
# ... outros parâmetros se necessário
}
query_string = '&'.join([f"{key}={value}" for key, value in request_body.items()])
signature = hmac.new(api_secret.encode(), query_string.encode(), hashlib.sha256).hexdigest()
api_post = {
'api_key': api_key,
'request_body': query_string,
'signature': signature
}
response = requests.post(f'https://bitnuvem.com/tapi/v2/{action}', data=api_post)
print(response.text)
$action = 'withdraw';
$api_key = 'SUA_API_KEY_AQUI';
$api_secret = 'SEGREDO_DA_API_KEY_AQUI';
$request_body['timestamp'] = time();
$request_body['value'] = 120.20;
$request_body['bank_id'] = 231;
// ... outros parâmetros se necessário
// conversão da variável em formato QueryString ( timestamp=123456789&value=120.20&bank_id=231 )
$request_body = http_build_query($request_body);
$api_post['api_key'] = $api_key;
$api_post['request_body'] = $request_body;
$api_post['signature'] = hash_hmac('sha256', $request_body, $api_secret);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://bitnuvem.com/tapi/v2/'.$action);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $api_post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
/tapi/v2/balance
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Atributo | Descrição |
---|---|
currencystring | Criptoativo que deseja enviar |
Atributo | Descrição |
---|---|
availablefloat | Saldo disponível |
in_usefloat | Valores em uso (ordem em aberto e/ou saque pendente) |
totalfloat | Saldo total em conta |
{
"code": 200,
"data": {
"available": 300,
"in_use": 20,
"total": 320
}
}
/tapi/v2/account_bank_list
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Método para listar as contas bancárias cadastradas na Bitnuvem.
A requisição retorna um array de objetos com as informações bancárias.
Esse método não possui parâmetros.
Atributo | Descrição |
---|---|
idint | Identificador da conta bancária na corretora |
bankstring | Banco que pertence a conta |
agencystring | Agência da conta bancária |
agency_digitstring | Digito da agência da conta bancária (somente para alguns bancos) |
accountstring | Número da conta bancária |
account_digitstring | Digito da conta bancária |
account_typestring | Corrente |
/tapi/v2/withdraw
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Atributo | Descrição |
---|---|
valuefloat | Valor em reais desejado para saque |
bank_idint | Identificador da conta bancária na corretora |
Código de retorno padrão.
/tapi/v2/order_new
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Escolha abaixo a modalidade de ordem para acessar os parâmetros necessários.
Atributo | Descrição |
---|---|
modestring | Para ordens limite, preencher limit |
symbolstring | Símbolo do par que deseja negociar |
typestring | Tipo da ordem: buy para comprar ou sell para vender |
amountfloat | Quantidade que deseja negociar |
pricefloat | Preço unitário que deseja negociar |
price_stopfloat | Opcional Preço unitário para gatilho STOP |
price_ocofloat | Opcional Preço unitário para gatilho OCO |
Atributo | Descrição |
---|---|
modestring | Para ordens a mercado, preencher market |
symbolstring | Símbolo do par que deseja negociar |
typestring | Tipo da ordem: buy para comprar ou sell para vender |
amountfloat | Quantidade que deseja negociar (somente para venda) |
totalfloat | Total em reais que deseja comprar do ativo (somente para compra) |
price_stopfloat | Preço unitário para gatilho STOP |
Atributo | Descrição |
---|---|
modestring | Para ordens escalonada, preencher scale |
symbolstring | Símbolo do par que deseja negociar |
typestring | Tipo da ordem: buy para comprar ou sell para vender |
amountfloat | Quantidade que deseja negociar (somente para venda) |
totalfloat | Preço unitário que deseja negociar (somente para compra) |
type_scalestring | Tipo da distribuição: equal (igualmente), asc (crescente) ou desc (descrescente) |
number_ordersint | Quantidade de ordens que deseja distribuir a negociação |
price_minfloat | Preço mínimo unitário para distribuição nas ordens |
price_maxfloat | Preço máximo unitário para distribuição nas ordens |
Caso a requisição seja bem sucedida, retornará um array no mesmo padrão do método de Consultar ordem. Saiba mais acessando a seção Código de retorno.
/tapi/v2/order_get
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Atributo | Descrição |
---|---|
symbolstring | Símbolo do par que deseja consultar |
idint | Identificar da ordem |
Atributo | Descrição |
---|---|
idint | Identificador da ordem no sistema |
createint | Data da ordem criada em formato Unix Timestamp |
modestring | Modalidade: limit limite ou market para mercado |
typestring | Tipo da operação: buy para compra ou sell para venda |
statusfloat | Situações: active para ordem ativa, completed para concluídas e canceled para canceladas |
amountfloat | Quantidade em negociação |
amount_executedfloat | Quantidade da ordem já negociada |
pricefloat | Preço unitário em negociação |
totalfloat | Total em negociação |
orders_executedarray | Lista com ordens executadas |
orders_executed[].createint | Data da execução da ordem |
orders_executed[].priceint | Preço da ordem executada |
orders_executed[].amountint | Quantidade da ordem executada |
triggerstring | Se possuir gatilho, stop ou oco |
trigger_pricestring | Se possuir gatilho, preço unitário do gatilho |
{
"code": 200,
"data": {
"id": 25994945,
"symbol": "BTCBRL",
"create": 1683573888,
"mode": "market",
"type": "buy",
"status": "completed",
"total": 13.34,
"amount_executed": 0.00009696,
"orders_executed": [
{
"date": 1683573889,
"price": 137684.91,
"amount": 0.00009696,
"fee": 1.2e-7
}
]
}
}
/tapi/v2/order_list
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Método para filtrar todas as ordens de uma situação específica.
A requisição tem um limite de retorno de 1000 registros.
Atributo | Descrição |
---|---|
symbolstring | Símbolo do par que deseja consultar |
statusstring | Situação: active (ativas), completed (concluídas) ou canceled (canceladas) |
Caso a requisição seja bem sucedida, retornará um array no mesmo padrão do método de Consultar ordem. Saiba mais acessando a seção Código de retorno.
/tapi/v2/order_cancel
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Método para cancelar uma ordem específica.
Atributo | Descrição |
---|---|
symbolstring | Símbolo do par que deseja cancelar a ordem |
idint | Identificar da ordem |
Código de retorno padrão.
/tapi/v2/order_cancel/all
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Método para cancelar todas as ordens abertas.
Atributo | Descrição |
---|---|
symbolstring | Símbolo do par que deseja cancelar a ordem |
typestring | Cancelar um tipo espefíco: sell (vendas), buy (compras) ou all (todas) |
Atributo | Descrição |
---|---|
ordersCanceledarray | Lista com ids de ordens canceladas |
/tapi/v2/send
Essa requisição necessita de autenticação. Clique aqui para mais detalhes
Atributo | Descrição |
---|---|
currencystring | Criptoativo que deseja enviar |
addressstring | Endereço para qual deseja realizar o envio |
valuefloat | Quantidade para envio |
fee_typestring | Prioridade do envio |
Consulte a seção Código de retorno.
Para consultar as taxas atuais da rede, consulte a seção Taxas de envio.
Versões API