Skip to main content

Model Suffixes

Append supported suffixes to the model value to request optional behavior for a single request. Most suffixes are stripped before the base model is routed. Model identity suffixes, such as supported :thinking variants, are preserved because they identify a distinct model or alias. Suffix parsing is case-insensitive for provider routing and provider suffixes. Avoid combining multiple suffixes that make conflicting provider-selection requests.

Provider Routing Preference Suffixes

These apply only to provider-selection-capable models.
Rules:
  • Routing preference suffixes only consider user-selectable providers. Internal routing-only providers are excluded.
  • Routing preference suffixes are stripped before model mapping/routing. Non-routing identity suffixes such as :thinking are preserved.
  • Do not combine :speed, :fast, :throughput, :latency, :price, :cheap, or :floor with X-Provider, body provider, or a provider model suffix.
  • Do not combine :tools with a routing preference suffix, X-Provider, body provider, a provider model suffix, or caching: true.
  • Do not combine :caching, :cache, or :cached with :tools, X-Provider, body provider, a provider model suffix, or another routing preference suffix.
  • Routing preference requests are billed like explicit provider-selection requests.
  • Conflict error codes use the existing speed_suffix_* family for API compatibility, even when the suffix is not literally :speed.
The caching suffixes are provider-capability routing, not prompt-cache annotation. They do not add Anthropic-style cache_control markers, configure cache TTLs, or force a cache write. For details, see Prompt Caching.

Provider Suffixes

The API accepts a trailing provider suffix for public user-selectable provider IDs:
Recommended: use X-Provider for explicit provider overrides. The API also accepts a trailing provider suffix for user-selectable providers, such as model-id:cerebras, but X-Provider is clearer and easier to validate against provider-discovery responses. Provider suffixes must match a public user-selectable provider ID. They are case-insensitive, cannot be combined with routing preference suffixes or :tools, and are billed like explicit provider selection.

Web Search Suffixes

Web search suffixes can compose with memory and reasoning-exclude suffixes. If request body webSearch.enabled or legacy linkup.enabled is true, body configuration takes precedence over model suffix configuration.

Memory Suffixes

Header memory_expiration_days takes precedence over :memory-<days>. memory: false in the request body explicitly disables memory even if the model has a memory suffix. Memory can compose with web search, for example openai/gpt-5.2:online:memory-90.

PII Redaction Suffixes

Redaction suffixes are stripped before model routing and can compose with other supported NanoGPT suffixes, such as :online. If a request explicitly enables redaction with a model suffix, redaction remains enabled even if an account-level or API-key default would otherwise be disabled for that request. For details, pricing, and limitations, see PII Redaction.

Reasoning and Thinking Suffixes

:reasoning-exclude works on Chat Completions and Text Completions. It composes with other suffixes such as :thinking, :online, and :memory. :thinking is model identity, not provider routing, and is not universal.

Official and Original Route Suffixes

Some model families expose :official / :original aliases to force the official-provider route. These are model-specific; check the model page or provider-selection docs for supported IDs.

Conflict Rules

Do not combine conflicting routing directives:

Examples