Buscar documentação...

Comece a digitar para buscar documentação

Guia da plataforma

Erros e limites de taxa

O que cada código de status significa e o que fazer a respeito.

O formato de erro

Os erros voltam como JSON no formato de erro da OpenAI. A mensagem indica o que aconteceu, code é um identificador estável legível por máquina, e um id de requisição é anexado a cada mensagem:

json
{
  "error": {
    "message": "Model \"gpt-5.5-typo\" is not offered here. Check the model name for typos, or switch to a model from our supported list. (request id: 20260705...)",
    "type": "new_api_error",
    "code": "model_not_found"
  }
}

Sempre inclua o id de requisição ao entrar em contato com o suporte ou abrir um ticket no Discord. Ele nos permite encontrar sua requisição exata nos logs.

Códigos de status em resumo

Os códigos de status que você realmente vai encontrar:

CódigoSignificadoO que fazer
400Requisição inválida: valores de parâmetro incorretos (por exemplo max_tokens abaixo do mínimo do modelo) ou um prompt bloqueado pela moderação de conteúdo.Corrija a requisição. Repeti-la sem alterações vai falhar de novo.
401Problema com a chave: chave de API ausente, inválida, expirada ou desativada.Verifique o cabeçalho Authorization e sua chave na página de Tokens.
402O limite de gasto próprio desta chave se esgotou.Aumente o limite da chave ou crie uma chave nova.
403Acesso negado: saldo da conta vazio, modelo não permitido para esta chave, ou seu IP não está na lista de permitidos da chave.Recarregue, ou verifique as restrições de modelo e de IP da chave.
413Requisição grande demais para o teto do teste gratuito deste modelo.Encurte o prompt ou troque para o modelo pago.
429Um limite de taxa disparou (veja os tipos abaixo).Aguarde os segundos de Retry-After e depois tente novamente ou troque de modelo.
500Algo falhou do nosso lado ou no provedor upstream.Tente novamente após uma breve espera; 500 persistentes valem um relato.
503Todos os provedores do modelo estão ocupados, ou o nome do modelo não existe.Leia a mensagem: ocupado se resolve em minutos, um erro de digitação não.

503: ocupado ou modelo desconhecido

Duas situações bem diferentes compartilham o status 503. A primeira é congestionamento temporário:

text
HTTP/1.1 503 Service Unavailable

{
  "error": {
    "message": "All providers for model \"kimi-k2.6:free\" are busy right now (they hit their rate limit). This is not a spelling error. Please try again in a little while, or switch to another model. (request id: 20260705...)",
    "type": "new_api_error",
    "code": "get_channel_failed"
  }
}

O código get_channel_failed (todos os provedores ocupados) significa que todo provedor gratuito daquele modelo está momentaneamente limitado por taxa. Isso se recupera sozinho em minutos: tente novamente ou troque de modelo. O código model_not_found (não oferecido aqui) significa que o próprio nome do modelo não resolve, e tentar novamente nunca vai ajudar. Verifique erros de digitação ou consulte o nome atual no catálogo.

Trate o 503 com get_channel_failed como nova tentativa ou fallback e o 503 com model_not_found como um erro definitivo no seu cliente.

Os tipos de limites de taxa

Um 429 pode vir de várias camadas:

  • Nosso teto de modelos gratuitos: 1 requisição por minuto por modelo gratuito por usuário. Um teto de justiça para que os pools compartilhados sobrevivam aos horários de pico.
  • Limites do provedor upstream: o provedor por trás de um modelo gratuito atingiu o próprio teto ("temporarily rate-limited upstream", ou seja, temporariamente limitado por taxa a montante).
  • Orçamentos diários de tokens em alguns pools gratuitos; eles reiniciam à meia-noite UTC.
  • Tetos de tokens por minuto que disparam em prompts muito grandes.
  • Um limite de concorrência por usuário quando muitas requisições rodam em paralelo.

Modelos pagos não têm limites de taxa impostos pelo UnoRouter.

O limite dos modelos gratuitos em detalhe

Quando nosso teto de 1 por minuto dispara, você recebe cabeçalhos padrão de limite de taxa, para que os clientes possam recuar com precisão:

text
HTTP/1.1 429 Too Many Requests
Retry-After: 38
X-RateLimit-Limit: 1
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1783198478

Retry-After é dinâmico: os segundos que de fato restam na sua janela, não um 60 fixo. A mensagem de erro também nomeia o gêmeo pago do modelo, que não tem limite.

Tetos de tamanho do teste

Alguns modelos normalmente pagos são oferecidos gratuitamente com um teto de tamanho de requisição. Prompts grandes demais recebem 413 com uma mensagem como: Request body too large for gpt-4.1 model. Max size: 8000 tokens.

O teto se aplica apenas à rota do teste gratuito; o modelo pago aceita prompts de comprimento total.

Orientação sobre novas tentativas

Respeite o Retry-After nos 429. Tente novamente o 503 get_channel_failed após uma breve espera, ou recorra a outro modelo. Não tente novamente erros de classe 400, eles são determinísticos.

Requisições que falharam ou foram recusadas não são cobradas: qualquer pré-reserva no seu saldo é reembolsada quando a requisição dá erro.