← todos os erros HTTP 429

Limite de requisições excedido

limite_de_requisicoes

Muitas requisições em pouco tempo com a mesma chave.

O que aconteceu

Cada chave tem um teto de requisições por minuto, definido pelo plano. A resposta traz o cabeçalho Retry-After com quantos segundos esperar.

Por que costuma acontecer

Como resolver

Recuo exponencial simples

for (let tentativa = 0; tentativa < 5; tentativa++) {
  const r = await criar(documento)
  if (r.status !== 429) return r
  const espera = Number(r.headers.get('retry-after') ?? 2) * 1000
  await new Promise((ok) => setTimeout(ok, espera * 2 ** tentativa))
}

Relacionados

Ramifique sempre pelo campo codigo da resposta — ele é estável. Nunca pelo texto da mensagem nem por esta URL.