NovoConecte qualquer agente ao UberLLM: uma chave, todos os modelos, pelo preço de tabela ou menos.
UberLLM

Erros

UberLLM retorna envelopes de erro no estilo OpenAI para que o tratamento de erros existente funcione inalterado:

{
  "error": {
    "code": "insufficient_credits",
    "message": "Your credit balance is too low to serve this request.",
    "type": "insufficient_credits"
  }
}

Superfície de inferência (/v1/*)

HTTP code Significado O que fazer
402 insufficient_credits Seu saldo pré-pago não cobre a reserva da requisição. Recarregue em Dashboard → Créditos.
402 key_spend_cap_exceeded Esta chave atingiu seu limite de gastos configurado (diário / mensal / vitalício). Aumente ou remova o limite da chave, ou use outra chave.
400 invalid_request O corpo da requisição não pôde ser analisado, ou o modelo rejeitou a requisição (a mensagem diz o porquê). Corrija a requisição; ela não será retentada.
413 request_too_large O corpo da requisição tem mais de 10 MB (na maioria das vezes, imagens enviadas como base64). Envie imagens como links https://, ou encurte a conversa. Nada foi cobrado.
404 model_not_found O ID model não está disponível. Um prefixo uberllm/ na frente está ok: uberllm/deepseek/deepseek-v4.1-flash alcança deepseek/deepseek-v4.1-flash. Verifique GET /v1/models; corrija o ID.
400 context_length_exceeded O prompt é mais longo do que o modelo aceita, seja quem for que o venda. Em /v1/chat/completions sem uma lista models, o modelo mais próximo que o aceita responde em vez disso (o model da resposta o nomeia); este erro ocorre quando nenhum modelo o aceita, ou em /v1/messages. A mensagem fornece ambos os tamanhos e nomeia os modelos que o aceitam. Envie menos, ou escolha um modelo que a mensagem nomeia. Nada foi cobrado.
400 tools_not_supported A requisição envia tools e o modelo não pode chamá-los, seja quem for que o venda. Mesma regra de substituição acima. A mensagem nomeia os modelos que podem. Envie sem ferramentas, ou escolha um modelo que a mensagem nomeia. Nada foi cobrado.
400 max_price_exceeded Ninguém vende o modelo dentro do seu provider.max_price agora (e nenhum modelo em models poderia aceitá-lo). Aumente max_price, tente mais tarde, ou nomeie outros modelos. Nada foi cobrado.
400 unsupported_routing_option Uma opção provider que UberLLM não pode aplicar (a mensagem a nomeia). Omita-a; veja Modelos e roteamento.
400 invalid_metadata metadata não é um objeto de até 16 valores de texto. Corrija as tags; números devem estar entre aspas.
400 unknown_capability Um alias best-price: / fastest: não nomeia nenhum trabalho. Use um de chat, image, image-edit, text-to-video, image-to-video, music, speech, transcription.
400 wrong_endpoint O modelo (ou alias) faz um trabalho que esta rota não faz: um modelo de imagem, vídeo, música, fala ou transcrição enviado para /v1/chat/completions ou /v1/messages, um modelo de chat enviado para uma rota de mídia, ou fala e transcrição trocadas. A mensagem nomeia a rota correta. Recusado antes de qualquer execução; nada é cobrado, e a Atividade o lista como recusado. Envie para a rota que a mensagem nomeia (também em endpoints em /v1/models/{id}).
503 no_timing_data fastest: foi solicitado antes que houvesse requisições suficientes cronometradas para comparar modelos. Use best-price: ou nomeie um modelo.
429 rate_limited Esta chave excedeu seu limite de requisições por minuto, ou o marketplace continuou a aplicar limite de taxa após retentativas automáticas. Espere e tente novamente com jitter; aumente o limite de taxa da chave.
503 no_available_provider Ninguém pode servir esse modelo agora, mesmo após retentativas automáticas (nenhum vendedor, todos os vendedores falhando ou muito lentos para iniciar, ou suas opções provider não deixaram nada para rotear), ou um alias best-price: / fastest: não encontrou nenhum modelo disponível para o trabalho agora. A mensagem nomeia o modelo ou o trabalho. Isso também cobre um vendedor cuja própria conta de provedor falhou: UberLLM tenta outros vendedores e nunca repassa o erro desse vendedor como se sua chave estivesse errada. Tente novamente em breve ou escolha outro modelo. Nada foi cobrado.
503 service_unavailable Um problema temporário do lado da UberLLM. Tente novamente em alguns minutos.

Requisições de imagem, vídeo e música adicionam alguns códigos próprios (image_required, invalid_image_url (um link de imagem de origem que não leva a uma imagem), max_cost_too_low, idempotency_key_reused, artifact_expired); veja Criar um vídeo ou imagem.

Uma requisição de chat recusada ou falha aparece em Dashboard → Atividade com a mensagem que lhe foi enviada. Respostas de chat, imagem, vídeo, música, fala e transcrição carregam um cabeçalho X-Request-Id com o mesmo ID de sua linha de Atividade, incluindo erros.

As retentativas acontecem para você antes que um erro seja retornado: até 4 tentativas, apenas antes do primeiro byte de conteúdo. Veja Modelos e roteamento.

Reservas e abortos

UberLLM reserva um custo estimado antes de fazer o proxy e liquida com base no uso real depois. Se uma requisição falha, aborta, ou você se desconecta no meio do streaming, a reserva não utilizada é liberada — você é cobrado apenas pelo conteúdo realmente produzido. Streams abortados são reconciliados a partir de uma estimativa do tokenizador e sinalizados em Dashboard → Atividade.

Limitação de taxa

Limites de taxa por chave são aplicados com uma janela fixa. Na superfície de inferência, as verificações de limite de taxa falham fechadas — se o UberLLM não conseguir verificar seu limite, a requisição é rejeitada em vez de ser atendida sem medição. Defina (ou aumente) o limite de requisições por minuto de uma chave em Dashboard → API keys.

Toda resposta autenticada /v1/* contém a janela atual da chave:

Cabeçalho Significado
X-RateLimit-Limit Requisições que esta chave pode enviar por minuto
X-RateLimit-Remaining Requisições restantes no minuto atual
X-RateLimit-Reset Quando a janela recomeça (segundos Unix)
Retry-After Em um 429 deste limite: segundos para esperar antes de tentar novamente

Diminua a velocidade quando X-RateLimit-Remaining se aproximar de 0. Os cabeçalhos são omitidos quando a janela não pode ser lida.

API do Vendedor (/api/v1/seller/*)

Estes usam códigos REST padrão:

HTTP code Significado
400 invalid_request Falha na validação (ex: endpoint_url não-https, preços ausentes para absolute, multiplier fora de 0 < m ≤ 1.5). A mensagem indica o campo.
400 model_not_in_catalog model_id não é um modelo de catálogo conhecido.
401 unauthorized JWT do painel ausente ou inválido.
404 seller_not_found Nenhum vendedor para sua organização — ligue para POST /api/v1/seller/register primeiro.
404 offer_not_found Nenhuma oferta com esse ID sob seu vendedor.
409 invalid_status_transition Mudança de status ilegal — ex: retomar uma oferta delisted (deslistada é terminal).

Nota: uma sondagem de validação falha não é uma resposta de erro. A oferta é criada/atualizada com sucesso e retornada com status: "paused" e um last_probe_error explicando o porquê — corrija o endpoint e PATCH-a de volta para active para re-sondar. Veja Sellers.

Erros de autenticação

HTTP Significado
401 Cabeçalho Authorization ausente/inválido. Chaves de inferência são Bearer ull_...; endpoints de painel usam seu JWT de conta.
403 A chave é válida, mas não possui o escopo necessário (por exemplo, uma chave somente de inferência chamando um endpoint de painel).