Skip to content
AI News

Claude Opus 5.5 API: What Changed and What Breaks

POSTED ON UPDATED ON 13 min read MixRoute

Claude Opus 5.5 API: What Changed and What Breaks
Claude Opus 5.5 API: What Changed and What Breaks

Claude Opus 5.5 (claude-opus-5-5, released September 22, 2026) costs $4 per million input tokens and $20 per million output tokens, down from $5 and $25 on Opus 4.8, and it rejects requests that older Opus models accept. Thinking can no longer be disabled, a forced tool_choice returns a 400, and the older computer use tool is refused on the Claude API. The default effort is now medium. If you are moving from Opus 4.8, change the model ID, drop the thinking field, set effort yourself, and read response blocks by type. Details are in Anthropic’s launch post and its What’s new page.

Which requests return a 400 on Opus 5.5

Four things that Opus 4.8 accepts now fail on Opus 5.5 with an HTTP 400 invalid_request_error: turning thinking off, forcing a tool call, declaring the older computer use tool, and replaying thinking blocks after the conversation history changed. Two more rows in the table below were already errors on Opus 4.8, so code that runs there today passes them.

Anthropic's Claude Opus 5.5 model page paragraph listing four breaking changes: thinking can't be disabled, forced tool use returns an error, thinking blocks are tied to the model, and computer_20251124 is not accepted
Anthropic's model page names the four breaking changes and the silent change to text between tool calls. Source: Claude Platform docs, captured 2026-10-19.
Request settingOpus 4.8Opus 5.5Send instead
thinking: {"type": "disabled"}Accepted; thinking is off unless you ask for it400Omit thinking and set output_config.effort
thinking: {"type": "enabled", "budget_tokens": N}400400thinking: {"type": "adaptive"} plus effort
tool_choice of any or toolAccepted400, also on token countingauto with strict: true, or structured outputs
Non-default temperature, top_p or top_k400400Omit them
Assistant prefill400400Structured outputs or a system prompt instruction
computer_20251124 toolAccepted400 on the Claude API and Google Cloud; still works on Amazon Bedrockcomputer_toolset_20260801, no beta header

These are the messages the API returns for the first three failures, as listed on Anthropic’s What’s new page:

Code
"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

tool_choice: type "tool" and "any" are not supported for this model.

'claude-opus-5-5' does not support tool types: computer_20251124.

The fourth change does not show up in a test request. Every thinking block records which model wrote it. Opus 5.5 reads blocks from Opus 5, from earlier Opus, Sonnet and Haiku models, and, on the Claude API and Google Cloud, from Sonnet 5.5 and Haiku 5.5, but not from Fable or Mythos models. On the Claude API, only Fable 5.1 and Mythos 5.1 read Opus 5.5’s blocks. A router or fallback that moves a conversation to any other model therefore runs the later turns without the earlier reasoning, and the request still succeeds.

The 400 comes from editing history. On accounts created on or after August 31, 2026 (00:00 UTC), a request that replays a thinking block after the system prompt, the tools or an earlier message has changed returns an error. An agent that rewrites its system prompt on every step hits this as soon as it replays a thinking block. Keep the conversation append-only, and send changed instructions as mid-conversation system messages instead of edits. Because an unexpected 400 is not a transient failure, do not put it behind a retry loop; LLM API error codes covers which statuses are worth retrying.

Changes that fail without an error

Five changes leave every request succeeding while your product behaves differently, so a dashboard that watches error rates will not catch them.

  • Progress text goes quiet. The short notes the model writes between tool calls arrive as thinking blocks, not text blocks, and their text is empty at the default thinking.display of "omitted". An app that streams those notes to users shows nothing between tool calls. Set display to "updates" (beta, header thinking-display-updates-2026-08-18) to get the notes while reasoning stays hidden, or to "summarized" to get both. Render each non-empty thinking block ahead of the tool_use block it precedes.
  • Responses start with thinking blocks. Code that reads content[0].text, or treats the first streamed block as text, breaks. Select blocks by their type.
  • Thinking blocks must come back untouched. In a tool-use loop, pass each assistant message back as received, including blocks whose thinking field is empty. The API rejects edited, reordered or partly dropped blocks with a 400.
  • max_tokens now covers thinking. It is a hard limit on thinking plus response text, and thinking tokens are billed as output even when their text is not returned. At xhigh or max effort, Anthropic suggests starting at 64k.
  • Refusals are a normal response. A declined request returns HTTP 200 with stop_reason: "refusal" and a stop_details category. Opus 5.5 adds a biology classifier next to the cybersecurity one. Handle the stop reason and set up fallback, either the fallbacks parameter (beta) or your own retry. Server-side fallback does not retry a reasoning_extraction refusal.
