O cliente está enviando requisições rápido demais.
Quando usar
Limitação de taxa. Inclua um cabeçalho Retry-After.
Causas comuns e soluções
Você atingiu um limite de taxa. Leia o cabeçalho Retry-After, em segundos ou como data HTTP, e quaisquer cabeçalhos RateLimit ou X-RateLimit-Remaining, e então recue com atrasos exponenciais e jitter em vez de tentar de novo imediatamente. Origens comuns: cotas de API por chave ou IP, regras de rate limiting da Cloudflare, limitação de tentativas de login e o limit_req do nginx, que retorna 503 a menos que você defina limit_req_status 429.
Muitos usuários atrás de um mesmo NAT ou proxy corporativo podem estourar juntos um limite por IP. Se você roda o limitador atrás de um load balancer, use como chave o IP real do cliente vindo do X-Forwarded-For, senão todos os usuários compartilham o endereço e a cota do balanceador. Do lado do cliente, agrupe requisições, coloque respostas em cache e adicione um atraso aleatório às tarefas agendadas para que não disparem todas no mesmo segundo.
Erro do cliente (4xx)
Os códigos 4xx são erros do cliente: a própria requisição está errada, não está autorizada ou aponta para algo que não existe. Repetir a mesma requisição não vai adiantar.
Como fica
HTTP/1.1 429 Too Many RequestsComo enviar
| Node.js / Express | res.status(429).end() |
|---|---|
| Python / Flask | return '', 429 |
| nginx | return 429; |
Como verificar
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/