Router docs
Router documentation
Router is multi-model AI routing for developers. It speaks the OpenAI API, so you change the base URL, add your key, and your existing code works. These docs cover the things that differ.
Request early accessQuickstart
Install the OpenAI SDK, point it at Router, and make a chat completion. This is the whole integration.
pip install openaifrom openai import OpenAI
client = OpenAI(
base_url="https://router.kyzon.com/v1",
api_key="YOUR_KYZON_KEY",
)
response = client.chat.completions.create(
model="openai/gpt-4.1-mini",
messages=[
{"role": "user", "content": "Hello"},
],
)
print(response.choices[0].message.content)Already using the OpenAI SDK? The base URL and the key are the only changes.
Authentication
Router authenticates with a Bearer token. Pass your key in the Authorization header. The OpenAI SDK sets this for you when you provide api_key.
curl https://router.kyzon.com/v1/chat/completions \
-H "Authorization: Bearer YOUR_KYZON_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4.1-mini",
"messages": [{"role": "user", "content": "Hello"}]
}'Getting a key
Router is in early access. Request access and we turn on your key. Keep keys server-side and never expose them in client code.
Request early accessMaking requests
Router implements the OpenAI Chat Completions API. Any request your code already sends works once the base URL points at Router. Below is only what is specific to Router.
Selecting a model
Pass the model as a provider/model slug. The same request targets any supported provider by changing this one field.
# switch providers by changing the slug
model="openai/gpt-4.1-mini"
model="anthropic/claude-sonnet-4"
model="google/gemini-2.5-flash"Streaming
Set stream to true for token-by-token responses over server-sent events, exactly as in the OpenAI SDK.
stream = client.chat.completions.create(
model="openai/gpt-4.1-mini",
messages=[{"role": "user", "content": "Hello"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")Chat completions and streaming are supported with the parameters in this guide. Fine-tuning, assistants, image generation, and file endpoints are not available on Router today.
Supported models
Pass the slug in the model field. This is the current routable set.
| Model slug | Provider | Context |
|---|---|---|
| openai/gpt-3.5-turbo | OpenAI | 16K |
| openai/gpt-3.5-turbo-0613 | OpenAI | 4K |
| openai/gpt-3.5-turbo-16k | OpenAI | 16K |
| openai/gpt-3.5-turbo-instruct | OpenAI | 4K |
| openai/gpt-4 | OpenAI | 8K |
| openai/gpt-4-turbo | OpenAI | 128K |
| openai/gpt-4-turbo-preview | OpenAI | 128K |
| openai/gpt-4.1 | OpenAI | 1M |
| openai/gpt-4.1-mini | OpenAI | 1M |
| openai/gpt-4.1-nano | OpenAI | 1M |
| openai/gpt-4o | OpenAI | 128K |
| openai/gpt-4o-2024-05-13 | OpenAI | 128K |
| openai/gpt-4o-2024-08-06 | OpenAI | 128K |
| openai/gpt-4o-2024-11-20 | OpenAI | 128K |
| openai/gpt-4o-mini | OpenAI | 128K |
| openai/gpt-4o-mini-2024-07-18 | OpenAI | 128K |
| openai/gpt-5 | OpenAI | 400K |
| openai/gpt-5-chat | OpenAI | 128K |
| openai/gpt-5-codex | OpenAI | 400K |
| openai/gpt-5-mini | OpenAI | 400K |
| openai/gpt-5-nano | OpenAI | 400K |
| openai/gpt-5-pro | OpenAI | 400K |
| openai/gpt-5.1 | OpenAI | 400K |
| openai/gpt-5.1-chat | OpenAI | 128K |
| openai/gpt-5.1-codex | OpenAI | 400K |
| openai/gpt-5.1-codex-max | OpenAI | 400K |
| openai/gpt-5.1-codex-mini | OpenAI | 400K |
| openai/gpt-5.2 | OpenAI | 400K |
| openai/gpt-5.2-chat | OpenAI | 128K |
| openai/gpt-5.2-codex | OpenAI | 400K |
| openai/gpt-5.2-pro | OpenAI | 400K |
| openai/gpt-5.3-chat | OpenAI | 128K |
| openai/gpt-5.3-codex | OpenAI | 400K |
| openai/gpt-5.4 | OpenAI | 1M |
| openai/gpt-5.4-mini | OpenAI | 400K |
| openai/gpt-5.4-nano | OpenAI | 400K |
| openai/gpt-5.4-pro | OpenAI | 1M |
| openai/gpt-5.5 | OpenAI | 1M |
| openai/gpt-5.5-pro | OpenAI | 1M |
| openai/gpt-chat-latest | OpenAI | 400K |
| openai/gpt-oss-120b | OpenAI | 131K |
| openai/gpt-oss-20b | OpenAI | 131K |
| openai/o1 | OpenAI | 200K |
| openai/o1-pro | OpenAI | 200K |
| openai/o3 | OpenAI | 200K |
| openai/o3-mini | OpenAI | 200K |
| openai/o3-mini-high | OpenAI | 200K |
| openai/o3-pro | OpenAI | 200K |
| openai/o4-mini | OpenAI | 200K |
| openai/o4-mini-high | OpenAI | 200K |
| anthropic/claude-haiku-4.5 | Anthropic | 200K |
| anthropic/claude-opus-4.1 | Anthropic | 200K |
| anthropic/claude-opus-4.5 | Anthropic | 200K |
| anthropic/claude-opus-4.6 | Anthropic | 1M |
| anthropic/claude-opus-4.6-fast | Anthropic | 1M |
| anthropic/claude-opus-4.7 | Anthropic | 1M |
| anthropic/claude-opus-4.7-fast | Anthropic | 1M |
| anthropic/claude-opus-4.8 | Anthropic | 1M |
| anthropic/claude-opus-4.8-fast | Anthropic | 1M |
| anthropic/claude-sonnet-4.5 | Anthropic | 1M |
| anthropic/claude-sonnet-4.6 | Anthropic | 1M |
| google/gemini-2.5-flash | 1M | |
| google/gemini-2.5-flash-lite | 1M | |
| google/gemini-2.5-flash-lite-preview-09-2025 | 1M | |
| google/gemini-2.5-pro | 1M | |
| google/gemini-2.5-pro-preview | 1M | |
| google/gemini-2.5-pro-preview-05-06 | 1M | |
| google/gemini-3-flash-preview | 1M | |
| google/gemini-3.1-flash-lite | 1M | |
| google/gemini-3.1-flash-lite-preview | 1M | |
| google/gemini-3.1-pro-preview | 1M | |
| google/gemini-3.5-flash | 1M | |
| google/gemma-2-27b-it | 8K | |
| google/gemma-3-12b-it | 131K | |
| google/gemma-3-27b-it | 131K | |
| google/gemma-3-4b-it | 131K | |
| google/gemma-3n-e4b-it | 32K | |
| google/gemma-4-26b-a4b-it | 262K | |
| google/gemma-4-31b-it | 262K | |
| mistral/codestral-2508 | Mistral | 256K |
| mistral/devstral-2512 | Mistral | 262K |
| mistral/ministral-14b-2512 | Mistral | 262K |
| mistral/ministral-3b-2512 | Mistral | 131K |
| mistral/ministral-8b-2512 | Mistral | 262K |
| mistral/mistral-large | Mistral | 128K |
| mistral/mistral-large-2407 | Mistral | 131K |
| mistral/mistral-large-2512 | Mistral | 262K |
| mistral/mistral-medium-3 | Mistral | 131K |
| mistral/mistral-medium-3-5 | Mistral | 262K |
| mistral/mistral-medium-3.1 | Mistral | 131K |
| mistral/mistral-nemo | Mistral | 131K |
| mistral/mistral-saba | Mistral | 32K |
| mistral/mistral-small-24b-instruct-2501 | Mistral | 32K |
| mistral/mistral-small-2603 | Mistral | 262K |
| mistral/mistral-small-3.1-24b-instruct | Mistral | 128K |
| mistral/mistral-small-3.2-24b-instruct | Mistral | 128K |
| mistral/mixtral-8x22b-instruct | Mistral | 65K |
| meta/llama-3-8b-instruct | Meta | 8K |
| meta/llama-3.1-70b-instruct | Meta | 131K |
| meta/llama-3.1-8b-instruct | Meta | 131K |
| meta/llama-3.2-1b-instruct | Meta | 131K |
| meta/llama-3.2-3b-instruct | Meta | 131K |
| meta/llama-3.3-70b-instruct | Meta | 131K |
| meta/llama-4-maverick | Meta | 1M |
| meta/llama-4-scout | Meta | 10M |
| cohere/command-a | Cohere | 256K |
| cohere/command-r-08-2024 | Cohere | 128K |
| cohere/command-r-plus-08-2024 | Cohere | 128K |
| cohere/command-r7b-12-2024 | Cohere | 128K |
| deepseek/deepseek-chat | DeepSeek | 131K |
| deepseek/deepseek-chat-v3-0324 | DeepSeek | 163K |
| deepseek/deepseek-chat-v3.1 | DeepSeek | 163K |
| deepseek/deepseek-r1 | DeepSeek | 163K |
| deepseek/deepseek-r1-0528 | DeepSeek | 163K |
| deepseek/deepseek-r1-distill-llama-70b | DeepSeek | 128K |
| deepseek/deepseek-v3.1-terminus | DeepSeek | 163K |
| deepseek/deepseek-v3.2 | DeepSeek | 131K |
| deepseek/deepseek-v3.2-exp | DeepSeek | 163K |
| deepseek/deepseek-v4-flash | DeepSeek | 1M |
| deepseek/deepseek-v4-pro | DeepSeek | 1M |
Request logs
Every request and response through Router is logged on Australian infrastructure, giving you a full record for debugging and audit.
- What is captured
- Request and response payloads, model slug, provider, token counts, cost, latency, team, and timestamp.
- Where it lives
- AWS Sydney (ap-southeast-2).
- Retention
- Between 30 days and 6 months depending on the use case.
- Access
- Dashboard export today. Logs API access is available on request during early access.
Errors and rate limits
Router returns standard HTTP status codes with a JSON error object in the OpenAI format: error.message, error.type, and error.code.
| Status | Meaning |
|---|---|
| 401 | Missing or invalid key. |
| 400 | Malformed request, for example an unknown model slug. |
| 429 | Rate limit reached. During early access, limits are conservative. |
| 5xx | A provider or Router error. Retry with backoff. |
Rate limits during early access are set per account when your key is issued. Contact us if you need higher throughput.
Ready to build?
Router is in early access. Request a key to start, or see how usage is priced.