429 Too Many Requests

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 Requests

Como enviar

Node.js / Expressres.status(429).end()
Python / Flaskreturn '', 429
nginxreturn 429;

Como verificar

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Abrir Códigos de status HTTP