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.

JanelaLimite
Por minuto120 requisições
Por hora3.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=100 lê 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.

Nesta página