Endpoints
Enrutamiento de proveedores y respaldos
Elige, ordena y filtra los proveedores upstream con el objeto provider y configura modelos de respaldo con el array models.
Pruébalo en el playgroundMuchos modelos son servidos por varios proveedores upstream, cada uno con su propio precio, velocidad y política de datos. Por defecto, las peticiones se reparten entre proveedores según precio y disponibilidad, y pasan a otro proveedor cuando uno falla. Usa el objeto provider para cambiar esto, y models para recurrir a modelos distintos como respaldo.
El objeto provider
| Campo | Tipo | Descripción |
|---|---|---|
order | string[] | Proveedores que se prueban primero, en orden, p. ej. ["Anthropic", "Amazon Bedrock"]. |
allow_fallbacks | boolean | false impide que la petición vaya a proveedores fuera de order o only (por defecto true). |
only | string[] | Permite solo estos proveedores. |
ignore | string[] | No usar nunca estos proveedores. |
sort | string | "price", "throughput" o "latency" en lugar del reparto de carga. |
data_collection | string | "deny" excluye a los proveedores que pueden almacenar los prompts o entrenar con ellos. "allow" es el valor por defecto. |
require_parameters | boolean | Usa solo proveedores que admitan todos los parámetros de tu petición (p. ej. tools, response_format). |
quantizations | string[] | Precisiones permitidas, p. ej. ["fp8", "bf16"]. |
max_price | object | Límites máximos de precio en USD por millón de tokens, p. ej. { "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"
}
}
La variante :nitro es un atajo para sort: "throughput", y :floor es un atajo para sort: "price". Consulta 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);
Modelos de respaldo con models
Pasa una lista de modelos. Si el primero falla (una caída, un límite de tasa, moderación o un error de longitud de contexto), se prueba el siguiente:
{
"models": ["anthropic/claude-sonnet-4.5", "openai/gpt-5-mini", "google/gemini-2.5-flash"],
"messages": [{ "role": "user", "content": "Summarize this ticket." }]
}
modeles opcional cuando se establecemodels. Si envías ambos,modelse prueba primero.- Todos los modelos de la lista deben pasar las comprobaciones de la pasarela antes de enviar la petición: deben existir y estar activados, estar en la lista de modelos permitidos de tu clave e incluirse en tu plan. Un solo modelo que no pase las comprobaciones rechaza toda la petición (
403 model_not_allowed,403 plan_requiredo404 model_not_found). - Solo se te factura el modelo que respondió, a su propio precio. El campo
modelde la respuesta indica cuál fue.
Respuesta
{
"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 indica qué proveedor upstream atendió la petición. Consulta de generaciones muestra todos los detalles del enrutamiento.
Errores
Si ningún proveedor coincide con tus filtros (p. ej. only junto con require_parameters), el upstream devuelve 404 "No endpoints found". Los demás errores son los mismos que en Chat completions. Consulta Errores.