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. 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 in message.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.

Chat completions

Billing