AI Integration  ·  BraivIQ AI Engineering Playbook

Claude API Migration: Treating API Version 2026-10-21 And The New SDK Majors As A Change, Not A Chore

A Claude API migration to version 2026-10-21 is a change to manage, not a dependency bump. On 21 October 2026 Anthropic released the new API version and new SDK majors that send it by default, including Python SDK 2.0.0 and TypeScript SDK 1.0.0. The release notes say the new SDKs also have breaking changes that do not depend on the API version, and are licensed under Apache 2.0 instead of MIT. This playbook gates the upgrade behind a change record with a passed evaluation, a legal review of the licence and the API version written down, in tested Python.

Published  ·  Updated  ·  9 min read  ·  By BraivIQ Engineering

Railway tracks meeting at a junction, illustrating a Claude API migration from one SDK major version to the next

Key takeaways

  • Anthropic released API version 2026-10-21 on 21 October 2026, with SDKs that send it by default: 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.
  • The release notes say the new SDKs have breaking changes that do not depend on the API version, and are licensed under Apache 2.0 instead of MIT.
  • The Python SDK reached 2.3.0 on 23 October 2026. Pin exact versions and upgrade on purpose.
  • Gate the major bump on a passed evaluation, a licence review and a change record that names the API version.

A Claude API migration has three parts that move at once this month: the API version your requests send, the SDK major version that sends it, and the licence the SDK ships under. Pin all three, test the new combination on your own cases, get legal to look at the licence change, and switch with a named approver. The gate below makes that the only path to production.

What did Anthropic release on 21 October?

Anthropic's release notes for 21 October 2026 list API version 2026-10-21 and new SDK versions that send it by default: Python SDK 2.0.0, TypeScript SDK 1.0.0, C# SDK 13.0.0, Go SDK 2.0.0, Java SDK 3.0.0, PHP SDK 1.0.0, Ruby SDK 2.0.0 and ant CLI 2.0.0. They state that the new SDK and CLI versions also have breaking changes that do not depend on the API version, and that they are licensed under Apache 2.0 instead of the MIT License. A migration guide sits alongside the notes.

The Python SDK moved quickly after that: 2.1.0 on 21 October and 2.2.0 and 2.3.0 on 23 October, according to its GitHub releases. Read the migration guide for the specific changes that affect your code before you upgrade.

What does a safe Claude API migration look like?

Claude API migration diagram: a pull request moves the anthropic SDK from 1.x to 2.x with exact pins, an SDK gate finds the major bump and requires a change record, evaluation runs golden cases on the old and new SDK, a licence review covers MIT to Apache 2.0, a canary compares outputs on a small slice, a named owner approves the full switch and a change log records API version, pins, evaluation, review and approver.
Pin the version, then change it on purpose. Tap to open full size.

How do you gate the SDK upgrade in CI?

sdk_gate.py
"""Gate an Anthropic SDK major upgrade behind a change record.

On 21 October 2026 Anthropic released API version 2026-10-21 and new SDK majors that send it by default
(Python SDK 2.0.0, TypeScript SDK 1.0.0). The release notes say the new SDKs also have breaking changes
that do not depend on the API version, and are licensed under Apache 2.0 instead of MIT.
Python 3.14 standard library only. Reads a requirements file, does not install anything.
"""
from __future__ import annotations

import re

REQUIREMENTS = """
anthropic==2.3.0
httpx2>=2.10
"""
CURRENT = {"anthropic": "1.14.0"}  # what production runs today
CHANGE = {"id": "CHG-3120", "eval_gate": "passed", "licence_review": "pending", "api_version": "2026-10-21"}


def pins(text: str) -> dict[str, str]:
    out = {}
    for line in text.splitlines():
        m = re.match(r"^([A-Za-z0-9_.-]+)==([0-9][^\s;]*)", line.strip())
        if m:
            out[m.group(1).lower()] = m.group(2)
    return out


