Skip to main content
Reasoning models think before they answer. Ask for more or less of it with the reasoning object, and choose whether the reasoning text comes back. A model supports it when its supported_features in GET /v1/models include reasoning; other models ignore the parameter.

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 in message.reasoning_content, or delta.reasoning_content while streaming. OpenAI models return no reasoning text. Either way, 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.

Chat completions

Billing