가이드
채널 및 공급자 라우팅
X-Felo-Channel로 모델을 특정 공급자에 고정하고 기본 라우팅, 청구, fallback 규칙을 이해하세요.
하나의 모델이 여러 업스트림 공급자로 제공될 수 있습니다. 기본적으로 Felo가 공급자를 선택합니다. 특정 공급자를 지정해야 할 때는 공개 채널 코드를 하나 이상 담은 X-Felo-Channel 요청 헤더를 보내세요.
지원 endpoint
X-Felo-Channel은 모든 Model API 생성 endpoint에서 사용할 수 있습니다.
| Endpoint | 프로토콜 |
|---|---|
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 | 이미지 생성 |
POST /api/v1/videos/generations | 비디오 생성 |
POST /api/v1/decisions | 결정 |
Data API(/v1/beta)와 Felo APIs(/v2)에는 적용되지 않습니다.
헤더 값
값은 공개 채널 코드를 순서대로 쉼표로 구분한 목록입니다.
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic
X-Felo-Channel: default공개 Model API 사양의 규칙:
- 헤더를 생략하면 기본 라우트를 사용합니다.
default는 단독으로 사용할 때만 유효합니다. 채널 코드와 함께 쓰지 마세요.- 공개 채널 코드는 카탈로그의 모델
channels[].code필드에서 가져옵니다. 공급자 표시 이름이 아니라 코드를 사용하세요. - 실행 가능하고 공개된 채널만 라우팅할 수 있습니다.
기본 라우팅
헤더를 생략하거나 default만 보내면 플랫폼이 공급자를 선택합니다. wallet 모드에서는 모델의 유효한 공개 채널 순서를 역순으로 훑어 공개되지 않았거나 사용할 수 없는 채널을 건너뛰고, 사용 가능한 첫 채널의 공급자를 선택합니다. 같은 업스트림 모델 ID와 service tier를 가진 해당 공급자의 사용 가능한 endpoint를 포함할 수 있습니다.
X-Felo-Channel: default를 보낼 필요는 없습니다. 헤더를 생략하는 것이 기본 라우트를 쓰는 일반적인 방법입니다.
명시적 라우팅
채널 코드를 보내면 나열한 순서대로 검증합니다. 첫 번째 채널의 공급자 그룹만 제출됩니다. 다른 공급자로의 자동 fallback은 없습니다.
즉, 채널 목록은 선택이지 재시도 정책이 아닙니다. failover가 필요하면 애플리케이션에서 구현하세요. 첫 채널이 실패하면 다른 채널로 새 요청을 보냅니다.
레거시 공급자 헤더는 X-Felo-Channel을 덮어쓸 수 없습니다. 클라이언트의 다른 헤더도 공급자를 요구한다면 X-Felo-Channel이 우선합니다.
가격
각 공개 채널은 자체 표준 요금과 할인 배수를 공개합니다. 모델 상세 페이지에서 공급자에 표시되는 가격이 해당 채널의 고객 가격입니다. 고정한 채널이 어떤 공급자의 요금을 적용할지 결정합니다.
트래픽이 많은 워크로드에 채널을 고정하기 전에 모델 페이지의 공급자 행을 비교하고 모델 및 가격을 읽어 보세요.
채널 코드 찾기
- 모델 상세 페이지를 열고 공급자 표를 찾습니다.
- 공급자를 공개 채널 코드와 연결합니다. 코드는 API가 사용하는 안정적인 식별자입니다.
- 카탈로그를 직접 읽는다면
channels[].code를 사용하고runnable을 확인하세요.
예를 들어 claude-haiku-5-5는 anthropic(기본), azure, google-vertex-global, claude-cc 등 여러 채널을 공개합니다. claude-cc 행은 자체 할인을 표시하므로, 이를 고정하면 공급자와 요금이 모두 바뀝니다.
예시
Chat Completions를 하나의 채널에 고정:
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:
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."}]
}'라우팅 헤더 없는 기본 라우팅:
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."}]
}'