429, com um code diferente, para você saber o que ajustar.
Taxa de requisições
O limite de taxa é por conta e vale para todas as chaves dela somadas. Trocar de chave não aumenta o teto. As operações são contadas em duas classes separadas, cada uma com seu próprio orçamento:
O orçamento funciona como um balde: ele acumula folga quando você fica abaixo do ritmo, o que permite picos curtos, e se recompõe continuamente. Estourar a taxa de leitura não afeta o seu orçamento de criação de validações.
Para conhecer o teto da sua conta ou pedir um aumento, fale com o suporte.
Requisições simultâneas
Independente da taxa, há um teto de requisições em voo ao mesmo tempo por conta. Uma integração que dispara centenas de validações em paralelo pode bater nele mesmo respeitando a taxa. A saída é limitar a concorrência do seu lado, com uma fila ou um pool.Falhas de autenticação
Requisições que terminam em401 são contadas por IP de origem. Depois de várias seguidas, o IP recebe 429 com auth_failure_limit_exceeded por um tempo.
Só o que falha conta. Tráfego com chave válida nunca entra nessa contagem, então volume legítimo vindo de um IP compartilhado não é penalizado.
Cabeçalhos da resposta
Os cabeçalhos aparecem na resposta429, não nas bem-sucedidas.
Os três cabeçalhos
RateLimit-* só vêm no 429 de taxa. O 429 de concorrência e o de falhas de autenticação trazem apenas Retry-After, porque nenhum dos dois descreve um orçamento por janela.
Como tratar um 429
- Leia
Retry-Aftere espere esse tempo. É a única fonte confiável, em qualquer um dos três casos. - Repita com espera exponencial e um pouco de aleatoriedade, para não sincronizar todas as retentativas no mesmo instante.
- Se for um
POSTde validação, reenvie com o mesmoIdempotency-Key. Uma requisição barrada no429nunca foi cobrada, e a chave garante que uma eventual retentativa duplicada também não seja.
Saldo insuficiente responde
402 com insufficient_balance, não 429. Repetir não resolve: recarregue a conta no painel.