Model variants let you modify routing behavior by appending a suffix to any model ID. Instead of configuring a separateDocumentation Index
Fetch the complete documentation index at: https://docs.arouter.ai/llms.txt
Use this file to discover all available pages before exploring further.
provider object, variants are a concise shorthand embedded directly in the model string.
:nitro — Maximum Throughput
Append :nitro to route to the highest-throughput instance of a model. Equivalent to setting provider.sort = "throughput".
Best for: Real-time applications, interactive chat, streaming UI
- TypeScript
- Python
- cURL
:floor — Minimum Cost
Append :floor to route to the lowest-cost instance of a model. Equivalent to setting provider.sort = "price".
Best for: Batch processing, offline workloads, cost-sensitive pipelines
- TypeScript
- Python
- cURL
:free — Free Tier
Append :free to route to the free-tier instance of a model. Free-tier instances are available for many popular models with rate limits applied.
Best for: Prototyping, development, low-volume testing
- TypeScript
- Python
- cURL
Free-tier models apply stricter rate limits and may have reduced context windows. See Rate Limits for details.
:thinking — Extended Reasoning
Append :thinking to enable extended chain-of-thought reasoning on models that support it (e.g. DeepSeek R1, Claude with extended thinking, Gemini Flash Thinking).
Best for: Complex reasoning, math, coding, multi-step problems
- TypeScript
- Python
- cURL
:thinking is enabled, reasoning tokens appear in the response usage.completion_tokens_details:
:extended — Extended Context
Append :extended to access versions of a model with a larger context window than the default.
Best for: Long document processing, large codebases, extended conversations
- TypeScript
- Python
:exacto — Tool-Calling Quality
Append :exacto to explicitly activate quality-ranked routing for tool-calling requests. ARouter selects the provider endpoint with the highest tool-calling quality score, rather than the cheapest option.
Best for: Production tool-calling pipelines where schema adherence and argument accuracy matter more than cost
- TypeScript
- Python
tools is present. :exacto forces quality-ranked routing even for requests without tools — useful when you want consistent provider selection behavior regardless of whether the model invokes tools.
Combining Variants
Some variants can be combined:Not all combinations are valid. ARouter returns an error if the requested combination is unavailable for a model.
Variant Reference
| Suffix | Effect | Equivalent provider setting | Best for |
|---|---|---|---|
:nitro | Highest throughput | provider.sort = "throughput" | Real-time / interactive |
:floor | Lowest cost | provider.sort = "price" | Batch / offline |
:free | Free tier (rate limited) | — | Dev / prototyping |
:thinking | Extended reasoning mode | — | Complex reasoning |
:extended | Larger context window | — | Long documents |
:online | Web search (deprecated) | plugins: [{id: "web"}] | Use Server Tools instead |
:exacto | Tool-calling quality routing | provider.sort = "quality" | Production tool-calling |
How Variants Affect Routing
Variants are parsed on the server and influence which endpoint ARouter selects:- The base model ID (e.g.
openai/gpt-5.4) identifies the model family - The suffix modifies the endpoint selection criteria
- ARouter returns the actual model used in
response.model
response.model to see exactly which model variant was served:
provider object options when you need more granular control than variants provide.