Endpoints
Roteamento de provedores e fallbacks
Controle qual provedor atende cada requisição com o objeto provider (order, only, sort, data_collection) e use models para fallback entre modelos diferentes.
Teste no playgroundMuitos modelos são servidos por vários provedores, cada um com seu próprio preço, velocidade e política de dados. Por padrão, as requisições são distribuídas entre os provedores por preço e disponibilidade, e recorrem a outro provedor quando um falha. Use o objeto provider para mudar esse comportamento e models para fazer fallback entre modelos diferentes.
O objeto provider
| Campo | Tipo | Descrição |
|---|---|---|
order | string[] | Provedores a tentar primeiro, em ordem, por exemplo ["Anthropic", "Amazon Bedrock"]. |
allow_fallbacks | boolean | false impede que a requisição vá para provedores fora de order ou only (padrão true). |
only | string[] | Permite somente estes provedores. |
ignore | string[] | Nunca usa estes provedores. |
sort | string | "price", "throughput" ou "latency" em vez de balanceamento de carga. |
data_collection | string | "deny" exclui provedores que possam armazenar prompts ou treinar com eles. "allow" é o padrão. |
require_parameters | boolean | Usa somente provedores que suportam todos os parâmetros da sua requisição (por exemplo tools, response_format). |
quantizations | string[] | Precisões permitidas, por exemplo ["fp8", "bf16"]. |
max_price | object | Limites máximos de preço em USD por milhão de tokens, por exemplo { "prompt": 1, "completion": 3 }. |
{
"model": "meta-llama/llama-3.3-70b-instruct",
"messages": [{ "role": "user", "content": "Hello" }],
"provider": {
"order": ["Groq", "Fireworks"],
"allow_fallbacks": true,
"data_collection": "deny",
"sort": "throughput"
}
}
A variante :nitro é um atalho para sort: "throughput", e :floor é um atalho para sort: "price". Veja Ids de modelo.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api14.com/api/v1",
apiKey: process.env.API14_API_KEY,
});
const result = await client.chat.completions.create({
"model": "openai/gpt-5-mini",
"messages": [
{
"role": "user",
"content": "Explain vector databases in two sentences."
}
]
});
console.log(result.choices[0].message.content);
Fallbacks de modelos com models
Passe uma lista de modelos. Se o primeiro falhar (uma queda, limite de taxa, moderação ou erro de tamanho de contexto), o próximo é tentado:
{
"models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
"messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
modelé opcional quandomodelsestá definido. Se você enviar os dois,modelé tentado primeiro.- Todos os modelos da lista precisam passar pelas verificações do gateway antes de a requisição ser enviada: devem existir e estar ativados, constar na lista de modelos permitidos da sua chave e estar incluídos no seu plano. Um único modelo que falhe nas verificações rejeita a requisição inteira (
403 model_not_allowed,403 plan_requiredou404 model_not_found). - Você é cobrado apenas pelo modelo que respondeu, ao preço dele. O campo
modelda resposta informa qual foi.
Resposta
{
"id": "gen-1760000000-route",
"model": "openai/gpt-5-mini",
"provider": "OpenAI",
"choices": [{ "index": 0, "finish_reason": "stop", "message": { "role": "assistant", "content": "..." } }],
"usage": { "prompt_tokens": 140, "completion_tokens": 60, "total_tokens": 200, "cost": 0.000155 }
}
provider mostra qual provedor atendeu a requisição. A Consulta de geração mostra os detalhes completos do roteamento.
Erros
Se nenhum provedor corresponder aos seus filtros (por exemplo only junto com require_parameters), o provedor retorna 404 "No endpoints found". Os demais erros são os mesmos de Chat completions. Veja Erros.