Skip to main content
Some models think out loud before answering. They work through problems step by step, then give you a final answer. This makes them stronger at math, code, and logic-heavy tasks.
See the full list of models, pricing and context limits on the Models page. Not all reasoning models support the reasoning_effort parameter. See model support for details.

Reading the output

Reasoning models return their thinking in a separate reasoning_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

The reasoning_effort parameter controls how much thinking a model does before responding. Higher effort means deeper reasoning but more tokens and latency.

Accepted values

Not all models support all values. Venice does not auto-map to the nearest supported level. Unsupported values return a 400 error from the upstream provider. For example, sending xhigh to Claude or max to GPT-5.2 will fail.When in doubt, use low, medium, or high. These are the most widely supported values.

Model support

The tables below list models with known reasoning_effort support. Other models may still generate reasoning tokens (visible in usage.completion_tokens_details.reasoning_tokens) without exposing an effort control. To check whether a specific model supports reasoning or the reasoning_effort parameter, read the supportsReasoning and supportsReasoningEffort fields on the /v1/models endpoint.

OpenAI

Anthropic

Google

xAI

Grok models (Grok 4.1 Fast, Grok Code Fast) do not support reasoning_effort. Specifying it will result in an error.

Other models

Usage

Pass reasoning_effort as a top-level parameter or use the nested reasoning.effort format:
The flat 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 (in content) and reasoning tokens (in reasoning_content). Both count toward your token budget.

Setting a token cap

Use max_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

The usage object shows how your budget was spent:
In this example, 169 tokens were spent on reasoning and 332 on the visible answer. When the cap is reached, 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 medium for general use
  • Use high or xhigh for complex tasks (math, code, analysis)
  • Use low for latency-sensitive applications
  • Use reasoning.enabled: false or set effort to none to disable reasoning
  • When in doubt, use low, medium, or high. These are the most widely supported values