Anthropic released API version 2026-10-21 on October 21 and shipped a new major of every SDK the same day: Python 2.0.0, TypeScript 1.0.0, C# 13.0.0, Go 2.0.0, Java 3.0.0, PHP 1.0.0, Ruby 2.0.0 and ant CLI 2.0.0. Release notes Two different things break, and the migration guide keeps them apart. The API version removes temperature, top_p and top_k and tightens two message rules. The SDK majors carry their own breaking changes that apply whatever API version a request sends, and they move the license from MIT to Apache 2.0. Migration guide If your dependency range is open, you may already be on the new behavior.
S5 Labs has not run this migration against production code. Everything below comes from Anthropic’s migration guide, versioning page and release notes, plus the release tags on GitHub, and we flag the places where we infer across them.
What the API version removes
Without an SDK, a request opts in by sending anthropic-version: 2026-10-21. With an SDK, you get whichever version was current when your SDK major shipped, so upgrading the package is the switch. Migration guide
The sampling parameters are the change most code will trip on. Any request on 2026-10-21 that sends temperature, top_p or top_k gets a 400, “even at the parameter’s default value”. Migration guide The versioning page says the 400 applies “on every model.” Versioning Omitted parameters sample at defaults, including temperature 1.0. Claude 4.7 and later already took only defaults, so those models behave as before. On a model that still accepts other values, Sonnet 4.6 for instance, a request that lowered temperature “loses that effect. No other setting replaces it.” Either stop sending the parameter or keep that request on 2023-06-01. Migration guide
Two message-shape rules also tighten:
- A
documentblock placed directly in anassistantmessage returns 400. A document nested inside another block, such as a web fetch tool result Claude returned, is still accepted. - A
textblock with a non-emptycitationsarray in ausermessage returns 400, whether it sits at the top level or inside asearch_result. Citations on assistant text blocks are unchanged. Migration guide
The Admin API and Enterprise Analytics endpoints rename several fields: Versioning
| Old | New |
|---|---|
roles | role_ids |
member group_id | rbac_group_id |
role name | display_name |
group_type | group.type |
API key workspace_id | scope.workspace_id (a real ID even for the Default Workspace; an all-workspaces key has no workspace_id in scope) |
actor.email | actor.email_address |
summaries | data |
The version is live on the Claude API, Claude Platform on AWS, both Claude Models on Google Cloud offerings and Microsoft Foundry. On Amazon Bedrock it applies to Claude 4.7 and later only; for older Bedrock models the guide says to “stay on the SDK version you use today” or keep sending the version you send now. Versioning Migration guide
What the SDK majors change on their own
The GitHub release notes for each new major list one line under BREAKING CHANGES, “add support for new API version 2026-10-21”, next to features and chores such as Go requiring 1.25. anthropic-sdk-python releases That line undersells it. The migration guide’s per-language sections are the real list, and most items bite even on a request pinned to 2023-06-01: Migration guide
MessageParamis now a union. In Python, calling or subclassing it raisesTypeError. In PHP,instanceof MessageParamis false, and a positionalwith()swaps role and content.- One-value enums become constants.
- The
betasargument is gone from the non-beta Models methods; Python raisesTypeErrorif you pass it. - Text Completions is removed from the TypeScript, Go, Java and Ruby SDKs and from the CLI.
- Client-side compaction is removed from the tool runner in the TypeScript and Ruby SDKs. The TypeScript option had stopped working in v0.129.0 and Ruby’s in v1.74.0; the server-side trigger needs at least 50,000 tokens.
- The API key now goes out as
Authorization: Bearer. Foundry clients still sendx-api-key; Bedrock Mantle was already on bearer. - Python raises
ValueErrorif two credential arguments are passed together, where v1 raisedTypeErrorfor fewer combinations. - The CLI drops
--api-keyand--auth-token, deprecated since v1.27.0. Its module path is nowgithub.com/anthropics/anthropic-cli/v2; the old path “keeps installing the latest v1 release, with no error or warning”. - Go needs 1.25 or later and loses
vertex.DefaultVersionandbedrock.DefaultVersion. Ruby losesVertexClient::DEFAULT_VERSIONandBedrockClient::DEFAULT_VERSION. - Composer users should run
composer require "anthropic-ai/sdk", sincecomposer updatealone stays inside the current constraint. The TypeScript platform packages must move together or “your package manager installs a second, older copy.”
The guide also has notes on C# IChatClient, on Java Optional and HttpRequest, and on environment-variable precedence, none of which we re-verified.
The 2.0.0 tags have already been superseded. Python 2.1.0 landed the same evening and 2.2.0 on October 23, and Go followed the same cadence. anthropic-sdk-python releases anthropic-sdk-go releases Both minors add features rather than breaks: 2.1.0 brings the user-profile enforcement fields, and 2.2.0 adds message threads, usage and cost reports by dimension, and tool-runner fixes. A >=2.0 pin is already moving. The Usage and Cost Analytics API that Anthropic put into beta on October 29 has its own migration notes.
Pin or upgrade
The versioning policy says that for any given API version Anthropic preserves “Existing input parameters” and “Existing output parameters”, and that it “recommends using the latest API version whenever possible”. Versioning We found no deprecation or sunset date for 2023-06-01 on the migration guide, the versioning page or the release notes, and Anthropic’s own fast-mode and user-profiles docs still show examples sending anthropic-version: 2023-06-01. That is an absence, not a promise.
What an unpinned dependency picks up depends on the package manager. As a rule, a pip requirement with no upper bound resolves to the new 2.x; an npm caret on a 0.x TypeScript version does not cross into 1.0 on its own; a Go major lives at a new module path, so nothing moves until you change the import. Check your lockfile rather than trusting that summary.
Our reading of the guide splits into three cases. Anthropic does not spell these out:
| Situation | Reasonable move |
|---|---|
Only Claude 4.7+ models, no temperature/top_p/top_k in the codebase, no documents in assistant turns | Upgrade the SDK, run the test suite, fix the type-level breaks |
| Sonnet 4.6 or older models with tuned sampling | Grep for the three parameters; either delete them and re-evaluate, or hold the SDK on its previous major and keep 2023-06-01 |
| Pre-4.7 models on Bedrock | Stay on the current SDK major, as the guide says |
Our Haiku 5.5 migration notes cover the other common source of 400s this quarter, which are model-level rather than version-level.
The license change
The guide states: “Starting with the versions under Switch to 2026-10-21, the SDK and the CLI are licensed under the Apache License, Version 2.0. Earlier versions remain under the MIT License. No code changes are needed.” For Java, “The change covers every com.anthropic artifact.” Migration guide GitHub’s license detection for the Python repository now reports Apache-2.0. anthropic-sdk-python Apache 2.0 carries an express patent grant that MIT lacks; that is general knowledge about the two licenses, and Anthropic has not given a reason. If your compliance tooling keeps an allowlist, the new majors need an entry. We did not re-verify the license files in the other SDK repositories.
Elsewhere in the release notes, October 14 to 22
Fast mode on Opus 5.5 is out of research preview
Since October 15, fast mode on Opus 5.5 needs no access request and no fast-mode-2026-02-01 header; requests still sending the header keep working. Opus 5 and Opus 4.8 stay in research preview, and on those models speed without the header returns 400. Fast mode Anthropic claims “up to 2.5x higher output tokens per second” on the same model; that is decode speed, not time to first token, and usage.speed reports fast or standard on each response. Fast mode
| Opus 5.5, per 1M tokens | Standard | Fast |
|---|---|---|
| Input | $4 | $8 |
| Output | $20 | $40 |
Opus 5 and Opus 4.8 fast mode list at $10 in and $50 out. The pricing page lists cache hits at $0.20 per million tokens (0.05x), applies the fast multiplier across the full context including requests over 200k tokens, and stacks it with the caching and data-residency multipliers. Pricing Fast mode is not available with the Batch API or Priority Tier. Fast mode It has its own rate limit, with a default Opus 5.5 limit in the Start, Build and Scale tiers, reported through six anthropic-fast-* headers; a 429 carries retry-after, the SDKs retry fast-mode 429s up to two times by default, and falling back to standard causes a cache miss. The page gives no numbers. Fast mode Fast mode runs on the Claude API including Managed Agents, on Microsoft Foundry for Azure-hosted deployments only, and since October 22 on the Anthropic-managed Google Cloud offering; the page lists nothing for Bedrock. Our Opus 5.5 pricing piece has the standard-mode arithmetic.
User profiles
Released October 20, user profiles tag requests with an end customer. Create one with POST /v1/user_profiles (not idempotent), get a uprof_ ID, and send it as the anthropic-user-profile-id header or the user_profile_id SDK argument. It works on token counting, on Batches (applied to every request in the batch) and on the OpenAI-compatible endpoint, and profiles are not billable. User profiles The reason to adopt them is enforcement scope. Without profiles, “one end customer can trigger an enforcement action that applies to your whole organization.” With them, each profile carries an enforcement_status of unrestricted, restricted or banned, and “While an action is open, Anthropic refuses some or all inference requests that carry the profile’s ID.” User profiles Bedrock and the Google-managed Google Cloud offering have no profile endpoints and check only the ID format; the Bedrock user_profile_id body field applies to Claude in Amazon Bedrock, not the older InvokeModel/Converse path. Organization webhooks under the webhooks-2026-10-07 beta fire when a restriction or ban opens or closes. Release notes No source says profiles are required, and the page does not mention the Anthropic-managed Google Cloud offering.
Claude Models on Google Cloud, Anthropic managed
The October 22 entry adds a second way to reach Claude from Google Cloud. The Google-managed path is the one Google operates as part of Google Cloud’s Agent Platform, reached with the AnthropicVertex client, :streamRawPredict endpoints, @ in pre-4.6 model IDs. The Anthropic-managed path is the “Claude API, run by Anthropic and reached through your Google Cloud project”: an AnthropicGoogleCloud client, endpoint claude.googleapis.com, location global, with US-only inference through inference_geo: "us" at 1.1x. Overview Anthropic managed
The account model is the part to read before signing up. Each project gets a new Anthropic organization, separate from any existing one including Enterprise; API keys, workspaces and Console settings do not carry over, and ZDR has to be requested again. Billing runs through Google Cloud Marketplace in Claude Consumption Units at 1 CCU = $0.01, with no separate invoice, and counts toward a Google spend commitment. Access uses claude.admin, claude.user and claude.viewer roles rather than API keys, and MCP tunnels are unavailable. Anthropic is the data processor, some supporting services such as trust and safety process data outside Google Cloud, retention matches the Claude API, CMEK uses Google Cloud KMS, and Data Access logs are off by default. Anthropic managed On Bedrock and the Google-managed offering, regional and multi-region endpoints carry a 10 percent premium over global. Opus 4 and Haiku 3.5 are retired everywhere except Google managed; Opus 4.1 and Sonnet 4 remain only on Bedrock and Google managed. Pricing
Shorter items
- October 14: OpenTelemetry export beta with SDK spans in all seven languages, and Managed Agents scheduled deployments on Claude Platform on AWS. Our Managed Agents piece has the context.
- October 15:
capabilities.thinking.types.between_toolsin the Models API; the Compliance API returns members’ Instructions for Claude and Cowork global instructions (beta, Enterprise). - October 20: Claude Tag API beta for Enterprise under
experimental-claude-tag-2026-10-21; inference hooks out of beta for Enterprise; a web fetch admin toggle that returns 400 when the tool is included while off; Managed Agents web fetch and search follow organization restrictions. Release notes
What the sources don’t say
There is no retirement date for 2023-06-01, no numeric fast-mode rate limit, and no statement of whether user profiles reach the Anthropic-managed Google Cloud offering. For a codebase on Claude 4.7 or later that never set a sampling parameter, the upgrade is a type-level cleanup and a license-allowlist entry. For anything with a tuned temperature on an older model, the decision is whether that tuning still matters, because once you upgrade there is nothing to replace it with.