def check(text: str) -> list[str]:
    found, problems = pins(text), []
    if "anthropic" not in found:
        problems.append("anthropic is not pinned to an exact version")
        return problems
    new_major = int(found["anthropic"].split(".")[0])
    old_major = int(CURRENT["anthropic"].split(".")[0])
    if new_major > old_major:
        if CHANGE.get("eval_gate") != "passed":
            problems.append("major upgrade without a passed evaluation")
        if CHANGE.get("licence_review") != "approved":
            problems.append("licence changed from MIT to Apache 2.0: legal review not approved")
        if CHANGE.get("api_version") != "2026-10-21":
            problems.append("change record does not name the API version the new SDK sends")
    return problems


if __name__ == "__main__":
    issues = check(REQUIREMENTS)
    print(f"{CHANGE['id']}: {'ready' if not issues else 'blocked'}")
    for i in issues:
        print("  -", i)
    CHANGE["licence_review"] = "approved"
    print(f"{CHANGE['id']} after review: {'ready' if not check(REQUIREMENTS) else 'blocked'}")

Python 3.14.4, standard library only. Run once as shown. Reads a requirements file, installs nothing.

The requirements pin anthropic 2.3.0 while production runs 1.14.0, so the gate sees a major bump. The change record shows a passed evaluation and names API version 2026-10-21, but the licence review is still pending, so the change is blocked. Once legal approves, it is ready. Run it as a required CI check on every pull request that touches dependencies.

What breaks in production?

  • **Unpinned dependencies.** A range such as anthropic>=1 picks up 2.x on the next build. Pin exact versions.
  • **Mixed versions across services.** Two services on different SDK majors send different API versions. Upgrade together or record why not.
  • **Licence surprises.** Procurement and legal track licences. A change from MIT to Apache 2.0 is usually simple to accept, but it should be recorded.
  • **Behaviour drift.** A new API version can change responses without errors. Compare outputs on golden cases, as in our LLM evaluation playbook.

What are the alternatives to upgrading now?

OptionGood fitTrade-off
Stay on 1.x for nowTeams mid-releaseYou miss new SDK features and fixes over time
Upgrade the SDK, pin the old API versionTeams that want fixes without behaviour changeCheck the migration guide for whether this is supported in your SDK
Full upgrade behind the gate, as aboveMost teamsNeeds evaluation and legal time

Our blog on AI model testing explains to non-technical colleagues why upgrades need testing, and our playbook on Claude email triage shows a tool loop that will need re-testing.

Where should a team start?

List every service that imports an Anthropic SDK, record its version, and open one change record for the move to 2026-10-21. Our AI Automation London team runs upgrades like this for the agents we build, such as the daily mismatch report, and a 14-day Proof Run includes the evaluation gate.

Frequently asked questions

What is Claude API version 2026-10-21?

It is a new Claude API version that Anthropic released on 21 October 2026, alongside new SDK majors that send it by default, including Python SDK 2.0.0 and TypeScript SDK 1.0.0.

Did the Anthropic SDK licence change?

Yes. The 21 October 2026 release notes say the new SDK and CLI versions are licensed under Apache 2.0 instead of the MIT License.

Do I have to rewrite code to upgrade to Python SDK 2.x?

Possibly. The release notes say the new SDKs have breaking changes that do not depend on the API version. Read Anthropic's migration guide and run your evaluation cases before switching.

References

  1. Anthropic, "Claude Developer Platform release notes (21 October 2026 entry)", 21 October 2026. https://platform.claude.com/docs/en/release-notes/overview
  2. Anthropic (GitHub), "anthropic-sdk-python v2.0.0 release", 21 October 2026. https://github.com/anthropics/anthropic-sdk-python/releases/tag/v2.0.0
  3. Anthropic (GitHub), "anthropic-sdk-python v2.3.0 release", 23 October 2026. https://github.com/anthropics/anthropic-sdk-python/releases/tag/v2.3.0