reasoning object,
and choose whether the reasoning text comes back. A model supports it when its
supported_features in GET /v1/models include reasoning. Supported effort levels and token budgets depend on the selected model and serving route.
Set the effort
effort is one of none, minimal, low, medium, high, xhigh, or max. The OpenAI-style
reasoning_effort field is accepted as an alias; if both are sent they must match.
Instead of an effort, reasoning.max_tokens sets a token budget for thinking. The two are
mutually exclusive, and a model that cannot express a budget returns 400.
Read or hide the reasoning
Models that return their reasoning put it inmessage.reasoning_content, or
delta.reasoning_content while streaming. Reasoning text availability depends on the model and provider. When reported,
usage.completion_tokens_details.reasoning_tokens counts the thinking, and it is billed as
completion tokens.
To keep the reasoning out of the response, send "reasoning": {"exclude": true} or
"include_reasoning": false. The tokens are still generated and billed.

