claude-sonnet-4-6 — pricing, context window and limits
The previous-generation Sonnet, now priced above both Sonnet 5 and Sonnet 5.5 per token. It keeps the older tokenizer, so identical text bills fewer tokens here — compare cost per request with count_tokens, never by sticker price alone.
Price per million tokens
| Input | $3 |
|---|---|
| Output | $15 |
| Cache write, 5-minute TTL | $3.75 |
| Cache write, 1-hour TTL | $6 |
| Cache read | $0.30 (0.1x input) |
| Batch input / output | $1.50 / $7.50 |
Limits and behaviour
| Status | Current |
|---|---|
| Context window | 1M tokens |
| Max output | 128K tokens |
| Min cacheable prefix | 1,024 tokens |
| Effort levels | low, medium, high, max |
| Effort default | high |
| Thinking | Off unless requested (adaptive) |
| Forced tool_choice | Accepted |
| Platforms | Claude API, Amazon Bedrock, Google Cloud, Microsoft Foundry |
Lifecycle
| API model name | claude-sonnet-4-6 |
|---|---|
| Retires no sooner than | 17 Feb 2027 |
| Successor | Claude Sonnet 5.5 |
The previous-generation Sonnet, now the pricier one per token
Sonnet 4.6 costs more per token than both Sonnet 5 and Sonnet 5.5 — the newer Sonnets launched
cheaper, and Sonnet 5's launch price became permanent rather than rising. That makes this the one
Sonnet migration where the sticker price points clearly toward moving. It still isn't the whole
answer, because this model keeps the older tokenizer: identical text produces fewer tokens here, so
the newer models' per-token saving is partly spent on counting more tokens. Measure a real request
on both with count_tokens before quoting a saving.
Thinking here is opt-in, not default
This model only thinks when you ask it to. Both newer Sonnets think by default, and on Sonnet 5.5
you can no longer switch thinking off with disabled at all. Code that treats these generations as
interchangeable — a router, a fallback, a shared request builder — has to branch on that
difference rather than assume one default across all three.
Still a reasonable choice for a tuned workload
For a workload already tuned and performing well here, there's no deadline forcing a move: the model remains active, and its earliest possible retirement is shown in the lifecycle table above. A deliberate migration tested against real traffic beats a rushed one.
Related
See migrating: Sonnet 4.6 to Sonnet 5.5 for the direct move, and what actually changed from Sonnet 4.6 to Sonnet 5 for the tokenizer and thinking-default changes in practical terms.
Verified 2026-09-30 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).
Verified 2026-10-28 against Anthropic's model-deprecations status table and pricing page (canonical: https://platform.claude.com/docs/en/about-claude/model-deprecations, https://platform.claude.com/docs/en/about-claude/pricing).Could not confirm: These dates apply to 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) keep their own retirement schedules, which we do not track.