API Key inválida, expirada ou ausente no header.
{
"error": "unauthorized",
"message": "API Key inválida ou ausente."
}
Verifique o header: Authorization: Bearer SUA_API_KEY
Mais de 60 req/min ou 500 req/hora do mesmo IP.
{
"error": "rate_limit_exceeded",
"message": "Muitas requisições por minuto deste IP. Aguarde alguns segundos.",
"retry_after_seconds": 60
}
Aguardar retry_after_seconds antes de tentar novamente.
Plano Free atingiu 100 créditos por dia.
{
"error": "daily_limit_exceeded",
"message": "Limite diário de 100 créditos atingido no plano gratuito. Renova amanhã ou faça upgrade.",
"credits_used": 100,
"credits_limit": 100,
"reset_at": "2026-05-11T00:00:00Z",
"upgrade_url": "https://naluai.dev/precos",
"hint": "Plano Starter: 15.000 créditos/mês sem limite diário. R$ 29/mês."
}
Limite mensal do plano atingido.
{
"error": "credits_exhausted",
"message": "Seus créditos do mês acabaram. Seu plano (Free) permite 3.000 créditos/mês.",
"credits_used": 3000,
"credits_limit": 3000,
"reset_at": "2026-06-01T00:00:00Z",
"upgrade_url": "https://naluai.dev/precos",
"hint": "Upgrade para Starter por apenas R$ 0,0058 por validação."
}
O motor de IA está temporariamente indisponível. O header Retry-After: 30 indica quando tentar.
# Headers na resposta: Retry-After: 30 # Estratégia recomendada: - Tentar novamente após 30 segundos - Máximo 3 tentativas com backoff exponencial - Após 3 falhas: retornar erro para o usuário
HTTP 200 com obtained: false significa que o dado não foi encontrado na resposta do usuário.
Não é um erro — use suggestion_to_agent para perguntar novamente.
{
"obtained": false,
"extracted_value": null,
"certain": false,
"confidence": "low",
"suggestion_to_agent": "Desculpe, não consegui identificar seu CPF. Pode digitar apenas os números? Ex: 111.444.777-35"
}
| Código | Retry? | Como |
|---|---|---|
| 401 | Não | Corrigir API Key |
| 429 rate | Sim | Aguardar retry_after_seconds |
| 429 credits | Não | Fazer upgrade ou aguardar reset mensal |
| 503 | Sim | Backoff: 30s, 60s, 120s |