Formato de Resposta de Erro
Todos os erros retornam um formato JSON consistente: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 - Todos os canais falharam |
| 504 | Gateway Timeout - A requisição expirou |
Tipos de Erro
Erros de Autenticação (401)
| Tipo | Código | Descrição |
|---|---|---|
invalid_api_key | invalid_api_key | Chave de API ausente ou inválida |
expired_api_key | expired_api_key | Chave de API foi revogada |
Erros de Pagamento (402)
| Tipo | Código | Descrição |
|---|---|---|
insufficient_quota | insufficient_quota | Saldo da conta está muito baixo |
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 são inválidos |
context_length_exceeded | Entrada muito longa para o modelo |
model_not_found | O modelo solicitado não existe |
Erros de Limite de Taxa (429)
Quando você excede os limites de taxa: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 excede o comprimento de contexto do modelo
Erros de Upstream (502, 503)
| Tipo | Descrição |
|---|---|
upstream_error | O provedor retornou um erro |
all_channels_failed | Nenhum provedor disponível |
timeout_error | A requisição expirou |
Tratamento de Erros em Python
Tratamento de Erros em JavaScript
Melhores Práticas
Implemente exponential backoff
Implemente exponential backoff
Quando houver limite de taxa, aguarde progressivamente mais tempo entre as tentativas:
Defina timeouts
Defina timeouts
Sempre defina timeouts razoáveis para evitar requisições travadas:
Registre logs de erros para depuração
Registre logs de erros para depuração
Registre a resposta de erro completa, incluindo o ID da requisição para suporte:
Trate erros específicos do modelo
Trate erros específicos do modelo
Alguns modelos possuem requisitos específicos (ex: tokens máximos, formatos de imagem).
Valide as entradas antes de fazer as requisições.