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çalho | Significado |
|---|---|
RateLimit-Limit | Pedidos permitidos por minuto nesse limite. |
RateLimit-Remaining | Quantos ainda cabem agora. |
RateLimit-Reset | Segundos 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.
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
updatedSinceelimit=100em vez de baixar tudo de novo (paginação). - Para reagir a mudanças, receba webhooks em vez de perguntar a cada minuto.
- Acompanhe
RateLimit-Remaininge desacelere antes de chegar a zero. - Todos os tokens da empresa somam no limite da empresa: um robô mal comportado atrasa os outros.