reasoning_effort parameter. See model support for details.
Reading the output
Reasoning models return their thinking in a separatereasoning_content field, keeping content clean:
Some providers (Anthropic, Google, OpenAI, Qwen) return encrypted or summarized reasoning tokens. When this happens,
reasoning_content contains a "[Some reasoning content is encrypted]" placeholder.Streaming
When streaming,reasoning_content arrives in the delta before the final answer:
Reasoning effort
Thereasoning_effort parameter controls how much thinking a model does before responding. Higher effort means deeper reasoning but more tokens and latency.
Accepted values
Model support
OpenAI
Anthropic
xAI
Grok models (Grok 4.1 Fast, Grok Code Fast) do not supportreasoning_effort. Specifying it will result in an error.
Other models
Usage
Passreasoning_effort as a top-level parameter or use the nested reasoning.effort format:
"reasoning_effort": "high" is also accepted.
Disabling reasoning
There are two ways to disable reasoning:
For models that support it,
reasoning.enabled: false is the more reliable option:
Token limits
Reasoning models generate visible answer tokens (incontent) and reasoning tokens (in reasoning_content). Both count toward your token budget.
Setting a token cap
Usemax_completion_tokens to cap the total number of tokens the model generates, including reasoning:
max_tokens is also accepted and behaves the same way. If both are set, max_completion_tokens takes precedence.
To get more visible output, raise the cap, lower reasoning_effort, or disable reasoning.
Reading the breakdown
Theusage object shows how your budget was spent:
finish_reason is length.
Each model’s upper bound is available as maxCompletionTokens on the /v1/models endpoint.
Non-reasoning models
max_tokens and max_completion_tokens behave the same on non-reasoning models, capping visible output directly.
Capability discovery
Check what a model supports via the/v1/models endpoint:
Best practices
- Default to
mediumfor general use - Use
highorxhighfor complex tasks (math, code, analysis) - Use
lowfor latency-sensitive applications - Use
reasoning.enabled: falseor set effort tononeto disable reasoning - When in doubt, use
low,medium, orhigh. These are the most widely supported values