Claude Sonnet 4.5 Retirement (Nov 30, 2026): How to Migrate to Sonnet 5.5
claude-sonnet-4-5-20250929 on September 30, 2026, and requests to it will fail after it retires on November 30, 2026. The recommended replacement is claude-sonnet-5-5, which costs $2 input / $10 output / $0.10 cache read per million tokens, compared with $3 / $15 / $0.30 for Sonnet 4.5. Changing the model ID is not enough. Sonnet 5.5 returns 400 errors for any non-default temperature/top_p/top_k (any value at all under API version 2026-10-21), thinking budgets, assistant prefill and forced tool choice. Its tokenizer also produces about 30% more tokens for the same text, so measure cost on your own traffic.Claude Sonnet 4.5 has been the default "good and affordable" model in a lot of production stacks since it shipped on September 29, 2025. On September 30, 2026, Anthropic emailed customers to say it is being retired. The model deprecations page now lists it as Deprecated, with a retirement date of November 30, 2026 and claude-sonnet-5-5 as the recommended replacement. After that date, any request that names claude-sonnet-4-5-20250929 (or the claude-sonnet-4-5 alias that points to it) will fail.
As of October 26, 2026, that leaves about five weeks. That is enough time for a careful migration, but it does not leave room to wait until the last week. Sonnet 5.5 is not a drop-in replacement. It runs adaptive thinking by default, rejects several request shapes that Sonnet 4.5 accepted, and uses a newer tokenizer. Its per-token prices are lower. Whether your bill actually goes down depends on how many extra tokens your workload produces.
This guide covers the confirmed dates, a cost comparison with the arithmetic shown, the breaking changes that apply when you start from Sonnet 4.5, and a week-by-week plan covering audit, evals, shadow traffic and rollout. It also lists the other Claude models that are aging out, so you can plan one migration instead of two.
The timeline: what is confirmed
All dates below come from Anthropic's model deprecations page and the Sonnet 4.5 model page.
| Event | Date |
|---|---|
| Claude Sonnet 4.5 released | September 29, 2025 |
| Claude Sonnet 5.5 released | September 28, 2026 |
| Sonnet 4.5 deprecation notice sent | September 30, 2026 |
API version 2026-10-21 (sampling parameters removed) | October 21, 2026 |
| Sonnet 4.5 retired; requests fail | November 30, 2026 |
| Earliest possible Sonnet 5.5 retirement | Not sooner than September 28, 2027 |
Anthropic's stated policy is to give customers with active deployments at least 60 days' notice before a publicly released model is retired. Sonnet 4.5 is getting just over that: 61 days, from September 30 to November 30.
One platform caveat. The November 30 date applies to platforms Anthropic operates: the Claude API, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed), and Microsoft Foundry. Amazon Bedrock and Claude Models on Google Cloud (Google managed) are partner-operated and set their own retirement schedules. If you call Sonnet 4.5 through Bedrock (model ID anthropic.claude-sonnet-4-5-20250929-v1:0) or the Google-managed endpoint (claude-sonnet-4-5@20250929), check that provider's lifecycle page. Whatever the date is there, the work you need to do is the same.
Sonnet 4.5 vs Sonnet 5.5: specs and price
| Spec (as of October 2026) | Claude Sonnet 4.5 | Claude Sonnet 5.5 |
|---|---|---|
| Claude API model ID | claude-sonnet-4-5-20250929 (alias claude-sonnet-4-5) | claude-sonnet-5-5 (no date suffix) |
| Status | Deprecated, retires Nov 30, 2026 | Active (latest) |
| Context window | 200K tokens | 1M tokens, no beta header |
| Max output (sync Messages API) | 64K tokens | 128K tokens (300K on Batch API with output-300k-2026-03-24 beta) |
| Thinking | Extended (budget_tokens), off by default | Adaptive, on by default |
| Effort parameter | Not supported | low / medium / high / xhigh / max; default high |
| Reliable knowledge cutoff | Jan 2025 | Jun 2026 |
| Input | $3 / MTok | $2 / MTok |
| Output | $15 / MTok | $10 / MTok |
| 5-minute cache write | $3.75 / MTok | $2.50 / MTok |
| 1-hour cache write | $6 / MTok | $4 / MTok |
| Cache read (hit) | $0.30 / MTok (0.1x input) | $0.10 / MTok (0.05x input) |
| Batch API input / output | $1.50 / $7.50 | $1 / $5 |
| Minimum cacheable prompt | 1,024 tokens | 512 tokens |
| Tokenizer | Previous tokenizer | Newer tokenizer, about 30% more tokens for the same text |
Sources: Anthropic pricing, Sonnet 5.5 overview, Sonnet 4.5 overview. For a broader look at the new model, see our Claude Sonnet 5.5 complete guide.
The tokenizer: what "about 30% more tokens" means for cost
Anthropic's pricing page says that Claude 4.7 and later models use a newer tokenizer that "produces approximately 30% more tokens for the same text," and that the exact increase depends on content and workload shape. The Sonnet 5.5 migration guide says the same thing for this path specifically: compared with Sonnet 4.5, the same text produces about 30 percent more tokens.
Sonnet 5.5's per-token prices are about 33% lower than Sonnet 4.5's. If the same text needs about 30% more tokens, most of that discount disappears. The useful comparison is price per unit of text, expressed in old-tokenizer terms:
| Line item | Sonnet 4.5 price | Sonnet 5.5 price x 1.3 | Effective change |
|---|---|---|---|
| Input | $3.00 | $2 x 1.3 = $2.60 | about 13% cheaper |
| Output | $15.00 | $10 x 1.3 = $13.00 | about 13% cheaper |
| Cache read | $0.30 | $0.10 x 1.3 = $0.13 | about 57% cheaper |
| 5-minute cache write | $3.75 | $2.50 x 1.3 = $3.25 | about 13% cheaper |
Treat 1.3 as an estimate, not a constant. Code, JSON, non-English text and prose each tokenize differently. Run your real prompts through the token counting endpoint with both model IDs and use the ratio you actually get.
Worked example: a cache-heavy production workload
Suppose a support-automation service sends this volume to Sonnet 4.5 each month, measured with the Sonnet 4.5 tokenizer:
- 100M uncached input tokens
- 300M cache-read tokens (a large shared system prompt and knowledge base)
- 40M output tokens
On Sonnet 4.5:
- Input: 100 x $3 = $300
- Cache reads: 300 x $0.30 = $90
- Output: 40 x $15 = $600
- Total: $990/month
On Sonnet 5.5 with the 30% token inflation applied (130M input, 390M cache reads, 52M output):
- Input: 130 x $2 = $260
- Cache reads: 390 x $0.10 = $39
- Output: 52 x $10 = $520
- Total: $819/month, which is $171 (about 17%) less
If you ignored the tokenizer change, you would expect $630/month, a 36% saving. Teams that budget from the headline prices alone will be surprised by the invoice.
Thinking is the other variable. Sonnet 4.5 ran without thinking unless you asked for it. Sonnet 5.5 runs adaptive thinking by default at high effort, and thinking tokens are billed as output tokens. In this example, the $171 margin covers 17.1M extra output tokens at $10/MTok. Output could therefore grow from 52M to about 69M tokens, about 33% above the tokenizer-adjusted figure, before Sonnet 5.5 costs more than Sonnet 4.5. If your workload does not need up-front reasoning, send thinking: {"type": "between_tools"} or lower the effort level (both covered below). Then measure actual output tokens during the shadow phase instead of guessing.
Two smaller cost effects also apply. Sonnet 5.5's 512-token cache minimum makes more short prompts cacheable. Images go the other way: Sonnet 5.5 uses a high-resolution tier of up to 2,576 pixels on the long edge, and Anthropic says a 2000x1500 image costs about 2.5 times as many tokens as on Sonnet 4.5. Vision-heavy pipelines should downscale before sending if they do not need the extra detail. Our guide on how prompt caching reduces AI cost covers structuring prompts so that more of them land in the cache.
Breaking changes when you start from Sonnet 4.5
Anthropic's Sonnet 5.5 migration guide groups changes by starting model. Sonnet 4.5 is an old enough starting point that you inherit almost every group. These are the changes that return errors or alter output.
1. Sampling parameters return a 400
On the older 2023-06-01 API version, Sonnet 5.5 returns a 400 for any non-default temperature, top_p or top_k. Anthropic's thinking docs add two traps: the top_p default on these models is 0.99, so top_p=1 fails, and so does sending temperature and top_p together, even at their defaults. Separately, API version 2026-10-21 removes the three parameters for every model. In that version, a request that sends any of them returns a 400 error, "even at the parameter's default value." The latest major SDK versions no longer include the parameters at all.
Sonnet 4.5 accepts a lowered temperature on the old 2023-06-01 API version, so many codebases set temperature=0 for "deterministic" extraction or classification. That setting has no equivalent on Sonnet 5.5. Anthropic says no other setting replaces it. If you need consistent output, use structured outputs, strict tool schemas and clearer prompts.
2. Thinking budgets return a 400
Sonnet 4.5 uses thinking: {"type": "enabled", "budget_tokens": N} for all extended thinking. Sonnet 5.5 rejects it with:
"thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.Anthropic says there is no fixed mapping from a budget to an effort level. Run evals at two or three effort levels and choose based on the results.
3. Thinking is on by default, and disabled is rejected
A Sonnet 4.5 request with no thinking field ran without thinking. The same request on Sonnet 5.5 runs adaptive thinking. To keep the old behavior, send thinking: {"type": "between_tools"}. That is the lowest setting, and it is accepted at low, medium and high effort but not at xhigh or max. Sending {"type": "disabled"} returns a 400 on Sonnet 5.5.
Three code-level consequences follow:
- Read content blocks by
type. A response can start with athinkingblock, soresponse.content[0].textbreaks. - Pass thinking blocks back unchanged in tool-use loops, including empty ones.
- Revisit
max_tokens. It now covers thinking plus visible text.
Thinking text is omitted by default on Sonnet 5.5. Blocks arrive with an empty thinking field and a signature. If your UI shows reasoning summaries, set display: "summarized", which was the default on Sonnet 4.5.
4. Assistant prefill returns a 400
Sonnet 4.5 accepts a prefilled final assistant turn, a common trick for forcing JSON (for example, starting the reply with {). Sonnet 5.5 rejects it: "This model does not support assistant message prefill. The conversation must end with a user message." Anthropic's suggested replacements:
- Output format: use structured outputs, or tools with enum fields for classification.
- Preambles: ask for a direct answer in the system prompt.
- Continuations: move them into the user message ("Your previous response was interrupted and ended with ... Continue from where you left off").
5. Forced tool choice returns a 400
Sonnet 5.5 rejects tool_choice of type any or tool, including on the token counting endpoint. Send tool_choice: {"type": "auto"}, mark the tool strict: true, and say in the prompt when the tool should be used. Strict tools need additionalProperties: false on every object. This change matters most for teams that used forced tool calls as a structured-output mechanism on Sonnet 4.5.
6. Request-shape and header cleanups
- Move
output_formattooutput_config.format.output_formatis deprecated and returns a 400 without thestructured-outputs-2025-11-13beta header. - Remove any context-window beta header (Sonnet 5.5 has 1M context natively) and
interleaved-thinking-2025-05-14. - Replace
fine-grained-tool-streaming-2025-05-14witheager_input_streaming: trueon each tool that needs it. - Computer use: Sonnet 5.5 does not accept
computer_20250124. On the Claude API, move tocomputer_toolset_20260801. On Bedrock, move tocomputer_20251124. - Escaping in tool call arguments can differ, so parse
inputwith a standard JSON parser rather than string handling.
7. Behavior changes that do not throw errors
- Text between tool calls moves into thinking blocks. Notes longer than a sentence or two come back as progress-update
thinkingblocks, which are empty at the default display. An agent UI that streams those notes will go quiet unless you changedisplayor usebetween_tools. - Refusals. Sonnet 5.5 can stop with
stop_reason: "refusal"and a category such as"cyber"or"general_harms". Anthropic notes that real-time cyber safeguards are new for code coming from Sonnet 4.5. Security-tooling teams may want to look at the Cyber Verification Program. - Append-only conversations. Each Sonnet 5.5 thinking block is signed over the conversation before it. For accounts created on or after August 31, 2026, replaying a block after editing earlier history returns a 400. If you rewrite chat history (summarizing, trimming, editing system prompts mid-thread), test this path explicitly.
Before and after: a typical Sonnet 4.5 call
Here is a common Sonnet 4.5 pattern: temperature=0 and a prefilled { to force JSON.
# BEFORE: Claude Sonnet 4.5 on API version 2023-06-01
response = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
temperature=0,
messages=[
{"role": "user", "content": "Classify this ticket: ..."},
{"role": "assistant", "content": "{"}, # prefill
],
)
text = "{" + response.content[0].text # no thinking, so block 0 is text
On Sonnet 5.5, that request would fail on two counts: the temperature and the prefill. (Thinking budgets are a separate breaking change, covered in section 2. On Sonnet 4.5 they could not be combined with temperature or prefill anyway, so they usually live in different call sites.) A working version drops the sampling parameter, replaces the prefill with a strict tool, sets thinking and effort explicitly, and reads blocks by type:
# AFTER: Claude Sonnet 5.5
classify_tool = {
"name": "record_classification",
"description": "Record the ticket category and priority.",
"input_schema": {
"type": "object",
"properties": {
"category": {"type": "string", "enum": ["billing", "bug", "how_to", "other"]},
"priority": {"type": "string", "enum": ["low", "medium", "high"]},
},
"required": ["category", "priority"],
"additionalProperties": False,
},
"strict": True,
}
response = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=4096,
thinking={"type": "between_tools"}, # no up-front thinking, like Sonnet 4.5's default
output_config={"effort": "medium"},
tools=[classify_tool],
tool_choice={"type": "auto"},
messages=[
{
"role": "user",
"content": "Classify this ticket with the record_classification tool: ...",
}
],
)
result = None
for block in response.content:
if block.type == "tool_use" and block.name == "record_classification":
result = block.input # already a parsed dict that matches the schema
Because tool_choice is auto, the model is allowed to answer without calling the tool. Handle result is None (retry or route to a fallback), and track how often it happens during evals. For reasoning-heavy tasks, use thinking={"type": "adaptive"} or omit the field, and choose an effort level from your sweep.
If you also upgrade the SDK in this change, note the version requirements. API version 2026-10-21 starts at Python anthropic 2.0.0, TypeScript @anthropic-ai/sdk 1.0.0, Go SDK v2.0.0, Java 3.0.0, Ruby 2.0.0, C# 13.0.0 and PHP 1.0.0. The new SDKs (except their Microsoft Foundry clients) also send the API key as Authorization: Bearer instead of X-Api-Key, which matters if a gateway or log filter reads that header. Anthropic's API version 2026-10-21 migration guide covers the full list. On Bedrock, 2026-10-21 is only available for Claude 4.7 and later models, so Sonnet 4.5 on Bedrock has to change models before it can move API versions.
A five-week migration plan
As of October 26, 2026, there are 35 days until November 30. The plan below fits in that window and leaves a buffer week at the end.
Week 1: audit and inventory
- Tag each call site with which breaking changes apply: sampling parameters, thinking budget, prefill, forced tool choice,
output_format, beta headers, computer use, orcontent[0].textparsing. - Record a baseline for each workload: tokens per request, latency p50/p95, error rate, and cost per successful task.
Find every caller. In Claude Console, go to Usage, click Export, and review the CSV for usage by API key and model. Then search the code for both the dated ID and the alias:
grep -rnE "claude-sonnet-4-5(-20250929)?|claude-sonnet-4-5@20250929|anthropic\.claude-sonnet-4-5" \
--include="*.py" --include="*.ts" --include="*.js" --include="*.go" \
--include="*.yaml" --include="*.yml" --include="*.json" --include="*.env*" .
Don't forget config stores, feature flags, LLM gateway routing tables, and notebooks or cron jobs that nobody owns.
Claude Code ships with a Claude API skill that can apply the mechanical parts. Anthropic documents /claude-api migrate this project to claude-sonnet-5-5 as a command that swaps the model ID, applies breaking parameter changes, replaces prefills, and produces a checklist for manual verification. It is a reasonable first pass, but review the diff the same way you would review a human's.
Week 2: code changes and offline evals
- Apply the fixes behind a model flag so that one deploy can route to either model.
- Build or refresh an eval set of 100 to 500 real, anonymized requests per workload, with expected outputs or grading rubrics.
- Run the set on Sonnet 4.5 (still available) and on Sonnet 5.5 at two or three effort levels, for example
between_tools+low,medium, and adaptive +high. Anthropic's starting points:mediumfor well-specified agentic coding and multistep tool use,mediumorlowfor chat and latency-sensitive work,highotherwise. - Recount tokens with the token counting endpoint and recompute cost per task.
Week 3: shadow traffic
Mirror a sample of production requests (5% to 20% is typical) to Sonnet 5.5 asynchronously. Do not serve those responses to users. Log both outputs, then compare them with automated graders and spot-check by hand. Look specifically for:
- Responses where the strict tool was not called (the
autotool choice edge case) refusalstop reasons that Sonnet 4.5 did not produce- Output-token growth from thinking, compared with your break-even figure
- 400 errors from history edits in long conversations
- Latency at your chosen effort level
Week 4: canary and ramp
Route live traffic to Sonnet 5.5 at 5%, then 25%, 50% and 100%, with an automatic rollback trigger on error rate or quality-score regression. Until November 30, rollback can point at Sonnet 4.5. After that it cannot, so decide your post-retirement fallback now. The realistic option is Sonnet 4.6 for a limited time (see below). For refusals only, Anthropic's server-side fallback beta (fallbacks: "default") retries "cyber" and "frontier_llm" declines on Claude Sonnet 5, on the Claude API and Claude Models on Google Cloud (Anthropic managed). It does not retry other refusal categories and does nothing for quality or error-rate regressions, so it is not a general rollback path.
Week 5 (to November 30): buffer and cleanup
Remove the Sonnet 4.5 code paths, the old beta headers and the dead config. Re-check the usage export to confirm that no keys still hit claude-sonnet-4-5-20250929. Unclaimed batch jobs and staging environments are the usual stragglers.
Is Sonnet 4.6 a reasonable stopgap?
If you cannot finish in time, claude-sonnet-4-6 is still available. It is listed as Active on the deprecations page, though the models overview now groups it with legacy models (no further updates). It uses the previous tokenizer, has the same $3/$15 pricing as Sonnet 4.5, runs without thinking by default, and accepts a non-default temperature on API version 2023-06-01. It still rejects assistant prefill, though, and accepts thinking budgets only as a deprecated setting. Its retirement floor is "not sooner than February 17, 2027." That guarantees roughly four months (no retirement before February 17, 2027, and at least 60 days' notice before any retirement), but you would still have to migrate again. Use it only if a specific workload cannot pass evals on Sonnet 5.5 in time, not as the default path.
Status of other aging Claude models (as of October 26, 2026)
If Sonnet 4.5 is in your stack, older Claude models probably are too. Here is where they stand, according to Anthropic's deprecations page:
| Model ID | Status | Retirement | Recommended replacement / notes |
|---|---|---|---|
claude-sonnet-4-5-20250929 | Deprecated (Sep 30, 2026) | November 30, 2026 | claude-sonnet-5-5 |
claude-opus-4-5-20251101 | Active | Not sooner than November 24, 2026 | No deprecation notice yet |
claude-haiku-4-5-20251001 | Active | Not sooner than October 15, 2026 | That date has passed, but no deprecation notice has been published |
claude-sonnet-4-6 | Active | Not sooner than February 17, 2027 | Previous tokenizer, $3/$15 |
claude-opus-4-1-20250805 | Retired | August 5, 2026 | claude-opus-4-8 |
claude-sonnet-4-20250514 | Retired | June 15, 2026 | claude-sonnet-5-5 |
claude-opus-4-20250514 | Retired | June 15, 2026 | claude-opus-4-8 |
How to read the "not sooner than" dates. These are floors, not scheduled retirements. Because Anthropic gives at least 60 days' notice, a model with no notice yet cannot retire within the next 60 days. If Anthropic deprecated Opus 4.5 or Haiku 4.5 today (October 26), the earliest retirement under that policy would be December 25, 2026. Neither model has an announced retirement date, so do not treat either as an emergency. Both are next in line, though. If you are already rebuilding eval harnesses for Sonnet, it costs little to run Haiku 4.5 and Opus 4.5 workloads through the same pipeline now.
- Opus 4.5 users: see our Claude Opus 5.5 migration guide. Opus 5.5 is priced at $4/$20 per MTok, compared with $5/$25 for Opus 4.5.
- Haiku 4.5 users:
claude-haiku-5-5starts at $0.10/$0.50 per MTok for prompts up to 100,000 tokens and costs more above that threshold. See Anthropic's Claude Haiku 5.5 overview. Some teams currently routing between Haiku 4.5 and Sonnet 4.5 may find that Haiku 5.5 handles part of the Sonnet traffic. Test that against your evals before relying on it.
If you are deciding between Sonnet and Opus for the replacement, our Sonnet 5.5 vs Opus 5.5 comparison covers the trade-offs.
FAQ
When exactly does Claude Sonnet 4.5 stop working?
On Anthropic-operated platforms (the Claude API, Claude Platform on AWS, Claude Models on Google Cloud (Anthropic managed), and Microsoft Foundry), requests to claude-sonnet-4-5-20250929 fail after the November 30, 2026 retirement. Amazon Bedrock and Claude Models on Google Cloud (Google managed) set their own schedules.
What is the official replacement for claude-sonnet-4-5-20250929?
claude-sonnet-5-5. It has no date suffix. Anthropic notes that from the 4.6 generation on, dateless IDs are pinned snapshots. On Bedrock the ID is anthropic.claude-sonnet-5-5.
Will my bill go down after migrating?
Probably, but by less than the price table suggests. Per-token prices fall by a third. Because the newer tokenizer produces about 30% more tokens for the same text, the effective input and output saving is closer to 13%. Cache reads become much cheaper (about 57% per unit of text). Default-on thinking can cancel the saving if you do not set between_tools or tune effort. Measure on real traffic.
Can I keep using temperature=0?
No. On API version 2023-06-01, Sonnet 5.5 returns a 400 for any non-default temperature, top_p or top_k, and API version 2026-10-21 rejects them on every model, even at default values. Use structured outputs or strict tools for consistency.
Can I just change the model string?
Only if your requests use none of the following: sampling parameters, thinking budgets, prefill, forced tool choice, output_format, legacy beta headers or computer_20250124, and your parsing does not assume the first content block is text. Even then, thinking is now on by default, which changes latency and cost.
Is Haiku 4.5 being retired too?
Not yet. Its listed floor of "not sooner than October 15, 2026" has passed, but as of October 26, 2026, Anthropic has not published a deprecation notice or retirement date. Under the 60-day notice policy, it cannot retire before late December 2026 at the earliest.
Sources
- Anthropic: Model deprecations
- Anthropic: Claude Sonnet 5.5 migration guide
- Anthropic: Migrating to API version 2026-10-21
- Anthropic: Pricing
- Anthropic: Thinking (limits and feature compatibility)
- Anthropic: Claude Sonnet 5.5 overview
- Anthropic: Claude Sonnet 4.5 overview
- Anthropic: Models overview
Five weeks is tight if your team is already at capacity. If you need extra engineering hands to finish this migration or to harden your LLM pipelines afterwards, Codersera can help you hire vetted remote developers who have shipped LLM features in production, to extend your engineering team for the migration window.