Loading
Live demos

Claude Sonnet 4.5 retires on 30 November 2026

Anthropic retires claude-sonnet-4-5-20250929 on 30 November 2026 on the Claude API and recommends claude-sonnet-5-5. Changing the name isn’t enough: Sonnet 5.5 thinks by default and rejects with a 400 things Sonnet 4.5 accepted (temperature, prefill, thinking: disabled).

Checked on

claude-sonnet-4-5 Anthropic

Shutdown date: 30 November 2026

Official replacement: claude-sonnet-5-5

What changes in your code

  • Change model to claude-sonnet-5-5 (or the replacement in the table).
  • Sonnet 5.5 thinks by default when you send no thinking. To answer without thinking first, as Sonnet 4.5 did, send thinking: {"type": "between_tools"} at low, medium or high effort. {"type": "disabled"} returns a 400.
  • Set output_config.effort explicitly, and raise max_tokens if thinking is on: it counts.
  • temperature, top_p and top_k set to a non-default value return a 400: remove them.
  • Prefill (ending the conversation on an assistant message) returns a 400: use structured outputs or describe the format in the prompt.
  • Read the reply by block type (type == "text"), not by position: a thinking block can come first.

Example code

Python
import anthropic
client = anthropic.Anthropic()  # reads ANTHROPIC_API_KEY from the environment

msg = client.messages.create(
    model="claude-sonnet-5-5",                       # was: "claude-sonnet-4-5"
    max_tokens=4096,
    thinking={"type": "between_tools"},  # no up-front thinking, as before
    output_config={"effort": "medium"},
    # no temperature, top_p or top_k: they return a 400
    messages=[{"role": "user", "content": "Hello"}],
)
text = "".join(b.text for b in msg.content if b.type == "text")
Node.js
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic(); // reads ANTHROPIC_API_KEY from the environment

const msg = await client.messages.create({
  model: "claude-sonnet-5-5",                       // was: "claude-sonnet-4-5"
  max_tokens: 4096,
  thinking: { type: "between_tools" },  // no up-front thinking, as before
  output_config: { effort: "medium" },
  // no temperature, top_p or top_k: they return a 400
  messages: [{ role: "user", content: "Hello" }],
});
const text = msg.content.filter((b) => b.type === "text").map((b) => b.text).join("");

Sources: Anthropic · Model deprecations · Claude Sonnet 5.5 migration guide

We’ll email you before your model is switched off

One email 30 days before and another 7 days before the official date, with the replacement and what changes in the code. Free, no account, no marketing.

Which models does your app use?
More models (43)

Using more than one model? Paste your code into the free checker.

Open the checker

Got a whole repository? Check it at once from the terminal, with nothing to install:

npx -y github:ericc2005t/ai-model-sunset

The code, on GitHub →

Questions

Is it the same date on Amazon Bedrock or Google Cloud?
Not necessarily: Anthropic says those platforms set their own dates. Check your platform’s model table.
What about Claude Sonnet 4 or 3.7 Sonnet?
Already retired (15/06/2026 and 19/02/2026). If your code uses them, it has been failing since: the replacement is claude-sonnet-5-5 too.
What about Claude Haiku 4.5?
Still active. Anthropic says it won’t retire it before 15/10/2026 and hasn’t announced a date yet.

Rather I fix it for you? Model swap, €79; full migration, €290–490. I reply within 24 h with a fixed price.

Ask for the fix: I reply within 24 h

No calls and nothing to pay here. Tell me what your app runs on and what breaks: I reply in writing within 24 h with a fixed price and a timeline.

What you need