Anthropic released Claude API version 2026-10-21 on 21 October, its first new API version since 2023-06-01. The old version is not going away: the ClaudeDevs account says “2023-06-01 is not deprecated,” and that Anthropic plans to release versions more often so developers can handle breaking changes before a new model forces them.
The catch is that you may move to the new version without meaning to. The new major SDKs send anthropic-version: 2026-10-21 by default: Python 2.0.0, TypeScript 1.0.0, Go 2.0.0, Java 3.0.0, C# 13.0.0, PHP 1.0.0, Ruby 2.0.0 and the ant CLI 2.0.0. An unpinned dependency bump is a migration.
What breaks in the Messages API
Per the versions page and migration guide, under 2026-10-21:
temperature,top_pandtop_kare removed. Sending any of them returns a 400 error on every model, “even at the parameter’s default value”. The new SDKs no longer have the fields.- A
documentblock placed directly in anassistantmessage returns a 400. Send documents in user messages. - A
textblock with a non-emptycitationsarray in ausermessage returns a 400. Citations in assistant messages are still accepted.
The same rules apply to token counting and to each request in a Message Batch created with the new version.
The sampling change matters most for older models. Anthropic says requests now sample with the defaults, including a temperature of 1.0. Claude 4.7 and later models already accept only the defaults, so they behave as before. On a model such as Claude Sonnet 4.6, a request that lowered temperature for steadier output loses that effect, and “no other setting replaces it”. Anthropic’s advice is to drop the parameter or keep that request on 2023-06-01.
Other changes
- Admin and Analytics APIs drop old field names:
rolesbecomesrole_ids,group_typebecomesgroup.type, RBAC rolenamebecomesdisplay_name, and API keys loseworkspace_idin favour ofscope.workspace_id. Code that treated a nullworkspace_idas the Default Workspace needs a rewrite. - SDK code changes: in Python,
MessageParambecomes a union of per-role types, so callingMessageParam(...)raises aTypeError. Go moves to a/v2module path. - License: the new SDK and CLI versions are Apache 2.0 instead of MIT. Earlier versions stay MIT.
- Bedrock:
2026-10-21works only with Claude 4.7 and later models there. Older Bedrock models should stay on today’s SDK.
How to move safely
- Pin your current SDK major version now.
- Search your code for
temperature,top_pandtop_k, documents in assistant turns, and citations in user turns. - Upgrade the SDK and test against the new version before release, as the guide recommends. If you call the API directly, set the header yourself.

The Campfire
No commentsNobody has pulled up a log by this one yet. Be the first to say what you make of it.
Held for the desk. It appears after a look.