Anthropic Claude

Beginner4 min

Every model ID is a pinned snapshot, so nothing changes under a working system and improvements are an upgrade you perform. Extended thinking is not accepted on current models, and the tokenizer change at Opus 4.7 makes older capacity estimates wrong by about a quarter.

#providers

Four models, and a lifecycle you have to plan for

Claude is a family rather than a model, and the interesting part for anyone shipping on it is not the benchmark. It is that Anthropic publishes retirement dates, pins every ID to a snapshot, and changed the tokenizer mid-generation.

The Claude Messages API covers the request shape. This page is the model choice and what it commits you to.

The current lineup

ModelAPI IDContextMax outputPrice in / out per MTok
Claude Fable 5.1claude-fable-5-11M128K$10 / $50
Claude Opus 5.5claude-opus-5-51M128K$4 / $20
Claude Sonnet 5claude-sonnet-51M128K$2 / $10
Claude Haiku 4.5claude-haiku-4-5-20251001200K64K$1 / $5

Anthropic's own advice is to start with Opus 5.5, and reach for Fable 5.1 for demanding reasoning and long-horizon agentic work, or when your evals on Opus at higher effort still fall short. That last clause is the useful one: the escalation is triggered by your evaluation set, not by the task sounding hard.

All four take text and images, and do tool use and vision.

Thinking is adaptive, and effort is the dial

Fable 5.1 and Opus 5.5 have adaptive thinking always on. Sonnet 5 is adaptive. Haiku 4.5 uses extended thinking.

The distinction matters when porting code. Extended thinking is the manual mode with thinking.type: "enabled" and a budget_tokens value. It is deprecated on Opus 4.6 and Sonnet 4.6, and not accepted at all on later models. Code carrying that block forward will break rather than degrade.

What replaces it is effort, which steers how much the model thinks. Defaults differ: high on Fable 5.1 and Sonnet 5, medium on Opus 5.5, unsupported on Haiku 4.5. OpenAI's GPT and o-series makes the general argument about effort settings, and it holds here: reach for better prompting and a better evaluation set before reaching for the dial.

Every ID is a pinned snapshot

This is the detail worth internalising. From the 4.6 generation on, the dateless IDs are not aliases that drift. Each is its own pinned snapshot.

So claude-opus-5-5 does not silently become something else. That removes the class of surprise where a model changes under a working system, which LLM observability suggests recording the responding model to catch.

Two consequences in the other direction. You do not get improvements for free, so upgrading is a deliberate change with an evaluation behind it. And the ID differs by platform: Bedrock prefixes with anthropic., Google Cloud uses its own form for some models, and Microsoft Foundry defaults to the Claude API ID. Code that hardcodes one string is not portable across platforms.

Retirement dates are published

Each model carries a commitment: not sooner than a stated date. Haiku 4.5 is the nearest at October 2026, with the others through 2027.

Treat that as a planning input rather than trivia. A model you adopt today has a known floor on its life, and Anthropic's commitment covers its own platforms while Amazon Bedrock and Google Cloud set their own dates. If you run on Bedrock, Anthropic's date is not your date.

Two details that change arithmetic

The tokenizer changed. With Opus 4.7, 1M tokens became roughly 555k words. Before it, 1M tokens fitted about 750k words. Any capacity estimate carried over from an earlier model is wrong by about a quarter, in the direction that bites.

Cache reads are not uniformly 10%. Prompt cache reads cost 10% of base input price generally, 5% on Opus 5.5 and 2.5% on Fable 5.1. If you are modelling the saving from prompt caching, the rate depends on which model you are on.

Batch API requests are 50% off across the line.

Look it up rather than hardcoding it

The Models API returns max_input_tokens, max_tokens and a capabilities object for every available model.

For anything that has to survive a model change, query that instead of embedding a table like the one above in your code. This page will age; the endpoint will not.

Further reading

Knowledge check

Question 1 of 3

What does it mean that Claude IDs are pinned snapshots?

Sign in to save your progress and pick up where you left off.