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.