Claude Haiku 5.5 vs Sonnet 5.5: Cost and Routing Guide
Claude Haiku 5.5 costs $0.10/$0.50 per million tokens, Sonnet 5.5 $2/$10. When Haiku is enough, what changes in the API, and a worked routing example.
Claude Haiku 5.5 costs $0.10 per million input tokens and $0.50 per million output tokens, and Claude Sonnet 5.5 costs $2 and $10. That makes Haiku 5.5 twenty times cheaper per token, a much wider gap than the 3x between Haiku 4.5 and Sonnet 4.6. Haiku is the right choice for short, well-defined tasks such as classification, extraction, summaries and simple chat; Sonnet earns its price on hard reasoning, complex code and long agent loops. The way to know which side each step of your app falls on is to test it on your own requests.
Prices below come from Anthropic's pricing page and were checked on November 9, 2026. Our AI API price pages are read from it every day.
Current Claude prices
| Model | Input (per 1M tokens) | Output (per 1M tokens) | Cached input |
|---|---|---|---|
| Claude Haiku 5.5 (prompts up to 100K tokens) | $0.10 | $0.50 | $0.01 |
| Claude Haiku 5.5 (prompts over 100K tokens) | $0.50 | $2.50 | |
| Claude Sonnet 5.5 | $2.00 | $10.00 | $0.10 |
| Claude Opus 5.5 | $4.00 | $20.00 | $0.20 |
| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 |
| Claude Sonnet 4.6 | $3.00 | $15.00 | $0.30 |
Two things the table does not show:
- Haiku 5.5 counts more tokens for the same text. It uses the tokenizer Anthropic introduced with Claude Opus 4.7, which counts the same text as about 30% more tokens than older models such as Haiku 4.5 and Sonnet 4.6. Sonnet 5.5 and Opus 5.5 use the same tokenizer as Haiku 5.5, so the 20x gap between them holds as written.
- The long-prompt price. Above 100,000 input tokens, Haiku 5.5 costs five times more per token. It is still far cheaper than Sonnet 5.5, but a long-document workload should be priced at the higher rate.
What changes in the API when you move to Haiku 5.5
Haiku 5.5 is not a drop-in replacement for Haiku 4.5. Anthropic's Haiku 5.5 migration guide lists the differences that break existing code:
temperature,top_pandtop_kreturn an error. Remove them from requests you send to Haiku 5.5.- It thinks by default. Thinking text comes first, and thinking tokens count toward
max_tokensand are billed as output. For short tasks, turn thinking off, or the answer can be cut off and the cost per call goes up. - A conversation that ends with an assistant turn (prefill) returns an error.
- A stop sequence made only of whitespace returns an error.
- Its safety classifiers can decline a request. Your code should handle a refusal and, where it matters, send the request to another model.
None of this is hard, but each one fails at runtime, so test the switch on real traffic before you rely on it.
Let each request use the cheapest model that's just as good
PromptUnit checks each request your app sends. When a cheaper model is just as good for that request, it uses it; otherwise your model answers. Free until it has saved you money.
Try it free →Which tasks go where
Usually fine on Haiku 5.5:
- Classification and labeling: support ticket category, sentiment, intent.
- Extraction into fixed fields: names, dates, amounts, product attributes.
- Summaries of a single document or a short thread.
- Short generation with a clear format: notification copy, product descriptions, email drafts.
- Simple question answering over text you put in the prompt.
- Reformatting: JSON reshaping, normalizing fields, converting between formats.
Usually worth Sonnet 5.5:
- Multi-step reasoning and planning, where one early mistake carries through the answer.
- Complex code changes, debugging and code review on non-trivial diffs.
- Long agent loops that call tools and must keep track of state.
- Steps that judge, verify or approve other output. A weaker judge gives confident wrong verdicts, and nobody sees it until bad output ships.
These are starting points, not rules. Two steps that look alike on paper can behave very differently on your prompts. In one app the PromptUnit team runs itself (checks up to October 12, 2026, small samples, judged by Claude Sonnet 5, the model the app asked for, so not independent), Claude Haiku 4.5 served the app's web-research step for five days with no errors and answers that passed the automatic format checks, yet it was judged worse than Sonnet 5 in 2 of 3 checks. Claude Haiku 5.5 was judged as good in only 4 of 8 checks on the same step. A research step looks like a summary, but it is not one.
A worked example
Take 1 million requests a month at 800 input and 400 output tokens each, with 65% of them simple enough for Haiku 5.5 (classification, extraction, summaries, support replies) and 35% kept on Sonnet 5.5 (code and reasoning).
Everything on Sonnet 5.5:
- Input: 800M tokens x $2 = $1,600
- Output: 400M tokens x $10 = $4,000
- Total: $5,600 a month
Split between Haiku 5.5 and Sonnet 5.5:
- Haiku 5.5 (650,000 requests): 520M input x $0.10 = $52, plus 260M output x $0.50 = $130, so $182
- Sonnet 5.5 (350,000 requests): 280M input x $2 = $560, plus 140M output x $10 = $1,400, so $1,960
- Total: $2,142 a month, about 62% less
The Sonnet share is almost all of what is left. If tests show that a step you kept on Sonnet does just as well on Haiku, that step's share of the Sonnet cost drops by 95%.
If you are coming from Haiku 4.5, the same 650,000 simple requests cost $1,820 on Haiku 4.5 (520M input x $1 plus 260M output x $5). On Haiku 5.5, after adding about 30% more tokens for its tokenizer (676M input and 338M output), they cost roughly $237, about an eighth.
How PromptUnit handles Haiku and Sonnet
PromptUnit checks each request your app sends. When a cheaper model is just as good for that request, it uses it; otherwise the request goes to the model you asked for. Setup is one change: you paste your personal PromptUnit address where your app's Anthropic address (base URL) is set. Your own Anthropic key stays in your app.
With the optional side-by-side checks turned on (off by default, paid on your own provider keys within a daily budget you set), cheaper models answer a sample of your real requests after your app already has its answer, and the model you asked for judges whether each cheaper answer is as good. A step of your app moves to a cheaper model on its own only after at least 20 judged checks with 9 in 10 as good and at least 10% lower cost, and it moves back if fewer than 7 in 10 stay as good. That is how the research step above stayed on Sonnet. The dashboard shows every request: the model asked for, the model that answered, what it cost and what it saved.
See also
- LLM Routing: How It Works
- Claude API Pricing Guide
- The Hidden Cost of Defaulting to Your Flagship Model
- Claude on AWS Bedrock vs the Anthropic API
Start free: free until PromptUnit has saved you money.