Decision chart mapping five Opus 4.8 code patterns to Opus 5.5 fixes: omit thinking and set effort, use auto with strict tool use, select blocks by type, set thinking display, keep history append-only
Each pattern on the left either returns a 400 or silently changes behavior on Opus 5.5, and the right side names the edit.

Migrate a request from Opus 4.8

Five edits move a working Opus 4.8 request to Opus 5.5. Each one has a visible result, and Anthropic’s migration guide lists the full checklist for every starting model.

  1. Change the model to claude-opus-5-5. The ID has no date suffix, and the request now targets Opus 5.5.
  2. Delete any thinking field that disables thinking, and add output_config with an effort level. The 400 on thinking disappears.
  3. Replace a forced tool_choice with auto, set strict: true on the tool, and say in the prompt when the tool applies. Every object in a strict tool’s schema needs additionalProperties: false.
  4. Read the reply by block type instead of position, and render thinking blocks if your UI shows progress. Replies that start with a thinking block no longer break the parser, and progress text returns between tool calls.
  5. Raise max_tokens for any workload that used to run without thinking, then compare cost and latency at your chosen effort. Replies are no longer cut off because thinking used up the limit.
Code
import anthropic

client = anthropic.Anthropic()

tool = {
    "name": "get_weather",
    "description": "Get the current weather for a city",
    "input_schema": {
        "type": "object",
        "properties": {"city": {"type": "string"}},
        "required": ["city"],
        "additionalProperties": False,
    },
    "strict": True,
}

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=16000,
    output_config={"effort": "medium"},
    tools=[tool],
    tool_choice={"type": "auto"},
    messages=[
        {
            "role": "user",
            "content": "What's the weather in Paris? Use the get_weather tool.",
        }
    ],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

With auto the model decides whether to call the tool, so test how often it answers in text on your own prompts before you ship. Forcing the tool on Opus 4.8 guaranteed a tool call, and auto does not.

Claude Opus 5.5 pricing: $4 input, $20 output

Opus 5.5 lists at $4 per million input tokens and $20 per million output tokens, 20% below Opus 4.8’s $5 and $25, and cache reads fall from $0.50 to $0.20. The table compares Anthropic’s list prices per million tokens.

Opus 4.8Opus 5.5
Input$5$4
Output$25$20
Cache read$0.50$0.20
Cache write, 5 minutes$6.25$5
Cache write, 1 hour$10$8
Batch input / output$2.50 / $12.50$2 / $10
Fast mode input / output$10 / $50$8 / $40
Four cards showing Claude Opus 5.5 price changes against Opus 4.8: input down 20% to $4, output down 20% to $20, cache read down 60% to $0.20, fast mode down 20% to $8 and $40
Cache reads fall furthest, from $0.50 to $0.20 per million tokens, while input, output and fast mode each drop 20%.

Anthropic says Opus 5.5 costs 40% less than Opus 5 on typical workloads at default settings, because it also uses fewer tokens per task. Opus 5 had the same $5 and $25 price as Opus 4.8, so that saving is measured against a different baseline than the table above. For long agent loops that re-read the same prefix, the cache-read cut matters most; the prompt caching guide shows how to keep that prefix stable.

The cheaper output rate has one catch. Opus 5.5 always thinks, and thinking tokens bill as output. At $20 against $25, output can grow 25% before the same request costs more on output than it did on Opus 4.8. Take a pipeline that returned 2,000 output tokens per call with thinking off on Opus 4.8, which cost $0.05 in output. On Opus 5.5, $0.05 buys 2,500 tokens, so more than 500 tokens of thinking per call erases the saving. This is an illustration from list prices, not a measured bill. Lowering effort shrinks the thinking.

