Guia
Limites de uso
Cada chave tem um limite de requisições por minuto (padrão 120, ajustável no painel).
Cabeçalhos de controle
| Cabeçalho | Significado |
|---|---|
X-RateLimit-Limit | Limite por minuto |
X-RateLimit-Remaining | Quantas ainda restam na janela atual |
X-RateLimit-Reset | Quando a janela reinicia (epoch, segundos) |
Retry-After | No 429: segundos a esperar |
Ao estourar, a API responde 429 limite_excedido. Muitas tentativas com chave inválida a partir do mesmo IP também geram 429 temporário.
Tentar de novo após 429
import time, requests
def chamar(url, **kw):
for tentativa in range(5):
r = requests.get(url, timeout=30, **kw)
if r.status_code != 429:
return r
time.sleep(int(r.headers.get("Retry-After", 2 ** tentativa)))
raise RuntimeError("limite excedido")async function chamar(url, opcoes) {
for (let tentativa = 0; tentativa < 5; tentativa++) {
const r = await fetch(url, opcoes);
if (r.status !== 429) return r;
const espera = Number(r.headers.get('Retry-After') || 2 ** tentativa);
await new Promise(ok => setTimeout(ok, espera * 1000));
}
throw new Error('limite excedido');
}