Neu Kostenlos registrieren, 10 Aufrufe gratis. Bis zu 1 $, ohne Karte.

Parameters by Upstream

Some request fields do not mean the same thing everywhere. This page states what the gateway does with each one on the way to each provider - passed through, translated into the provider's own equivalent, or dropped.

This is not a list of every accepted field; each endpoint page documents its own request body. Listed here are the fields where supported is not a yes or no, because the answer changes with the provider your model runs on.

reasoning_effort

Full guide, with values and cost impact →

You call Upstream Behaviour Beschreibung
/v1/chat/completions OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) unverändert Forwarded to the provider as sent, with one exception: when a model's catalog entry lists the effort levels it accepts, a value below the lowest is raised to it and one above the highest steps down (GPT-6.1 Sol cannot turn reasoning off, so none and minimal run at low). Otherwise the gateway neither validates the value nor guarantees the provider honours it. Commonly minimal, low, medium and high, but the accepted set is the provider's: OpenAI also takes none on most models, GLM takes up to max. Check the provider's own reference for its range.
/v1/chat/completions Google Vertex - Gemini 3.x abgebildet Becomes Gemini's thinkingLevel: none and minimal both map to minimal, low/medium/high map straight across. An explicit google.thinking_config in the request wins over this mapping.
/v1/chat/completions Google Vertex - Gemini 2.5 verworfen Gemini 2.5 only understands thinkingBudget and rejects thinkingLevel outright, so the gateway sends neither and leaves the model at its default thinking behaviour. Use google.thinking_config with thinking_budget to control 2.5.
/v1/chat/completions Anthropic (Claude) abgebildet Becomes Anthropic thinking. none and minimal turn thinking off ({"type":"disabled"}); low/medium/high/xhigh/max become a budget of 2,048 / 8,192 / 16,384 / 32,768 tokens - the inverse of the bucket mapping used in the other direction. A derived budget is clamped to stay below max_tokens, and is skipped entirely when max_tokens cannot fit Anthropic's 1,024-token minimum, so asking for effort never turns a working request into an upstream 400.
/v1/messages OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) abgebildet Derived from thinking.budget_tokens by bucket, when extended thinking is enabled and the budget is above zero: up to 2,048 tokens becomes low, up to 8,192 becomes medium, above that becomes high. A zero or absent budget sends nothing. For a model whose catalog entry lists the effort levels it accepts (GPT-6.1 Sol), the request's intent is followed instead: thinking disabled or between_tools runs at the lowest level (low), even when output_config.effort is also set; otherwise output_config.effort is sent as the effort.
/v1/responses OpenAI-compatible (GPT, GLM, DeepSeek, Qwen, Kimi…) abgebildet Read out of the Responses-API reasoning.effort object and sent as the flat reasoning_effort field.

thinking / thinking_budget / enable_thinking

You call Upstream Behaviour Beschreibung
/v1/chat/completions Anthropic (Claude) abgebildet These are other vendors' names for the same dial, and the gateway normalises them. thinking:{"type":"disabled"}, enable_thinking:false and thinking_budget:0 all turn thinking off; thinking_budget:N and thinking:{"type":"enabled","budget_tokens":N} pass the budget through unchanged - an out-of-range value is rejected by the upstream rather than silently adjusted. thinking:{"type":"adaptive"} is left to the upstream.
/v1/chat/completions Google Vertex - Gemini 3.x abgebildet Normalised into thinkingConfig: turning thinking off becomes thinkingLevel:"minimal", and an explicit budget becomes thinkingBudget. An explicit google.thinking_config in the request still wins over all of it.
/v1/chat/completions Google Vertex - Gemini 2.5 abgebildet Normalised into thinkingConfig.thinkingBudget - turning thinking off sends a budget of 0, and an explicit budget passes through. thinkingLevel is not used here because 2.5 rejects it. An explicit google.thinking_config in the request still wins.

Every row is transcribed from the converter that implements it and pinned by a Go test, so this table cannot drift from the running gateway without a build failing.