Felo API PlatformFelo API Platform

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:

EndpointProtocolo
POST /api/v1/chat/completionsOpenAI Chat Completions
POST /api/v1/responsesOpenAI Responses
POST /api/v1/messagesAnthropic Messages
POST /api/v1/images/generationsGeneración de imágenes
POST /api/v1/videos/generationsGeneración de video
POST /api/v1/decisionsDecisions

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: default

Reglas de la especificación pública de la Model API:

  • Omite el encabezado para usar la ruta predeterminada.
  • default solo 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[].code del 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

  1. Abre la página de detalle del modelo y localiza la tabla de proveedores.
  2. Asocia el proveedor con su código de canal público. El código es el identificador estable que usa la API.
  3. Si consultas el catálogo directamente, usa channels[].code y comprueba runnable.

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."}]
  }'

Relacionado