docs
Ajuda

Erros e limites

Markdown

Códigos de resposta, o seu significado e o que fazer. Todos os erros são apresentados em JSON e incluem o Request ID.

Guia completo

Formato do erro

O erro chega no formato da API que chamou: objeto error para OpenAI, {"type": "error", "error": {...}} para Anthropic e error com os campos status e details para Gemini. Por isso, os SDK reconhecem-nos como erros normais da API.

  • error.code e error.reason — classe do erro da tabela abaixo; os dois coincidem. error.type — valor padrão do formato (por exemplo, invalid_request_error ou server_error).
  • error.request_id (em Anthropic — request_id no nível superior), o cabeçalho X-Request-ID e o fim do texto da mensagem — identificador do pedido.
  • Em Gemini, a classe está em error.details: ErrorInfo.reason — o mesmo código em maiúsculas (por exemplo, MODEL_OVERLOADED), domain — ailoot.ai; o identificador do pedido está em RequestInfo.requestId.
  • No formato Gemini, um erro 5xx que não deve ser repetido automaticamente e result_pending_check chegam com o estado 409 e status ABORTED: assim, o Gemini SDK e o CLI não os repetem automaticamente. A classe do erro está em ErrorInfo.reason (por exemplo, MODEL_TIMEOUT ou RESULT_PENDING_CHECK).
  • A resposta no formato OpenAI também inclui campos de nível superior code e message — para clientes antigos.
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Códigos de erro

