Codigos de erro

Referencia completa de erros HTTP, codigos especificos e como resolver cada um.

Toda resposta de erro segue o formato:

{
  "error": "Mensagem em portugues",
  "code": "MACHINE_READABLE_CODE",
  "details": { "field": "info opcional" }
}

Codigos HTTP

Status Significado Causas comuns
400 Bad Request Body invalido, parametros faltando, JSON malformado
401 Unauthorized API key ausente ou invalida
403 Forbidden Sem permissao pra esse endpoint, conta nao verificada
404 Not Found Recurso nao existe (sessionId, templateId, etc)
409 Conflict Estado invalido (ex: sessao ja completada)
413 Payload Too Large Arquivo > 500MB
422 Unprocessable Entity Validacao de schema falhou
429 Too Many Requests Rate limit excedido
500 Internal Server Error Bug ou outage — abre ticket
503 Service Unavailable Manutencao programada

Codigos especificos

Autenticacao

Code Mensagem Solucao
API_KEY_MISSING API key nao fornecida Adicione header X-API-Key
API_KEY_INVALID API key invalida Confira no painel se nao foi revogada
API_KEY_EXPIRED API key expirou Crie nova chave
PERMISSION_DENIED Sem permissao pra este endpoint Adicione permissao no painel
B2B_NOT_VERIFIED Conta B2B nao verificada Aguarde aprovacao (ate 48h)

Recursos

Code Mensagem Solucao
SESSION_NOT_FOUND Sessao nao existe ou expirou Crie nova sessao (sem sessionId)
SESSION_EXPIRED Sessao expirou (2h inativa) Crie nova com mesmo prompt
TEMPLATE_NOT_FOUND Template nao existe Confira o ID no painel
TEMPLATE_VARS_MISSING Variaveis obrigatorias nao fornecidas Passe templateVars com todas as vars
END_USER_NOT_FOUND endUserId nao registrado Crie via POST /end-users primeiro

Limites

Code Mensagem Solucao
PLAN_LIMIT_EXCEEDED Limite do plano atingido Faca upgrade ou aguarde reset mensal
NO_CREDITS Sem creditos Compre creditos avulsos ou faca upgrade
STORAGE_LIMIT_EXCEEDED Limite de storage atingido Delete arquivos antigos ou faca upgrade
FILE_TOO_LARGE Arquivo excede 500MB Reduza ou divida o arquivo
RATE_LIMIT_EXCEEDED Muitos requests Aguarde Retry-After segundos

Processamento

Code Mensagem Solucao
PROCESSING_FAILED IA falhou ao processar Tente de novo ou reformule prompt
UNSUPPORTED_FILE_TYPE Tipo de arquivo nao suportado Confira lista de formatos aceitos
PROMPT_TOO_LONG Prompt excede limite de tokens Reduza tamanho ou use template

Rate Limiting

Headers de resposta

Toda resposta tem headers indicando seu limite:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 847
X-RateLimit-Reset: 1714320000

Quando excede (429)

{
  "error": "Rate limit excedido. Tente novamente em 45 segundos.",
  "code": "RATE_LIMIT_EXCEEDED",
  "details": {
    "limit": 1000,
    "window": "1m",
    "retryAfter": 45
  }
}

Header Retry-After indica quantos segundos aguardar.

Limites por plano

Plano Requests/min Tokens/dia Storage
Trial 60 50k 500MB
Starter 300 500k 5GB
Pro 1000 5M 50GB
Business 5000 50M 500GB
Enterprise Ilimitado Negociavel Negociavel

Boas praticas

Retry com backoff exponencial

Pra erros 429, 500, 502, 503, 504 — implemente retry:

async function callWithRetry(url: string, opts: RequestInit, maxAttempts = 5) {
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
    const res = await fetch(url, opts);

    if (res.ok) return res;
    if (![429, 500, 502, 503, 504].includes(res.status)) return res;

    const retryAfter = parseInt(res.headers.get('Retry-After') || '0', 10);
    const wait = retryAfter > 0 ? retryAfter * 1000 : Math.min(2 ** attempt * 1000, 30000);
    await new Promise(r => setTimeout(r, wait));
  }
  throw new Error('Max retries excedidos');
}

Logue code em vez da mensagem

Mensagens em portugues podem mudar; code e estavel:

if (response.code === 'NO_CREDITS') {
  // Mostra modal de upgrade
}

Nao retry de 4xx

Erros 400, 401, 403, 404, 422 sao do seu lado — retry nao resolve. So 429/5xx valem retry.

Reportar bugs

Se encontrar um 500 que parece bug, abra ticket em:

Anexe:

  • Endpoint chamado
  • Request body (sem dados sensiveis)
  • Status + response body
  • Timestamp UTC

Quer integrar com ajuda da IA?

Copia esta pagina como .md e cola no ChatGPT/Claude — ela vai te guiar na integracao