Large 25% figure: output tokens per request can grow by 25% before Claude Opus 5.5's $20 output rate costs more than Opus 4.8's $25
Because $25 divided by $20 is 1.25, thinking tokens beyond a 25% increase in output make the same request cost more on output than it did on Opus 4.8.

Context window, output limit and effort levels

Opus 5.5 keeps the 1M-token context window and the 128K synchronous output limit of recent Opus models, and effort has five levels with medium as the default. The specs below come from Anthropic’s Opus 5.5 model page.

SpecClaude Opus 5.5
Claude API model IDclaude-opus-5-5 (Amazon Bedrock: anthropic.claude-opus-5-5)
Context window1M tokens, the default, no beta header
Max output128K tokens; 300K on the Batch API with the output-300k-2026-03-24 beta header
ThinkingAdaptive, always on
Default effortmedium
Minimum cacheable prompt512 tokens
Knowledge cutoffJune 2026
RetirementNot sooner than September 22, 2027

Effort takes low, medium, high, xhigh or max in output_config.effort, and sending medium behaves exactly like omitting it. Opus 4.8 and Opus 5 defaulted to high, so a request that never set effort now runs one level lower. Anthropic’s effort guide says to run a fresh sweep on your own evals instead of carrying a setting over from an earlier model, and to leave a large max_tokens at the higher levels. Per-message effort changes, in beta, let you change the level mid-conversation without invalidating the prompt cache.

Fast mode: up to 2.5x output speed at $8 and $40

Fast mode on Opus 5.5 runs the same model at up to 2.5x the output tokens per second for $8 per million input tokens and $40 per million output tokens, which is $2 and $10 below fast mode on Opus 4.8 and Opus 5. Add "speed": "fast" to the request. Opus 5.5 needs no beta header and no access request, while fast mode on Opus 5 and Opus 4.8 is still a research preview that does.

The gain is output speed, not time to first token. A long agent run that streams a lot of text finishes sooner, and a chat reply that waits mostly on the first token barely changes. Fast mode pricing applies across the whole context window, including requests over 200k input tokens, and caching and data residency multipliers stack on top. It works on the Claude API and on Claude in Microsoft Foundry for Azure-hosted deployments. It is not available on Amazon Bedrock, Claude Platform on AWS or Google Cloud, and not with the Batch API. See Anthropic’s fast mode page for rate limits.

What changed since Opus 4.8

Opus 4.8 launched on May 28, 2026 at $5 and $25. Two releases followed: Opus 5 on July 24, 2026, with thinking on by default at the same $5 and $25, and Opus 5.5 on September 22, 2026 at $4 and $20. Opus 4.8 is now listed as a legacy model, still callable, and Anthropic’s models overview says to start with Opus 5.5 for most workloads.

Timeline of Claude Opus releases: Opus 4.8 on May 28, 2026 at $5 and $25, Opus 5 on July 24, 2026 at $5 and $25, Opus 5.5 on September 22, 2026 at $4 and $20
Opus 4.8 and Opus 5 share one price, and Opus 5.5 is the first of the three to lower it.

Beyond the breaking changes above, four differences affect a planned move:

  • Prompts of 512 tokens or more can now create cache entries, down from 1,024 tokens on Opus 4.8, with no code change.
  • Priority Tier is not supported on Opus 5.5, while Opus 4.8 keeps it. A team with a Priority Tier commitment needs a separate capacity plan.
  • Task budgets (beta) tell the model how many tokens it has for a whole agentic loop.
  • The model reads dense charts, diagrams and screenshots more precisely, so vision workarounds built for older models may be unnecessary.

The earlier version of this page, written for Opus 4.8’s launch, argued against rewiring a stack for each release. That holds for the model ID, but Opus 5.5 is the release where request fields change too. For benchmarks, cost per task and when Fable 5.1 or an open-weight model is the better pick, see GLM-5.3 vs Opus 5.5 vs Fable 5.1.

Call Claude Opus 5.5 through MixRoute

MixRoute lists Claude Opus 5.5 as claude-opus-5-5 with a 1M context window, 128K max output, and the same rates Anthropic lists: $4 input, $20 output, $0.20 cache read and $5 cache creation per million tokens. The endpoint decides which client you keep. Anthropic SDK users point base_url at https://api.mixroute.ai (no /v1) and keep client.messages.create. OpenAI SDK users point at https://api.mixroute.ai/v1 and use chat completions.

