Pular para o conteúdo
LinkProfit

Limites de requisições

Limites por chave de API em janela deslizante, os cabeçalhos X-RateLimit e uma estratégia correta de novas tentativas.

Atualizado em 13 de agosto de 2026

Os limites são contados por chave em uma janela deslizante de um minuto. Padrões: 600 requisições por minuto para chaves de espaço de trabalho e 1.200 para chaves de parceiro; seu plano pode definir outros valores, e o limite real está sempre nos cabeçalhos da resposta.

Cabeçalhos

Toda resposta carrega o estado atual:

X-RateLimit-Limit: 600
X-RateLimit-Remaining: 273
X-RateLimit-Reset: 1755081600
  • X-RateLimit-Limit — a capacidade da janela desta chave.
  • X-RateLimit-Remaining — requisições restantes na janela atual.
  • X-RateLimit-Reset — horário Unix (em segundos) em que a janela se libera.

Acima do limite, a API responde 429 com Retry-After:

{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded, retry later",
    "doc_url": "https://linkprofit.com/docs/api/errors"
  }
}
Retry-After: 12

A janela desliza

O contador não é zerado na virada do minuto: um pico às 10:00:55 ainda conta na janela às 10:01:05. Planeje um ritmo constante em vez de picos alinhados ao minuto.

As requisições rejeitadas também contam — um laço apertado de novas tentativas em cima de um 429 só mantém a chave bloqueada.

Uma nova tentativa que se comporta

async function withRateLimit(request) {
  for (let attempt = 0; attempt < 5; attempt += 1) {
    const response = await request();
    if (response.status !== 429) return response;

    const wait = Number(response.headers.get("retry-after") ?? "1");
    await new Promise((resolve) => setTimeout(resolve, wait * 1000 + attempt * 250));
  }
  throw new Error("Rate limit retries exhausted");
}

Respeite o Retry-After em vez de adivinhar, acrescente jitter para que processos paralelos não tentem de novo em sincronia, e limite o número de tentativas.

Como ficar abaixo do limite

  • Acompanhe o X-RateLimit-Remaining e reduza o ritmo antes de chegar a zero.
  • Use POST /links/bulk — uma requisição cria até 100 links.
  • Prefira webhooks ao polling: os eventos chegam até você em segundos e não custam requisição nenhuma.