The First New “Version” in Three Years Pulls Off the Temperature Knob — Claude API Drops temperature/top_p/top_k in 2026-10-21 and Bumps Every SDK to a New Generation
Anthropic adds “2026-10-21,” its first new API version since 2023. It removes temperature/top_p/top_k and ships major updates to eight SDKs at once. The old version remains, but some warn the change hurts workloads that depend on reproducibility.
Anthropic has added a new version of the Claude API, “2026-10-21” — the first since 2023-06-01. The headline isn’t a new feature but a removal. The three sampling parameters that used to tune output variability — temperature / top_p / top_k — are no longer accepted in the new version. Alongside it, the eight major-language SDKs all bumped their major versions at once, and Claude Code gained a command to help with migration. For developers this is a change that “takes away one lever for fine-grained behavior control,” and it means revisiting assumptions baked into existing apps.
Three knobs that now return 400 just by being sent
In the new version 2026-10-21, any request containing the following parameters — whether to the Messages API, the token-counting endpoint, or Message Batches — is rejected with an error (HTTP 400). Note that a request is refused even if you pass the same value as the default. Code that “just included it to be safe” will no longer run as-is.
temperature(the knob that raises or lowers output diversity)top_p(how far down the probability ranking to include candidates)top_k(the cap on the number of candidate tokens)
Beyond sampling, message-structure validation has also gotten stricter. Placing a document block directly in an assistant (model-side) message, and attaching a citation array to a text block or search-result block inside a user message, now return 400 as well. The document needs to be moved to the user side.
So how does the output behave?
When no parameters are specified, the request is processed with the built-in defaults. The default temperature is equivalent to 1.0. Newer models such as Claude 4.7 were already sampling at this default, so their behavior is unchanged. On the other hand, for models that had been used with a lowered temperature — like Claude Sonnet 4.6 — that setting no longer takes effect. Because Anthropic offers no replacement setting, the practice of “stabilizing output with a low temperature” is not available in the new version.
SDKs bump their major versions in lockstep, and auth changes too
To coincide with this version, the official SDKs all raised their major versions at once and switched their default API version to 2026-10-21. The version numbers vary by language, so when updating, don’t be surprised by the jumps.
| SDK | New major version |
|---|---|
| Python | 2.0.0 |
| TypeScript | 1.0.0 |
| Go | 2.0.0 |
| Java | 3.0.0 |
| Ruby | 2.0.0 |
| PHP | 1.0.0 |
| C# | 13.0.0 |
| CLI | 2.0.0 |
The three removed parameters are stripped from the type definitions, and the auth header has changed from the X-Api-Key scheme to the Authorization: Bearer scheme. The license has also switched to Apache 2.0. Since bumping the SDK means adopting the new version, the moment you update your dependency is the moment you migrate.
The old version stays — a migration path with no rush
The saving grace is that the old version 2023-06-01 is not deprecated and keeps working just as before. If you call the API directly, you explicitly select the new version with the anthropic-version: 2026-10-21 header, while the older SDK majors continue to point at the old version. In other words, “nothing suddenly breaks unless you bump the SDK.”
A mechanism to help with migration has also been provided. Claude Code v2.1.307 adds a /claude-api api-version command that nudges your local code toward the new API version. The same release also includes the OpenTelemetry event safety_event, which records when permission rules, auto mode, hooks, or the sandbox stop or send back a tool call, as well as a fix for a bug where HTTP MCP tool calls were sent twice on a dropped connection (retries are limited to read-only, idempotent tools).
Behind the convenience, “determinism” disappears
There’s a downside to this change that shouldn’t be overlooked. Lowering temperature to stabilize output has been widely used to secure test reproducibility and for use cases like structured-data extraction and classification where you want “the same answer every time.” Because the new version has no substitute for this, the view is emerging that apps that prioritize reproducibility will have no choice but to stay on 2023-06-01 for the time being. The direction of “leaving fine-grained control to the model’s defaults” simplifies operations, but it also means letting go of one of the tuning levers developers used to hold. Before migrating, it’s safest to determine whether your use case “can tolerate the default temperature of 1.0.”
Implications for business and development workflows
This move is less a one-off parameter removal than a sign that Anthropic has changed how it operates API versioning itself. Having stuck with a single version for more than three years, it now says it will issue dated versions more frequently going forward. The aim is to show the migration boundary — “this is the cut-off” — in advance of shipping new models, so that breaking changes can be factored in on a fixed schedule.
The practical takeaways for the development and operations side come down to three points.
- Check the version before bumping dependencies: a major SDK update comes paired with migration to the new API version. Take inventory of whether your CI or app is sending things like
temperature. - Pin the version if you need reproducibility: for processing that requires deterministic output, pinning to 2023-06-01 for now is a reasonable call.
- Build version tracking into operations: on the assumption that versions will ship frequently, design migration into your workflow as recurring work.
The worldview of “leave the model’s fine-grained behavior to the provider’s defaults, and have the app follow version switches” is gradually becoming the norm. Which of the controls you held can you let go of, and which can you not? That line is worth placing as the first point of discussion in your migration plan.
References: AlphaSignal, “Anthropic Rewrites Claude API After 3 Years, Removing Temperature Controls” / DEV Community, “Claude API 2026-10-21: What Breaks and How to Upgrade” / Claude Code official changelog (v2.1.307) / Classmethod, “Claude Code v2.1.307 Major Updates”


