Guías
Canales y enrutamiento de proveedores
Fija un modelo a un proveedor concreto con X-Felo-Channel y entiende el enrutamiento predeterminado, el precio y el fallback.
Un modelo puede servirse a través de varios proveedores upstream. De forma predeterminada, Felo elige un proveedor por ti. Cuando necesites un proveedor concreto, envía el encabezado de solicitud X-Felo-Channel con uno o varios códigos de canal públicos.
Endpoints admitidos
X-Felo-Channel se acepta en todos los endpoints de generación de la Model API:
| Endpoint | Protocolo |
|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions |
POST /api/v1/responses | OpenAI Responses |
POST /api/v1/messages | Anthropic Messages |
POST /api/v1/images/generations | Generación de imágenes |
POST /api/v1/videos/generations | Generación de video |
POST /api/v1/decisions | Decisions |
No se aplica a la Data API (/v1/beta) ni a las API de Felo (/v2).
Valores del encabezado
El valor es una lista ordenada de códigos de canal públicos separados por comas:
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: defaultReglas de la especificación pública de la Model API:
- Omite el encabezado para usar la ruta predeterminada.
defaultsolo es un valor válido cuando se usa por sí solo. No lo combines con códigos de canal.- Los códigos de canal públicos proceden del campo
channels[].codedel modelo en el catálogo. Usa el código, no el nombre visible del proveedor. - Solo se puede enrutar a canales publicados y que se puedan ejecutar.
Enrutamiento predeterminado
Cuando omites el encabezado, o envías default por sí solo, la plataforma elige el proveedor. En modo wallet, recorre en orden inverso el orden efectivo de canales públicos del modelo, omite los canales no publicados o no disponibles y selecciona el proveedor del primer canal disponible. Puede incluir endpoints disponibles de ese proveedor con el mismo ID de modelo upstream y el mismo nivel de servicio.
No necesitas enviar X-Felo-Channel: default; omitir el encabezado es la forma normal de usar la ruta predeterminada.
Enrutamiento explícito
Cuando envías códigos de canal, se validan en el orden en que los indicas. Solo se envía el grupo de proveedores del primer canal. No hay conmutación por error automática a otro proveedor.
Esto significa que una lista de canales es una selección, no una política de reintentos. Si necesitas conmutación por error, impleméntala en tu aplicación: envía una nueva solicitud con un canal distinto cuando falle la primera.
Los encabezados de proveedor heredados no pueden anular X-Felo-Channel. Si otro encabezado de tu cliente también solicita un proveedor, X-Felo-Channel tiene prioridad.
Precios
Cada canal público publica sus propias tarifas estándar y su multiplicador de descuento. El precio que se muestra para un proveedor en la página de detalle del modelo es el precio de cliente de ese canal. El canal que fijes determina el proveedor cuya tarifa se aplica.
Antes de fijar un canal para una carga de trabajo de gran volumen, compara las filas de proveedores en la página del modelo y lee Modelos y precios.
Encontrar un código de canal
- Abre la página de detalle del modelo y localiza la tabla de proveedores.
- Asocia el proveedor con su código de canal público. El código es el identificador estable que usa la API.
- Si consultas el catálogo directamente, usa
channels[].codey compruebarunnable.
Por ejemplo, claude-haiku-5-5 publica varios canales, incluidos anthropic (el predeterminado), azure, google-vertex-global y claude-cc. La fila de claude-cc muestra su propio descuento, así que fijarlo cambia tanto el proveedor como la tarifa.
Ejemplos
Chat Completions fijado a un canal:
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'Anthropic Messages con el mismo canal:
curl https://openapi.felo.ai/api/v1/messages \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Felo-Channel: claude-cc" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'Enrutamiento predeterminado, sin encabezado de enrutamiento:
curl https://openapi.felo.ai/api/v1/chat/completions \
-H "Authorization: Bearer $FELO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-haiku-5-5",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Summarize this change in one sentence."}]
}'