Referência da API
Limites de taxa e novas tentativas
#Como funcionam os limites
Limites de RPM e RPD por chave. Em um 429, o gateway envia Retry-After; os limites do upstream são protegidos por circuit breakers, para que um canal ruim não sobrecarregue toda a frota.
Os limites são por chave, então separar projetos em chaves diferentes isola as limitações de cada um. Os limites de cada chave são editados em Console → Chaves de API.
#Como repetir corretamente
Respeite o Retry-After quando presente; caso contrário, use backoff exponencial com jitter. Limite o total de tentativas — é melhor informar a quem chamou que um modelo está fora do ar do que tentar para sempre.
backoff.py
import time, requests
def call_with_backoff(url, headers, body, tries=5):
for i in range(tries):
r = requests.post(url, headers=headers, json=body)
if r.status_code != 429:
return r
# Respect Retry-After (seconds); fall back to 2**i backoff.
wait = int(r.headers.get("Retry-After", 2 ** i))
time.sleep(wait)
r.raise_for_status()Ainda com problemas?
Envie para nós o ID da requisição ou a mensagem de erro e vamos investigar.