Guias
Canais e roteamento de provedores
Fixe um modelo em um provedor específico com X-Felo-Channel e entenda o roteamento padrão, o preço e o fallback.
Um modelo pode ser servido por vários provedores upstream. Por padrão, a Felo escolhe um provedor para você. Quando precisar de um fornecedor específico, envie o cabeçalho de requisição X-Felo-Channel com um ou mais códigos de canal públicos.
Endpoints compatíveis
X-Felo-Channel é aceito em todos os endpoints de geração da 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 | Geração de imagens |
POST /api/v1/videos/generations | Geração de vídeo |
POST /api/v1/decisions | Decisions |
Ele não se aplica à Data API (/v1/beta) nem às Felo APIs (/v2).
Valores do cabeçalho
O valor é uma lista ordenada, separada por vírgulas, de códigos de canal públicos:
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: defaultRegras da especificação pública da Model API:
- Omita o cabeçalho para usar a rota padrão.
defaulté um valor válido apenas quando usado sozinho. Não o combine com códigos de canal.- Os códigos de canal públicos vêm do campo
channels[].codedo modelo no catálogo. Use o código, não o nome de exibição do fornecedor. - Só canais publicados e executáveis são roteáveis.
Roteamento padrão
Quando você omite o cabeçalho, ou envia default sozinho, a plataforma escolhe o provedor. No modo carteira, ela percorre a ordem efetiva de canais públicos do modelo em sentido inverso, ignora canais não publicados ou indisponíveis e seleciona o provedor do primeiro canal disponível. Ela pode incluir endpoints disponíveis desse provedor com o mesmo ID de modelo upstream e o mesmo nível de serviço.
Você não precisa enviar X-Felo-Channel: default; omitir o cabeçalho é a forma normal de usar a rota padrão.
Roteamento explícito
Quando você envia códigos de canal, eles são validados na ordem em que você os lista. Apenas o grupo de provedores do primeiro canal é acionado. Não há fallback automático para outro provedor.
Isso significa que uma lista de canais é uma seleção, não uma política de novas tentativas. Se você precisar de failover, implemente-o na sua aplicação: envie uma nova requisição com outro canal depois que a primeira falhar.
Cabeçalhos de provedor legados não podem substituir X-Felo-Channel. Se outro cabeçalho no seu cliente também pedir um provedor, X-Felo-Channel tem precedência.
Preços
Cada canal público publica suas próprias tarifas padrão e seu multiplicador de desconto. O preço mostrado para um fornecedor na página de detalhe do modelo é o preço de cliente daquele canal. O canal que você fixa determina qual tarifa do provedor se aplica.
Antes de fixar um canal para uma carga de alto volume, compare as linhas de fornecedores na página do modelo e leia Modelos e preços.
Encontre um código de canal
- Abra a página de detalhe do modelo e localize a tabela de fornecedores.
- Relacione o fornecedor ao seu código de canal público. O código é o identificador estável usado pela API.
- Se você estiver lendo o catálogo diretamente, use
channels[].codee verifiquerunnable.
Por exemplo, claude-haiku-5-5 publica vários canais, incluindo anthropic (o padrão), azure, google-vertex-global e claude-cc. A linha claude-cc mostra seu próprio desconto, então fixá-la muda tanto o provedor quanto a tarifa.
Exemplos
Chat Completions fixado em um 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 com o mesmo 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."}]
}'Roteamento padrão, sem cabeçalho de roteamento:
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."}]
}'