Limites de requisição
Como a Sellit trata volume de requisições, o que fazer ao receber 429 e boas práticas para uma integração saudável.
Política de uso
A API da Sellit opera sob uso justo (fair use): o volume normal de uma integração de ERP ou marketplace cabe folgado nos limites. Rajadas muito acima do padrão podem ser desaceleradas para proteger a estabilidade da plataforma e das demais lojas.
- Os limites são avaliados por loja (token/credencial) e por origem.
- Para sincronizações grandes, prefira lotes (ex.:
PATCH /variantscom várias combinações) a muitas chamadas unitárias. - Espace as chamadas em vez de dispará-las todas de uma vez; distribua no tempo quando possível.
Precisa de um volume acima do comum (migração, catálogo enorme, sincronização frequente)? Fale com o suporte para alinharmos a janela ideal antes de escalar.
Resposta 429 (Too Many Requests)
Se você exceder o ritmo tolerado, a API responde 429. Quando houver um tempo de espera sugerido, ele vem no header Retry-After (em segundos). Trate o 429 como transitório: espere e tente de novo.
HTTP
HTTP/1.1 429 Too Many Requests
Retry-After: 5
{ "error": "Muitas requisições. Aguarde e tente novamente." }Backoff exponencial (recomendado)
Respeite o Retry-After quando presente; caso contrário, use backoff exponencial com um teto de tentativas. O mesmo vale para erros 5xx.
javascript
async function callWithRetry(fn, { maxRetries = 5 } = {}) {
let attempt = 0
while (true) {
const res = await fn()
if (res.status !== 429 && res.status < 500) return res
if (attempt >= maxRetries) return res
const retryAfter = Number(res.headers.get("retry-after"))
const waitMs = Number.isFinite(retryAfter) && retryAfter > 0
? retryAfter * 1000
: Math.min(30000, 2 ** attempt * 1000) // 1s, 2s, 4s, 8s...
await new Promise((r) => setTimeout(r, waitMs))
attempt++
}
}Boas práticas
- Sincronize deltas, não a base inteira: para pedidos use
dateType=updatedcomfrom/to(veja Recursos). - Prefira webhooks a polling sempre que possível.
- Envie um
User-Agentidentificando seu sistema e versão (ex.:MeuERP/1.0) — ajuda no diagnóstico se algo desacelerar.