Key takeaways
- Set output_config.effort to low, medium, high, xhigh or max; the default is medium on Claude Opus 5.5 and Haiku 5.5 and high on other supporting models.
- Effort applies to every output token, including text, tool calls and thinking, and works with or without thinking.
- Changing top-level effort between requests invalidates the prompt cache, so hold it constant or use per-message effort where supported.
To change how hard Claude works on a request, set output_config.effort to low, medium, high, xhigh or max. If you leave it out, the model's default applies: medium on Claude Opus 5.5 and Claude Haiku 5.5, and high on every other model that supports effort. This guide covers what each Claude effort level does, which models support which levels, and the one mistake that quietly raises your bill.
It is for developers using the Claude API. Everything below comes from Anthropic's effort docs and its page on steering thinking, as read on November 8, 2026.
What the effort setting does
Effort controls how many tokens Claude spends on a response. It applies to all of them: the text, the tool calls and their arguments, and the thinking when thinking is on. That means it works with or without thinking.
Anthropic calls it a behavioral signal, not a strict budget. At lower levels Claude still thinks on hard problems, only less than it would at higher levels.
How to set effort in the API
Add output_config to a Messages API request:
{
"model": "claude-opus-5-5",
"max_tokens": 4096,
"output_config": { "effort": "medium" },
"messages": [{ "role": "user", "content": "Analyze the trade-offs between microservices and monoliths" }]
}
Effort sits in output_config, not inside the thinking object. Don't pass adaptive as an effort value, because it is a thinking mode, not a level. In Managed Agents, you set effort on the agent's model object or in a session's model override instead.
Setting the model's default value gives exactly the same behavior as leaving effort out.
The five effort levels
| Level | What it does | Anthropic's suggested use |
|---|---|---|
max |
No limit on token spending | The deepest reasoning and most thorough analysis |
xhigh |
More capability for long work | Agentic and coding tasks over 30 minutes with budgets in the millions of tokens |
high |
Spends the tokens the task needs | Complex reasoning, hard coding problems, agentic tasks |
medium |
Moderate token savings | Agentic tasks balancing speed, cost and quality |
low |
Most efficient, with some capability loss | Simple tasks where speed and cost matter, such as subagents |
Not every model supports every level. max is listed for models including Claude Fable 5.1, Claude Opus 5.5, Claude Sonnet 5.5 and Claude Haiku 5.5. xhigh is listed for Fable 5.1, Opus 5.5, Sonnet 5.5 and Haiku 5.5 among others, but not for Claude Sonnet 4.6 or Opus 4.6. Anthropic's page has the full per-model list.
For Claude Fable 5.1, which supports all five, the docs say to start with high, move up to xhigh or max for the hardest coding work, and move down to medium or low for routine work once your own tests show quality holds.
How effort changes tool use
Lower effort tends to combine operations into fewer tool calls, skip the preamble and end with a short confirmation. Higher effort tends to make more calls, explain the plan first, and write fuller summaries and code comments. If an agent feels chatty or slow, effort is the first thing to check.
How effort relates to thinking
The thinking setting decides whether Claude can think in thinking blocks. Effort decides how much work goes into the whole response, which, in adaptive mode, includes how often and how deeply it thinks. At low effort Claude may skip thinking on simple problems. In a tool loop, follow-up requests that only process tool results can skip thinking at any level.
If you want less thinking, Anthropic says to lower effort before you try prompt wording. On Claude Sonnet 5.5, telling the model in the system prompt to think less does not reliably reduce thinking. For background on what thinking is, read what a reasoning model is.
The mistake that breaks prompt caching
Changing top-level effort between requests invalidates your cached prompt. The effort value is part of the rendered prompt, so a switch from medium to low in the middle of a conversation re-creates the cache, and you pay to write it again. Anthropic's own test showed cache_read_input_tokens dropping to 0 on the request after the change.
Two fixes, from the docs:
- Pick one effort level per conversation and keep it.
- On models that support it, such as Claude Fable 5.1, use the per-message effort change (a beta feature), which keeps the cache.
To learn how caching is billed, see what prompt caching is.
Set max_tokens high enough
Thinking counts toward max_tokens, so a limit sized for a short answer can cut a response off once Claude starts thinking. At high and above, set a large max_tokens. If you see stop_reason: "max_tokens", either raise the cap or lower the effort. Raise the cap if the cut-off answers needed the reasoning, and lower effort if they were over-thought.
Old thinking budgets no longer work on new models
Before effort, Claude used a fixed budget_tokens setting. Anthropic now calls that legacy: Claude 4.7 and later models return a 400 error for thinking: {type: "enabled"}. To migrate, remove budget_tokens, set thinking: {type: "adaptive"} and control depth with output_config.effort. Expect a behavior change, because with adaptive thinking Claude decides on each request whether to think at all.
Frequently asked questions
What is the default Claude effort level?
Medium on Claude Opus 5.5 and Claude Haiku 5.5, and high on the other models that support effort. Setting the default explicitly behaves the same as omitting it.
Is effort the same as a thinking budget?
No. Effort is a behavioral signal that affects all output tokens. The old budget_tokens setting is legacy, and Claude 4.7 and later reject it with a 400 error.
Does changing effort cost more?
Changing top-level effort between requests invalidates cached prompts, so the next request pays to write the cache again.
Which effort level should I start with?
Anthropic's docs say to start with the model's default and move down to medium or low for routine work once your tests show quality holds.
Sources
- EffortAnthropic
- Steering thinkingAnthropic
- Extended thinkingAnthropic