# Anthropic API 2026-10-21: Breaking Changes and SDK 2.0

> Claude API version 2026-10-21 removes temperature, top_p and top_k, and seven SDKs plus the ant CLI get new majors. What breaks and how to upgrade.

- Author: Nitish Garg, Founder & CEO, CellCog
- Published: 2026-10-21
- Canonical (HTML): https://cellcog.ai/blog/anthropic-api-2026-10-21/
- Section: Insights / Multi-agent & AI organizations
- Publisher: CellCog (https://cellcog.ai), the AI employee platform. Blog index for agents: https://cellcog.ai/blog/llms.txt

## Key points

- Anthropic released Claude API version 2026-10-21 on October 21, 2026, the successor to 2023-06-01.
- Requests on 2026-10-21 that send temperature, top_p or top_k return a 400 error, even at the default value.
- Seven SDKs and the ant CLI got new major versions that send 2026-10-21 by default, among them Python 2.0.0 and TypeScript 1.0.0.
- The new SDKs send your API key as Authorization: Bearer instead of X-Api-Key, which can break proxies and gateways.
- From these versions the SDKs and the CLI are licensed under Apache 2.0 instead of MIT.

## At a glance

- **What changed?** A new Claude API version, 2026-10-21, with three Messages API breaking changes and renamed Admin API fields, plus new major SDK versions that send it by default.
- **Who has to act?** Anyone upgrading to the new SDKs, anyone sending temperature, top_p or top_k, and anyone running a proxy that reads the X-Api-Key header.
- **Do existing integrations break today?** No. Requests on 2023-06-01 and the old SDK versions keep working; the breaks apply once you move to 2026-10-21.

**Anthropic released Claude API version 2026-10-21 on October 21, 2026, together with new major versions of seven client SDKs and the `ant` CLI that send it by default.** It is not a drop-in upgrade. Requests that send `temperature`, `top_p` or `top_k` now return a 400 error, and the new SDKs change how your API key travels.

This page reads Anthropic's [release notes](https://platform.claude.com/docs/en/release-notes/overview) and its [migration guide for 2026-10-21](https://platform.claude.com/docs/en/api/migration-2026-10-21). Nothing breaks until you opt in: requests on 2023-06-01 and the current SDK versions keep working.

## What breaks in the API

*Table: Breaking changes in API version 2026-10-21 (Anthropic migration guide)*

| Change | Affects you if | What to do |
|---|---|---|
| Sampling parameters removed | You send `temperature`, `top_p` or `top_k` in Messages or Batch requests | Remove them; requests sample at the defaults, including a `temperature` of 1.0 |
| Documents in assistant turns rejected | You place a `document` block directly in an `assistant` message | Send documents in `user` messages |
| Citations in user turns rejected | You send `text` blocks with non-empty `citations` in `user` messages | Remove the citations from those blocks |
| Old field names dropped | You read `roles`, `group_id`, `name`, `group_type`, `workspace_id`, `actor.email` or `summaries` from the Admin or Analytics API | Read `role_ids`, `rbac_group_id`, `display_name`, `group.type`, `scope`, `actor.email_address` and `data` |

The sampling change is the one most code will hit. The guide says a request with any of the three parameters fails "even at the parameter's default value", so a hard-coded `temperature=1` breaks too. Models that already accept only the defaults, Claude 4.7 and later, sample as before. On a model like Claude Sonnet 4.6, code that lowered `temperature` for steadier output loses that effect.

![Animation: one request with temperature 0.2 returns 200 on API version 2023-06-01 and 400 on 2026-10-21; with the temperature line struck out it returns 200, labelled samples at the default](https://cellcog.ai/blog/media/anthropic-api-2026-10-21/anth-two-versions.svg)
*The same request: 200 on 2023-06-01, 400 on 2026-10-21, 200 again without temperature*

On Amazon Bedrock, 2026-10-21 works only for Claude 4.7 and later. Teams calling older models there stay on their current SDK.

## The new SDK versions

*Table: SDK and CLI versions that send 2026-10-21 by default*

| Package | New version | Note |
|---|---|---|
| Python `anthropic` | 2.0.0 | One credential per client |
| TypeScript `@anthropic-ai/sdk` | 1.0.0 | Move the Bedrock, Vertex and Foundry packages to v1 too |
| C# `Anthropic` | 13.0.0 | |
| Go | 2.0.0 | Module path ends in `/v2` |
| Java `anthropic-java` | 3.0.0 | |
| PHP `anthropic-ai/sdk` | 1.0.0 | `composer require`, not `composer update` |
| Ruby `anthropic` | 2.0.0 | |
| `ant` CLI | 2.0.0 | Go install path ends in `/v2` |

These majors also carry changes that do not depend on the API version:

- **The key moves to a Bearer header.** The SDKs send `Authorization: Bearer <key>` instead of `X-Api-Key`. A proxy or gateway that reads `X-Api-Key` stops seeing the key. "The Claude API accepts a key in either header, so a program that talks to the API directly needs no change."
- **One credential per client.** In Python, passing both `api_key` and `auth_token` now raises `ValueError`; v1 sent both.
- **Text Completions is gone** from the TypeScript, Go, Java and Ruby SDKs and the CLI.
- **The license changes.** The new versions are Apache 2.0. "Earlier versions remain under the MIT License."
- **A quiet Go trap.** Installing the CLI from the old module path gives you v1 without complaint: "The old path keeps installing the latest v1 release, with no error or warning."

![Animation: a request carrying Authorization Bearer stops at a gateway that reads X-Api-Key and is blocked; the gateway switches to reading Authorization and the request reaches the Claude API](https://cellcog.ai/blog/media/anthropic-api-2026-10-21/anth-proxy-header.svg)
*The new SDK sends a Bearer header; a gateway reading X-Api-Key blocks it*

## Two days of platform changes

The day before, Anthropic added [user profiles](https://platform.claude.com/docs/en/manage-claude/user-profiles), so a platform that resells API access can tag each request with its end customer and a safety action lands on that customer instead of the whole organization. It also opened organization webhooks in beta that fire when one of those profiles is restricted or banned, and moved inference hooks out of beta for Claude Enterprise.

## How to upgrade without surprises

1. Search your code for `temperature`, `top_p` and `top_k` in Claude calls, including Message Batches, and delete them.
2. Check any proxy, gateway or logging layer that reads `X-Api-Key`.
3. Find code that reads the renamed Admin API fields, especially `workspace_id` on API keys, which becomes `scope`.
4. Bump the SDK to the new major and run your tests against 2026-10-21. Anthropic's advice on order: "Release the upgrade together with your fixes from the next step."

## What it means for teams running agents

Agent stacks are where the sampling change will surface first, because temperature settings tend to live in config files nobody has opened in months. The safe move is to pin the current SDK major, fix the four items above in one branch, and upgrade once. The license switch matters only if you track dependency licenses; the code does not change.

## What to watch

- Whether Anthropic sets an end date for API version 2023-06-01.
- How the major frameworks and gateways handle the Bearer header switch.
- More endpoints for user profiles as resellers adopt them.

## FAQ

**What is Claude API version 2026-10-21?**

It is the new version of Anthropic's Claude API, released October 21, 2026. You opt in by setting the anthropic-version header or by upgrading to the new major SDK versions.

**Does temperature still work in the Claude API?**

Not on 2026-10-21: sending temperature, top_p or top_k returns a 400 error, even at the default. Requests sample at the defaults, including a temperature of 1.0. Requests on 2023-06-01 are unchanged.

**Which Anthropic SDK versions use API version 2026-10-21?**

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 the ant CLI 2.0.0.

**Why did my proxy break after upgrading the Anthropic SDK?**

The new SDKs send the key as Authorization: Bearer instead of X-Api-Key. A gateway that reads X-Api-Key must read Authorization, or you can send the key in X-Api-Key yourself.

**Can an AI employee handle this upgrade?**

A CellCog AI software engineer can find every place your code sends sampling parameters or reads renamed fields, prepare the SDK upgrade and test it, and every deploy waits for your approval.

## Related

- [Claude Cut OpenSSH's Attack Surface: Anthropic's Method](https://cellcog.ai/blog/anthropic-attack-surface-reduction/index.md)
- [Anatomy: The Claude Skill That Draws Machines in Code](https://cellcog.ai/blog/anatomy-claude-skill/index.md)
- [Best AI Agent Harnesses: October 2026 Rankings](https://cellcog.ai/blog/best-ai-agent-harnesses/index.md)

## The AI employee for this read

[AI Software Engineer](https://cellcog.ai/ai-employees/ai-software-engineer): I built this page. For what it covers, hire an engineer: it works in your repo behind an approval gate, so nothing reaches your world unclassified.

---

Markdown alternate of https://cellcog.ai/blog/anthropic-api-2026-10-21/. Try CellCog free, no credit card needed: https://cellcog.ai/signup
