Parameter Support by Model
These tables show which request parameters take effect for each model family. They are client-facing fields you send through any API format; the router translates each into whatever the model needs.
Legend: ✅ supported · ⚠️ conditional (see Per-Model Details) · — not supported (silently dropped).
A parameter not listed here is either dropped or forwarded unchanged to the model's backend, depending on the backend. A dropped parameter does not fail the request — the field simply has no effect — but a forwarded one that the model does not accept can return an error. Each parameter is described in the Parameters reference.
Core
| Parameter | Type | GPT | Claude | Gemini | Other |
|---|---|---|---|---|---|
model |
string | ✅ | ✅ | ✅ | ✅ |
messages |
array | ✅ | ✅ | ✅ | ✅ |
temperature |
float | ⚠️ | ⚠️ | ✅ | ✅ |
top_p |
float | ⚠️ | ⚠️ | ✅ | ✅ |
max_tokens |
integer | ✅ | ✅ | ✅ | ✅ |
max_completion_tokens |
integer | ✅ | ✅ | ✅ | ✅ |
stop |
array | ⚠️ | ✅ | ✅ | ⚠️ |
stream |
boolean | ✅ | ✅ | ✅ | ✅ |
stream_options |
object | ✅ | ✅ | ✅ | ✅ |
max_tokensis automatically converted tomax_completion_tokensfor GPT-5 models. GPT-5 and Codex models needmax_tokensof at least 16.
stopis dropped for Grok models and for GPT-5. It must be an array of strings, even for a single sequence (for example["END"]); a plain string is rejected with400.Claude: send only one of
temperatureandtop_p. Claude 4.7 and later ignoretemperature(other than 1),top_pandtop_k, and with thinking ontemperatureis set to 1. See Per-Model Details.
Tool use
| Parameter | Type | GPT | Claude | Gemini | Other |
|---|---|---|---|---|---|
tools |
array | ✅ | ✅ | ✅ | ✅ |
tool_choice |
string/object | ✅ | ✅ | ✅ | ✅ |
parallel_tool_calls |
boolean | ✅ | ✅ | ✅ | ⚠️ |
functions (legacy) |
array | ✅ | — | — | — |
function_call (legacy) |
string/object | ✅ | — | — | — |
Reasoning & extended thinking
| Parameter | Type | GPT | Claude | Gemini | Other |
|---|---|---|---|---|---|
thinking |
object | — | ✅ | ✅ | ⚠️ |
reasoning_effort |
string | ✅ | ✅ | ✅ | ⚠️ |
reasoning |
object | ✅ | ✅ | ✅ | ⚠️ |
reasoning_effort,reasoningandthinkingare normalised per model — the router maps whichever you send to the target model's native mode.reasoningis the nested form (effort,max_tokens,enabled,exclude); if bothreasoningandreasoning_effortare sent,reasoning.effortwins. Other families support reasoning control only on models with a switchable reasoning mode. See Per-Model Details and Reasoning & Thinking.
Output control
| Parameter | Type | GPT | Claude | Gemini | Other |
|---|---|---|---|---|---|
response_format |
object | ✅ | ✅ | ✅ | ✅ |
n |
integer | ✅ | — | ✅ | — |
seed |
integer | ✅ | — | ✅ | — |
user |
string | ✅ | ✅ | ✅ | ✅ |
web_search_options |
object | ⚠️ | ✅ | ✅ | — |
web_search_optionsworks on GPT models with web search support and has no effect on others, such asgpt-4.1.
Sampling & penalties
| Parameter | Type | GPT | Claude | Gemini | Other |
|---|---|---|---|---|---|
frequency_penalty |
float | ⚠️ | — | ⚠️ | ✅ |
presence_penalty |
float | ⚠️ | — | ⚠️ | ✅ |
logit_bias |
object | ⚠️ | — | — | — |
GPT-5 models always drop both penalties and
logit_bias; earlier GPT models accept them. Penalties are not available on Gemini preview and Gemini 3 models.
Logprobs
| Parameter | Type | GPT | Claude | Gemini | Other |
|---|---|---|---|---|---|
logprobs |
boolean | ⚠️ | — | ✅ | ⚠️ |
top_logprobs |
integer | ⚠️ | — | ✅ | ⚠️ |
Logprobs apply to Gemini models and to GPT models. GPT-5.1, 5.2, 5.4 and 5.5 return them only when
reasoning_effortis"none"; other GPT-5 models (including Codex variants) drop them. For other model families, support varies by model. Claude models ignore them.
Extended parameters
These are not top-level fields. Pass them inside extra_body; each is extracted by an
allowlist before being merged into the outbound request. (service_tier is the exception —
it is a standard top-level field.)
| Parameter | Via | GPT | Claude | Gemini | Other |
|---|---|---|---|---|---|
modalities |
extra_body |
✅ | — | — | — |
audio |
extra_body |
✅ | — | — | — |
prediction |
extra_body |
✅ | — | — | — |
service_tier |
top-level | ✅ | — | — | — |
top_k |
extra_body |
— | ⚠️ | ✅ | ⚠️ |
top_kis not part of the standard request body — pass it viaextra_body; it is forwarded only to models that support it natively. Claude 4.7 and later ignore it.