Limites de requisições
Limite por chave, headers de controle e boas práticas.
Limite por chave
Seção intitulada “Limite por chave”Cada chave pode fazer 120 requisições em qualquer intervalo de 60 segundos, somando todos os endpoints. Cada requisição conta por 60 segundos a partir do momento em que foi feita, inclusive as recusadas com 429: insistir durante o bloqueio prolonga o bloqueio.
As respostas de sucesso trazem os headers:
| Header | Significado |
|---|---|
X-RateLimit-Limit | Limite da janela (120) |
X-RateLimit-Remaining | Requisições que ainda cabem na janela |
X-RateLimit-Reset | Segundos até a requisição mais antiga da janela deixar de contar |
Acima do limite a API responde 429 com o header Retry-After (segundos):
{ "statusCode": 429, "error": "Too Many Requests", "code": "RATE_LIMIT_EXCEEDED", "message": "Limite de 120 requisições por minuto por chave atingido. Aguarde o tempo do header Retry-After."}Tentativas com chave inválida
Seção intitulada “Tentativas com chave inválida”Cada IP pode tentar até 30 chaves inexistentes diferentes em 60 segundos (repetir a mesma chave inválida conta uma vez por minuto). Acima disso, novas chaves vindas desse IP recebem 429 com code: TOO_MANY_AUTH_FAILURES até o minuto terminar. Uma chave válida usada no último minuto continua respondendo; uma chave válida que não era usada há mais de um minuto também recebe 429 enquanto o IP estiver bloqueado.
Tempo máximo por requisição
Seção intitulada “Tempo máximo por requisição”Uma requisição que passar de 30 segundos é interrompida com 408 e code: REQUEST_TIMEOUT. Reduza o período ou use filtros.
Boas práticas
Seção intitulada “Boas práticas”- Atualize painéis por agendamento (a cada 15, 30 ou 60 minutos), não em loop.
- Pagine com lotes grandes em
/reports/tickets/detailed(limit=200) em vez de muitas páginas pequenas. - Respeite o
Retry-Afterao receber429, e aumente o intervalo a cada nova tentativa.