Code
import anthropic

client = anthropic.Anthropic(
    api_key="YOUR_MIXROUTE_KEY",
    base_url="https://api.mixroute.ai",
)

response = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Summarize this changelog."}],
)

for block in response.content:
    if block.type == "text":
        print(block.text)

Between Opus versions on one MixRoute key, the model string is the line that changes. claude-opus-4-8 stays in the catalog at $5 and $25, so you can keep it as a rollback while you test. The request edits in the sections above are Anthropic’s rules for Opus 5.5 and need their own tests. MixRoute’s Opus 5.5 page lists one rate and no fast-mode rate, so if speed: "fast" matters to your plan, ask MixRoute before you build on it. Rates and the full catalog are on the models page.

FAQ

How much does Claude Opus 5.5 cost? $4 per million input tokens and $20 per million output tokens, against $5 and $25 for Opus 4.8 and Opus 5. Cache reads are $0.20, 5-minute cache writes $5 and 1-hour writes $8, and the Batch API takes 50% off input and output. Fast mode is priced separately at $8 and $40. Output includes thinking tokens, so the bill depends on the effort level you set.

What is the model ID for Claude Opus 5.5? claude-opus-5-5 on the Claude API, Google Cloud, Microsoft Foundry, Claude Platform on AWS and MixRoute. On Amazon Bedrock it is anthropic.claude-opus-5-5. The ID has no date suffix, the same scheme as claude-opus-5, so there is no snapshot string to pin.

Why does my Opus 4.8 code return a 400 on Opus 5.5? Most often the request disables thinking or forces a tool with tool_choice. Read the error message: it names the rejected setting, such as "thinking.type.disabled" or tool_choice: type "tool" and "any". If neither appears, check for a computer_20251124 tool, a non-default temperature, or a thinking block replayed after you edited the system prompt.

Can I turn off thinking on Claude Opus 5.5? No. Adaptive thinking is always on, and thinking: {"type": "disabled"} returns a 400 at every effort level. Sending {"type": "adaptive"} is the same as omitting the field. To get less thinking, set a lower effort. Anthropic’s Opus 5 notes allowed disabling at high or below, so code written for Opus 5 can break here too.

Can I still set temperature on Opus 5.5? Only to its default value. Any other temperature, top_p or top_k returns a 400, and the Python SDK raises a TypeError because it does not define them. This has applied since Opus 4.7, so Opus 4.8 code already passes. Guide behavior with prompting, and do not expect temperature = 0 to give identical outputs.

What is the context window of Claude Opus 5.5? 1M tokens by default, with no beta header, and up to 128K output tokens per synchronous request. The Batch API raises output to 300K with the output-300k-2026-03-24 beta header. A context-window beta header left over from an older model has no effect, so you can remove it. Knowledge is reliable through June 2026.

Is Claude Opus 5.5 better than Opus 4.8? By Anthropic’s numbers yes, though no table compares them directly. Anthropic calls Opus 5 a step-change improvement over Opus 4.8, and its launch table puts Opus 5.5 at 66.4% on Terminal-Bench 4.0 at xhigh effort against 52.3% for Opus 5. The tbench.ai leaderboard lists 64.8% for Opus 5.5 at max effort, with a margin of 3.1 points. Test your own prompts at the effort you plan to use.

Can I use Claude Opus 5.5 through MixRoute? Yes. MixRoute lists claude-opus-5-5 at $4 input and $20 output per million tokens, on both the Anthropic-style /v1/messages endpoint and the OpenAI-compatible /v1/chat/completions endpoint. Create one key, set the matching base URL, and change the model string. The page lists no fast-mode rate, so confirm speed: "fast" with MixRoute before relying on it.

Scan to share
Scan to share
AI News Smart Routing: One Endpoint That Picks the Model For You MixRoute 9 min read AI News Cursor vs VS Code in 2026: The Honest Comparison for Developers Running AI Agents MixRoute 13 min read AI News GPT-6.1 Sol vs Claude Fable 5.1: 10x the Cost, Same Score? MixRoute 11 min read