How extended thinking tokens are billed and controlled with the reasoning parameter.
Some frontier models generate an internal chain of thought before producing their visible answer. These internal steps are called reasoning tokens (or "thinking tokens"). They consume compute and are billed accordingly, but they are not part of the final assistant message your users see.
When a model reasons, it works through the problem step-by-step in a scratchpad. The scratchpad content is:
reasoning string (and, on models with structured thinking, a reasoning_details array). Some models reason internally without returning the text.reasoning: { "exclude": true } to let the model reason without returning the trace (you still pay for the tokens it generates).The reasoning object controls whether and how much the model reasons before answering:
It accepts:
effort — how much of the budget goes to thinking (see the table below).max_tokens — an explicit thinking-token budget, for models that support direct allocation. Use effort or max_tokens, not both.exclude — reason internally, return no trace.enabled: true — turn reasoning on with the model's defaults.The flat reasoning_effort: "medium" scalar is also accepted as an OpenAI-style alias for reasoning.effort.
| Value | Effect |
|---|---|
"low" | Model uses a shallow reasoning pass |
"medium" | Balanced deliberation (typical default) |
"high" | Model is encouraged to reason extensively |
Some models also accept "max", "xhigh", "minimal", and "none"; unsupported values are mapped to the nearest level the model offers.
To bound the total bill, combine reasoning with max_tokens — the standard completion cap also bounds what the request can spend.
Reasoning tokens are worth the DA cost for:
For everyday Q&A or summarisation, skip reasoning — it adds latency and cost without meaningful quality gain.
Only models that support extended thinking expose reasoning tokens. The catalog marks them with the reasoning capability flag — filter with:
A model's supported_parameters list also shows whether it accepts the reasoning parameter.