Saltar para o conteúdo principal

Limites de Taxa

Dois limites se aplicam a cada requisição: um limite no nível da conta, que cobre quase todos os endpoints, e, em alguns deles, um limite próprio mais restrito. Você atingirá aquele que for menor.

Limite no nível da conta

Contado por conta, em uma janela fixa de um minuto. Todas as chaves de API de uma mesma conta compartilham um único orçamento — criar mais chaves não aumenta o seu limite. Os orçamentos sem autenticação são contados separadamente para cada grupo de endpoints — preços, status de fatura, consultas de endereço, autenticação e todo o restante —, de modo que consultar preços nunca consome o orçamento das demais chamadas. Estes são os valores padrão. Se a sua integração precisa de um teto maior, nós o elevamos para a sua conta: fale conosco no Telegram.
A janela é fixa, não deslizante: o contador zera no início de cada minuto. Não construa uma rajada em torno dessa fronteira. Dois mecanismos independentes tornam isso uma má aposta. Um limite de borda de cerca de 50 requisições por segundo por endereço IP fica à frente da API e responde 503 com corpo HTML, não um erro JSON. E uma conta que permanece acima do seu limite por três minutos seguidos tem o limite reduzido à metade pelos dez minutos seguintes; mais três minutos assim a bloqueiam por completo por trinta, com Retry-After: 1800. Contas no nível de 1000/minuto estão isentas dessa escalada.

Endpoints com um limite próprio mais restrito

Observe que POST /api/v1/invoices é contado por endereço IP, não por conta: se vários dos seus clientes enviam requisições a partir do mesmo IP de saída, eles compartilham um único orçamento de 10 por minuto. Os endpoints de compra — POST /api/v1/energy/buy, POST /api/v1/energy/activate, POST /api/v1/bandwidth/buy e POST /api/v1/bandwidth/rentals — carregam um orçamento mais antigo de 1000 requisições por minuto contado por endereço IP (os dois endpoints de bandwidth compartilham um único orçamento). Para uma única conta ele nunca é o limite determinante, mas clientes atrás de um mesmo IP de saída o compartilham entre si. Os endpoints de gerenciamento de webhook (/api/v1/webhooks/...) não são cobertos pelo limite no nível da conta. Todos os demais endpoints documentados não têm limite próprio — apenas o limite no nível da conta se aplica a eles.

Como é uma resposta 429

O corpo depende de qual limite você atingiu. Existem três formatos, portanto faça a análise de forma defensiva, em vez de presumir um deles. Limite no nível da conta. A resposta traz um cabeçalho Retry-After com o número de segundos de espera:
Limite do endpoint, por exemplo em POST /api/v1/invoices. Não há cabeçalho Retry-After; a janela é de um minuto:
POST /api/v1/account/withdrawal. Um detail em texto simples com os segundos restantes, sem código de erro:

Um 429 que repetir não resolve

POST /api/v1/invoices também responde 429 quando você já tem faturas não pagas demais — no máximo 3 por endereço IP e no máximo 5 por conta. O limite por IP vale também para requisições autenticadas, por isso normalmente é nele que você esbarra primeiro:
Isto é um teto de faturas em aberto, não um limite de taxa, e esperar não o libera por si só. Pague uma das faturas pendentes, ou deixe-a expirar, antes de criar outra. O mesmo endpoint também relata falhas transitórias não relacionadas como 429 — por exemplo {"detail":"Energy price unavailable"}. Leia a mensagem antes de decidir como reagir.

Novas tentativas

  • Se a resposta trouxer o cabeçalho Retry-After, aguarde exatamente esse número de segundos.
  • Caso contrário, use recuo exponencial, começando em um segundo.
  • Nunca repita imediatamente.
  • Leia o corpo antes de repetir: Too many pending invoices exige outra ação, não uma espera maior.

Precisa de limites maiores?

Fale conosco pelo Telegram para limites de taxa personalizados em integrações de alto volume.