429 Too Many Requests. Sua integração deve tratar isso de forma adequada.
Visão geral dos limites
Os limites de requisição são aplicados por access token (ou seja, por sessão de usuário autenticado). Endpoints não autenticados (login, cadastro, OTP) têm limites mais rígidos para prevenir abuso.| Categoria de endpoint | Limite | Janela |
|---|---|---|
| Autenticação (login, cadastro, OTP) | 10 requests | por minuto |
| Operações de leitura (GET) | 120 requests | por minuto |
| Operações de escrita (POST, PUT, PATCH, DELETE) | 60 requests | por minuto |
| Operações de pagamento (pagar fatura, criar assinatura) | 10 requests | por minuto |
Headers de rate limit
Toda response da API inclui headers que informam o status atual do seu rate limit:| Header | Descrição | Exemplo |
|---|---|---|
X-RateLimit-Limit | Máximo de requests permitidas na janela atual | 120 |
X-RateLimit-Remaining | Requests restantes na janela atual | 87 |
X-RateLimit-Reset | Timestamp Unix (segundos) de quando a janela reseta | 1711382460 |
Retry-After | Segundos para aguardar antes de retentar (apenas em responses 429) | 12 |
Tratando responses 429
Quando o rate limit é atingido, a API retorna:Retry-After indicando quantos segundos aguardar.
Backoff exponencial com jitter
Para uma lógica de retry robusta, combine o headerRetry-After com backoff exponencial e jitter aleatório para evitar problemas de thundering herd.
Ler o header Retry-After
Use o valor do
Retry-After como tempo mínimo de espera. Se o header estiver ausente, use 1 segundo como padrão.Aplicar backoff exponencial
A cada retry consecutivo, dobre o tempo de espera: 1s, 2s, 4s, 8s, etc. Limite o máximo (ex: 30 segundos).
Adicionar jitter aleatório
Adicione um atraso aleatório (ex: 0-500ms) para evitar que múltiplos clientes retentem no exato mesmo momento.
Gerenciamento proativo de rate limit
Em vez de esperar por erros429, monitore os headers e faça throttling antes de atingir o limite.
Reduzindo chamadas à API
Cache de responses localmente. Planos, permissões e roles mudam com pouca frequência. Faça cache por minutos ou horas em vez de buscar a cada carregamento de página. Use tamanhos de página maiores. Ao paginar, solicite olimit máximo para reduzir o número de round trips. Uma request com limit=50 é melhor que cinco requests com limit=10.
Agrupe atualizações na UI. Se seu frontend dispara chamadas à API baseadas em input do usuário (ex: busca enquanto digita), faça debounce das chamadas para evitar enviar uma request a cada tecla pressionada.
Use webhooks para atualizações em tempo real. Em vez de fazer polling para mudanças de status de fatura, configure webhooks para receber notificações push quando eventos ocorrerem.
Limites por plano
Os limites de requisição podem variar por plano de assinatura. Entre em contato com seu gerente de conta para detalhes sobre limites maiores para casos de uso enterprise.| Plano | Limite de leitura | Limite de escrita |
|---|---|---|
| Starter | 120/min | 60/min |
| Professional | 300/min | 120/min |
| Enterprise | Personalizado | Personalizado |
Se você precisa consistentemente de limites maiores, entre em contato com seu gerente de conta da AWSales. Planos Enterprise suportam limites personalizados e throughput dedicado.
Próximos passos
Tratamento de Erros
Construa tratamento de erros robusto com estratégias de retry.
Paginação
Navegue por grandes conjuntos de dados de forma eficiente para minimizar chamadas à API.