Migrating: Haiku 4.5 to Haiku 5.5
What changes
| From | To | |
|---|---|---|
| Model | Haiku 4.5 | Haiku 5.5 |
| Input / MTok | $1 | $0.10 |
| Output / MTok | $5 | $0.50 |
| Long-prompt input / output | same at any length | $0.50 / $2.50 over 100K |
| Cache read / MTok | $0.10 | $0.01 |
| Min cacheable prefix | 4,096 | 512 |
| Context window | 200K | 1M |
| Effort levels | none | low, medium, high, xhigh, max |
| Effort default | — | medium |
| Thinking | Fixed budget_tokens, off unless requested | On by default — can be disabled |
| Forced tool_choice | accepted | accepted |
Cheaper per token, priced by prompt length, and stricter about requests
This is the move Anthropic names as the default upgrade for Haiku workloads. On the rate card it
looks like a straight cut: the base rates in the table above are a fraction of Haiku 4.5's. Two
things narrow the gap. The tokenizer counts more tokens for the same text, so recount real prompts
with count_tokens before comparing invoices. And Haiku 5.5 bills by prompt length — a request
whose prompt passes the threshold pays the second rate card for all of its tokens, while Haiku 4.5
charges one price at any length. A pipeline that grows into the larger context window changes price
as well as size.
What breaks
Thinking budgets. thinking: {type: "enabled", budget_tokens: N} is rejected; send adaptive
thinking (or omit the field) and choose an effort level instead. Sampling parameters.
Non-default temperature, top_p and top_k return a 400 — the classic temperature: 0
classification route needs structured outputs or an enum-valued tool instead. Prefill. A final
assistant turn is rejected even with thinking off; end messages with a user turn. Computer use
on the Claude API and Google Cloud needs the computer toolset. History edits. Changing system,
tools or earlier messages invalidates replayed thinking blocks, so conversations must stay
append-only.
What changes without breaking
Thinking now runs by default, so responses can open with thinking blocks — read content blocks by
type, not by position, and give short-answer routes enough max_tokens for the thinking too, or
lower the effort. Thinking text comes back empty unless you ask for summaries. Refusals are new for
this line, and there is no server-side fallback for them, so handle the refusal stop reason in
your own code. On the plus side, prompts too short to cache on Haiku 4.5 now cache, and the context
window and output cap grew to the size of the larger models'.
Related
See Claude Haiku 5.5 for the full limits, Sonnet 5.5 vs Haiku 5.5 if the workload might belong a tier up, and prefill is not supported for the most common first error after switching.
Verified 2026-10-28 against claude-api skill — shared/models.md, model-migration.md + SKILL.md model table and Anthropic's pricing and model-deprecation pages (canonical: https://platform.claude.com/docs/en/about-claude/models/overview, https://platform.claude.com/docs/en/about-claude/pricing, https://platform.claude.com/docs/en/about-claude/model-deprecations).Could not confirm: None of the pages we read states a launch date, so none is shown. Forced tool_choice is accepted but skips thinking, and there is no server-side fallback when a request is refused.