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çalhoRetry-After com o número de segundos de
espera:
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:
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 invoicesexige outra ação, não uma espera maior.