Limites de volume
Quanto você pode pedir, como é um 429, e como esperar.
O limite é por organização, não por chave: criar uma segunda chave não compra um segundo orçamento. É de propósito — o orçamento é da conta, e dividi-lo por credencial faria a carga do nosso lado depender de quantas chaves alguém criou.
| Janela | Limite |
|---|---|
| Por minuto | 120 requisições |
| Por hora | 3.000 requisições |
As duas são avaliadas, e a que se esgotar primeiro é a que te trava. Há ainda um teto por IP deliberadamente folgado, alto o bastante para só pegar uma única máquina nos inundando: um parceiro que integra muitas organizações a partir de um servidor não chega lá.
Como é um 429
HTTP/1.1 429 Too Many Requests
Retry-After: 24{ "error": { "code": "API_KEY_RATE_LIMITED", "message": "Rate limit exceeded for this API key." } }Retry-After vem em segundos e é o número real: esperar isso basta. Leia-o em vez de chutar um backoff — um sleep fixo é lento demais ou insuficiente.
async function chamar(url, init) {
for (let tentativa = 0; tentativa < 5; tentativa++) {
const res = await fetch(url, init);
if (res.status !== 429) return res;
const espera = Number(res.headers.get("Retry-After") ?? 5);
await new Promise((r) => setTimeout(r, espera * 1000));
}
throw new Error("Ainda limitado após 5 tentativas");
}Como ficar abaixo dele
- Peça páginas maiores.
limit=100lê quatro vezes mais por requisição que o padrão de 25 — ver Paginação. - Consulte numa frequência, não num loop. Ainda não há webhooks, então consultar é o padrão; o erro é consultar tão rápido quanto o código roda em vez de tão rápido quanto os dados mudam.
- Trate o 429 em vez de fugir dele. Uma retentativa que lê o
Retry-Afteré mais robusta que uma frequência que você calibrou uma vez e nunca mais olhou.
Se a sua integração realmente precisa de mais que isso, escreva para support@trama.so e conte o formato do tráfego. Esses números são um teto inicial calibrado sobre uso real, não um limite comercial: não há nada para comprar.