Skip to main content
Rotas sob /v1/* retornam erros em JSON padronizado.

Envelope de erro (API pública)

Status HTTP frequentes

Códigos de domínio

Erros em jobs failed

Quando um job falha, GET /jobs/{jobId} retorna status: "failed" com:
O error.message em jobs falhos pode repetir o código — prefira error.code para lógica.

Validação de body

Campos inválidos retornam 422 com validation_error. Exemplos:
  • url ausente em POST /media/resolve
  • url e media_id ausentes em POST /media/download
  • format ausente no download
  • url com mais de 2048 caracteres

Rate limiting global (IP)

Além dos limites por API key, a infraestrutura aplica limites por IP antes do router /v1:
  • 100 req/min por IP
  • 30 req/5s por IP (burst)
Esses retornam um formato diferente (error.api.rate_limited) sem request_id. Em integrações normais server-to-server, o limite por chave é o relevante.

Boas práticas

  • Registre sempre request_id nos logs do seu servidor ao tratar erros 5xx
  • Não interprete message como API estável — prefira error.code
  • Em polling de jobs, trate 404 como job expirado ou inexistente
  • unsupported_platform e invalid_url não devem ser retentados
Veja também: Tratamento de erros na prática · Rate limiting