Formato da Resposta de Erro
Todos os erros retornam um formato JSON consistente com dicas Agent-First opcionais:message, type, code, param) estão sempre presentes. Os campos de sugestão (did_you_mean, suggestions, hint, retryable, retry_after, balance_usd, estimated_cost_usd) são extensões opcionais para autocorreção de agentes de IA. Veja o Guia da Agent-First API para mais detalhes.
Endpoints compatíveis com OpenAI usam os tipos de erro estáveis do gateway da LemonData. Endpoints compatíveis com Anthropic e Gemini usam suas próprias famílias nativas de erro e formatos de resposta.
Códigos de Status HTTP
| Código | Descrição |
|---|---|
| 400 | Bad Request - Parâmetros inválidos |
| 401 | Unauthorized - Chave de API inválida ou ausente |
| 402 | Payment Required - Saldo insuficiente |
| 403 | Forbidden - Acesso negado ou modelo não permitido |
| 404 | Not Found - Modelo ou recurso não encontrado |
| 413 | Payload Too Large - Tamanho de entrada ou arquivo excedido |
| 429 | Too Many Requests - Limite de taxa excedido |
| 500 | Internal Server Error |
| 502 | Bad Gateway - Erro do provedor upstream |
| 503 | Service Unavailable - Serviço temporariamente indisponível |
| 504 | Gateway Timeout - Tempo de requisição esgotado |
Tipos de Erro
Erros de Autenticação (401)
| Tipo | Código | Descrição |
|---|---|---|
invalid_api_key | invalid_api_key | A chave de API está ausente ou é inválida |
expired_api_key | expired_api_key | A chave de API foi revogada |
Erros de Pagamento (402)
| Tipo | Código | Descrição |
|---|---|---|
insufficient_balance | insufficient_balance | Saldo da conta insuficiente (endpoints compatíveis com OpenAI) |
insufficient_balance_error | insufficient_balance | Saldo da conta insuficiente (endpoints compatíveis com Anthropic) |
quota_exceeded | quota_exceeded | Limite de uso da chave de API atingido |
Erros de Acesso (403)
| Tipo | Código | Descrição |
|---|---|---|
access_denied | access_denied | Acesso ao recurso negado |
access_denied | model_not_allowed | Modelo não permitido para esta chave de API |
Erros de Validação (400)
| Tipo | Descrição |
|---|---|
invalid_request_error | Parâmetros da requisição inválidos |
context_length_exceeded | Entrada longa demais para o modelo |
model_not_found | O modelo solicitado não está disponível no contrato público atual |
model_not_found.
Erros de Limite de Taxa (429)
Quando você excede os limites de taxa:Retry-After e o campo retry_after indicam ambos os segundos exatos para aguardar antes de tentar novamente.
Payload Muito Grande (413)
Quando o tamanho da entrada ou do arquivo excede os limites:- Arquivo de imagem muito grande (máx. 20MB)
- Arquivo de áudio muito grande (máx. 25MB)
- Texto de entrada que excede o comprimento de contexto do modelo
Erros Upstream (502, 503)
| Tipo | Descrição |
|---|---|
upstream_error | O provedor retornou um erro |
all_channels_failed | Nenhum provedor disponível |
timeout_error | Requisição excedeu o tempo limite |
Tratamento de Erros em Python
Tratamento de Erros em JavaScript
Melhores práticas
Implemente backoff exponencial
Implemente backoff exponencial
Quando estiver rate limited, espere períodos progressivamente maiores entre tentativas:
Defina timeouts
Defina timeouts
Sempre defina timeouts razoáveis para evitar requisições travadas:
Registre erros para depuração
Registre erros para depuração
Registre a resposta completa de erro, incluindo o ID da requisição, para suporte:
Trate erros específicos do modelo
Trate erros específicos do modelo
Alguns modelos têm requisitos específicos (por exemplo, tokens máximos, formatos de imagem).
Valide as entradas antes de fazer as requisições.