Pular para o conteúdo

API v1 · Guia

Limites de requisição

Quantos pedidos por minuto cada token e cada empresa podem fazer, e como tratar o 429.

Cada token pode fazer até 120 pedidos por minuto e a empresa inteira, somando todos os tokens, até 600 por minuto. A janela é deslizante: vale a soma dos últimos 60 segundos, sem virada de minuto. Os limites são iguais em todos os planos.

Toda resposta de um pedido autenticado informa a situação do limite mais apertado no momento (o do token ou o da empresa):

CabeçalhoSignificado
RateLimit-LimitPedidos permitidos por minuto nesse limite.
RateLimit-RemainingQuantos ainda cabem agora.
RateLimit-ResetSegundos até abrir a próxima vaga.

Os mesmos valores saem também em X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset. Ao passar do limite a resposta é 429 com code: rate_limited e o cabeçalho Retry-After: espere esse número de segundos antes de repetir o pedido.

Como tratar o 429

Espere o Retry-After e repita. Antes disso, o pedido só recebe outro 429.

Node.js
async function pedir(url, opcoes, tentativas = 5) {
  for (let tentativa = 1; ; tentativa++) {
    const resposta = await fetch(url, opcoes);
    if (resposta.status !== 429 || tentativa === tentativas) return resposta;
    const segundos = Number(resposta.headers.get("Retry-After")) || 1;
    await new Promise((pronto) => setTimeout(pronto, segundos * 1000));
  }
}

Gastar menos pedidos

  • Sincronize com updatedSince e limit=100 em vez de baixar tudo de novo (paginação).
  • Para reagir a mudanças, receba webhooks em vez de perguntar a cada minuto.
  • Acompanhe RateLimit-Remaining e desacelere antes de chegar a zero.
  • Todos os tokens da empresa somam no limite da empresa: um robô mal comportado atrasa os outros.
PróximoWebhooks