HTTPClasse (reason)O que aconteceuO que fazer
400invalid_requestPedido inválido: corpo ou parâmetro incorreto; o modelo não suporta um campo, anexo ou ferramenta do pedido; a chave foi transmitida no endereço Corrija o pedido de acordo com o texto do erro: remova o campo, anexo ou ferramenta não suportado; envie a chave num cabeçalho. A rejeição por um campo, anexo ou ferramenta não suportado ocorre antes da reserva — não há qualquer débito
400context_length_exceededO pedido excede o contexto do modeloReduza o histórico ou escolha um modelo com contexto maior
400content_policy_violationO pedido foi rejeitado pelas regras do modeloReformule o pedido
401invalid_api_keyA chave está em falta ou é inválidaVerifique se a chave foi transmitida na íntegra
401api_key_disabledA chave está desativadaAtive a chave ou crie uma nova
402insufficient_balance, insufficient_quotaO saldo disponível não chega sequer para a reserva mínima (insufficient_quota — o mesmo caso apresentado na forma habitual do OpenAI SDK)Carregue o saldo ou reduza max_tokens
402api_key_quota_exhaustedO limite total de despesas da chave está esgotadoAumente o limite da chave na área pessoal
402payment_disputedA conta tem uma dívida por um pagamento contestadoOs novos pedidos estão suspensos até à liquidação da dívida — contacte o suporte
403api_key_expiredA chave expirouCrie uma nova chave
403account_inactiveA sua conta está desativadaContacte o suporte
403permission_deniedA chave não tem permissão para este pedido (por exemplo, devido ao IP)Verifique as restrições da chave
404model_not_foundO modelo não existeCompare o ID com /v1/models
404unsupported_endpointO modelo não funciona neste formatoEscolha outro formato ou modelo
404not_foundO caminho ou objeto não existe (por exemplo, uma tarefa)Verifique o endereço e o identificador
409duplicate_requestUma operação com a mesma chave de idempotência já foi aceite e pode estar concluídaVerifique o resultado da primeira operação; não envie uma nova
409not_ready, video_not_readyO vídeo ou outra tarefa ainda não está concluídoConsulte o estado mais tarde
409, 503result_pending_checkEstamos a verificar o resultado do pedido. Numa tarefa de vídeo, é a indicação result_pending_check: true na resposta de estado; a tarefa permanece em in_progressNão repita o pedido — o estado aparecerá no histórico (GET https://ailoot.ai/api/v1/usage). Não volte a criar a tarefa de vídeo: consulte-a mais tarde através de GET /v1/videos/{id}
410model_retiredO modelo foi retirado de serviçoEscolha uma nova versão em GET /v1/models
413request_too_largeO corpo do pedido é demasiado grandeReduza os ficheiros ou o histórico
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_fullDemasiados pedidos ou pedidos simultâneos da sua contaAguarde (cabeçalho Retry-After, normalmente 10 s) e tente novamente
429usage_limit_reachedA janela de despesas da chave está esgotada (5 horas, 1 dia ou 7 dias)Aguarde a renovação da janela ou aumente o limite da chave
500internal_errorErro do AilootContacte o suporte com o Request ID
502invalid_model_response, empty_response, incomplete_responseO modelo devolveu uma resposta inválida, vazia ou incompletaProcure o Request ID no histórico da área pessoal. Se existir um resultado ou débito, a repetição criará um segundo pedido pago. A ausência de um registo não confirma que o pedido não tenha sido enviado ou executado: não repita um envio não confirmado; contacte o suporte com o Request ID.
502result_not_deliveredO resultado não foi entregue por responsabilidade do Ailoot; a reserva ou o débito foi devolvidoPode voltar a enviar o pedido
503model_overloadedO modelo está temporariamente sobrecarregadoSe X-Should-Retry: true — tente novamente após o número de segundos de Retry-After; se false — consulte primeiro o Request ID no histórico
503model_unavailableO modelo está temporariamente indisponívelEscolha outro modelo. Se X-Should-Retry: true — tente novamente após o número de segundos de Retry-After; se false — consulte primeiro o Request ID no histórico
503service_unavailableFalha temporária do AilootSe X-Should-Retry: true — tente novamente após o número de segundos de Retry-After; se false — consulte primeiro o Request ID no histórico
503charge_not_confirmedA resposta não foi entregue: não foi possível confirmar o débito; a reserva foi devolvida e não foi debitado dinheiroSe X-Should-Retry: true — tente novamente após o número de segundos de Retry-After; se false — consulte primeiro o Request ID no histórico
504model_timeoutO modelo não respondeu a tempo; o resultado ainda pode aparecerNão volte a enviar o pedido antes de consultar o Request ID no histórico

Os códigos de resposta do modelo e de verificação do resultado (502, 503 e 504) referem agora o modelo ou o pedido: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed e result_pending_check. Se o seu código comparar error.code com valores anteriores, substitua-os pelos códigos da tabela; para saber a correspondência entre códigos antigos e novos, contacte o suporte.

Quando repetir um pedido

  • Consulte primeiro X-Should-Retry: se for false, result_pending_check ou model_timeout não repita automaticamente. Procure o Request ID no histórico da área pessoal: aí poderá ver o resultado e o débito.
  • É seguro repetir quando receber X-Should-Retry: true: aguarde Retry-After segundos. Para 5xx, o código por si só não basta: o resultado pode já ter aparecido. Consulte primeiro o histórico da área pessoal ou contacte o suporte com o Request ID. Isto é especialmente importante para imagens, vídeo, música e passos longos de agentes.
  • Repetir não ajuda: 400, 401, 402, 403, 404 — corrija primeiro o pedido, a chave ou o saldo.

Limites

A frequência e o número de pedidos simultâneos são limitados para a conta no seu conjunto, e não por chave. Se exceder o limite, receberá 429 rate_limit_exceeded com o cabeçalho Retry-After: 10. Se for o próprio modelo a estar sobrecarregado — 503 model_overloaded com Retry-After: 30. Se precisar de uma carga maior, contacte o suporte.

Os limites de despesas são definidos na chave: limite total — 402 api_key_quota_exhausted, janelas de 5 horas, 1 dia e 7 dias — 429 usage_limit_reached. Saiba mais — Chaves e endereço da API.

Modelos NVIDIA: fila

Pode consultar a lista de modelos mesmo com saldo zero; a geração exige saldo para a reserva. Os modelos NVIDIA (Nemotron e outros) funcionam através de uma fila partilhada: com carga elevada, a resposta pode demorar mais ou receberá um erro «modelo temporariamente sobrecarregado» com o cabeçalho Retry-After — repita após o tempo indicado. Os preços estão no catálogo e o débito funciona como nos restantes modelos.

Os limites de tamanho são definidos pelo modelo: contexto (quantos tokens pode enviar) e comprimento máximo da resposta. Estão indicados no catálogo.

Histórico e despesas

Histórico e despesas · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · Início de sessão e sessões

Ainda tem dúvidas? Envie o Request ID e uma descrição — ajudamos a esclarecer.Contactar o suporte