Claude APIに新バージョン「2026-10-21」 - temperature・top_p・top_kの送信が400エラーに、各SDKもメジャー更新
Anthropicが2026年10月21日、Claude APIの新しいAPIバージョン2026-10-21と、それを既定で送る各SDKのメジャー版を公開した。temperature・top_p・top_kは全モデルで400エラーになり、SDKはAPIキーをAuthorizationヘッダーで送るように変わる。ライセンスはMITからApache 2.0になった。
Anthropicは2026年10月21日、Claude APIの新しいAPIバージョン 2026-10-21 を公開した1。あわせて、このバージョンを既定で送る各SDKとコマンドラインツール ant の新しいメジャー版も出している。対象は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、ant CLI 2.0.0だ。
公式のバージョン履歴に並ぶのは、2023-01-01(初版)、2023-06-01、そして今回の 2026-10-21 の3つで、移行ガイドは 2023-06-01 からの書き換えを前提にしている23。新バージョンには破壊的変更があり、SDKとCLIの側にもAPIバージョンとは関係のない破壊的変更が入った。SDKとCLIのライセンスはMITからApache 2.0に変わる1。
新バージョンで400エラーになるリクエスト
Messages APIでは3つの書き方がエラーになる2。この変更はMessages APIのほか、トークンカウントと、2026-10-21 で作成したMessage Batchの各リクエストにも適用される。
temperature・top_p・top_kを送ると400エラー。既定値と同じ値を送った場合もエラーになる。バージョンのページは「すべてのモデルで」400になると明記している3- assistantメッセージの直下に置いた
documentブロックは400エラー。文書はuserメッセージで送る。Claudeが返したweb fetchツールの結果のように、別のブロックの中に入った文書は引き続き受け付けられる - userメッセージの
textブロックに空でないcitationsを付けると400エラー。search_resultブロックの中に入れた場合も同じ。assistantメッセージ側の引用や、文書・検索結果に付ける"citations": {"enabled": true}の設定は従来どおり使える
管理系のAPIでは、名前を変えたフィールドの旧名が返らなくなる。Admin APIではRBACグループの roles が role_ids に、レート制限の group_type が group.type に変わるなどし、Claude Enterprise Analytics APIでは利用者別レポートの actor.email が actor.email_address になる。注意が要るのはAPIキーの workspace_id で、これまではDefault Workspaceに紐づくキーでも null が返っていた。新バージョンでは代わりに scope.workspace_id が実際のワークスペースIDを返すため、null をDefault Workspaceの印として扱っていたコードは、Default WorkspaceのIDと比べる形に書き換える必要がある。
temperatureを下げて使っていたコードへの影響
サンプリングの3パラメータを外すと、リクエストは既定値(temperature は1.0)でサンプリングされる。これは 2023-06-01 でパラメータを省略したときと同じ挙動だと移行ガイドは説明している2。
影響の大きさは使っているモデルで分かれる。Claude 4.7以降のモデルは既定値しか受け付けないため、パラメータを外しても挙動は変わらない。一方、Claude Sonnet 4.6のように別の値を受け付けるモデルで、出力をそろえる目的で temperature を下げていた場合、その効果はなくなる。ガイドは、これに代わる設定はないと書いている。既定値以外の値に頼っているリクエストは、パラメータを送るのをやめるか、そのリクエストだけ 2023-06-01 に残すかを選ぶことになる。
10月7日に公開されたClaude Haiku 5.5を扱った記事では、Haiku 5.5で temperature が1以外、top_p が0.99以外、top_k は値を問わず400エラーになると紹介した。そこではモデルごとの制約だったものが、今回はAPIバージョン単位で、値を問わずパラメータそのものが受け付けられなくなった。temperatureやtop-pが何を調整するパラメータなのかは、用語集の温度(temperature)・top-pとはで解説している。
SDKを上げるときに変わること
SDKを使っている場合、リクエストに付くAPIバージョンは、そのSDKのメジャー版が出た時点のバージョンになる2。旧版のSDKはどのリクエストにも 2023-06-01 を付けていた。上に挙げた新しいメジャー版からは、Amazon BedrockとGoogle Cloud向けのクライアントも含めて 2026-10-21 を送る。SDKを使わずに呼んでいる場合は、anthropic-version ヘッダーを 2026-10-21 に書き換えて新バージョンに移る。
SDK側の変更のうち、アプリのコードの外にまで影響しうるのが認証ヘッダーだ。新しいSDKとCLIは、APIキーを X-Api-Key ヘッダーではなく Authorization: Bearer <key> で送る。Claude APIはどちらのヘッダーでもキーを受け付けるので、APIを直接呼んでいるプログラムに変更は要らない。ただし、間に置いたプロキシやゲートウェイが X-Api-Key を読み書きしている場合は、Authorization を扱うように変えるか、SDKからキーを X-Api-Key で送るように設定する必要がある。Microsoft Foundry向けのクライアントは、引き続き x-api-key でキーを送る。
これに伴い、1つのクライアントが持てる認証情報は1つになった。Python SDKでは、APIキーと認証トークンをコンストラクタに両方渡すと ValueError になる。旧版は両方を別々のヘッダーで送っていた。
そのほか、移行ガイドが挙げる主な変更は次のとおりだ。
- 型の
MessageParamが、user・assistant・systemの役割ごとの型に分かれた。送るリクエストの中身は変わらず、Pythonでメッセージを辞書で書いているコードは変更不要 - 旧来のText Completions APIが、TypeScript・Go・Java・RubyのSDKとCLIから削除された
- TypeScriptとRubyのtool runnerから、クライアント側のコンパクション(会話の要約)が削除された。API内で要約するサーバー側のコンパクションに置き換える
- TypeScriptでBedrock・Vertex・Foundry・AWS・Google Cloud向けのパッケージを使っている場合、それらも同時にv1へ上げる。上げないと、パッケージマネージャーが古い
@anthropic-ai/sdkをもう1つ入れてしまう - GoのSDKはモジュールパスが
/v2で終わる形に変わり、import文の書き換えが要る。CLIをgo installで入れている場合、旧パスのままでは警告なしにv1の最新版が入り続ける - PHPは
composer updateだけでは新しいメジャー版に上がらない - CLIの
--api-keyと--auth-tokenフラグが削除された。コマンドラインに書いた値はシェルの履歴やプロセス一覧から見えてしまうためで、環境変数や--api-key-stdinを使う
APIキーの種類については、Claude Consoleで個人キーとサービスアカウントキーが作れるようになったときの記事で紹介した。
Bedrockの旧モデルとライセンスの扱い
Amazon Bedrockでは、2026-10-21 を使えるのはClaude 4.7以降のモデルに限られる2。BedrockでOpus 4.6以前のモデルを呼んでいる場合、移行ガイドは今のSDKのバージョンにとどまるか、APIバージョンを自分で指定しているなら今送っているバージョンを送り続けるよう案内している。その呼び出しを 2026-10-21 に移すには、先にモデルをClaude 4.7以降に切り替える必要がある。Claude API本体、Claude Platform on AWS、Microsoft Foundry、Google Cloudでは、新バージョンが使える3。
ライセンスは、今回のバージョンからSDKとCLIがApache License 2.0になり、それ以前のバージョンはMITライセンスのまま残る2。コードの変更は不要だが、依存ライブラリのライセンスを台帳で管理している組織は、その記載を更新することになる。
旧バージョン 2023-06-01 の位置づけ
バージョンのページは、できる限り最新のAPIバージョンを使うよう勧め、以前のバージョンは非推奨(deprecated)とみなされ、新規ユーザーには提供されない場合があると書いている3。一方で、2023-06-01 の提供を終える日付は、確認した範囲の公式ドキュメントには示されていない。移行ガイド自身も、既定値以外のtemperatureに頼るリクエストを 2023-06-01 に残す選択肢を挙げている2。
実務上は、SDKの更新を依存ライブラリの定期更新に紛れ込ませないことが大事になる。メジャー版への更新で、temperature を指定しているリクエストは400エラーになり、X-Api-Key を前提にしたプロキシでは認証の扱いが変わる。移行ガイドも、SDKの更新とコードの修正を同じリリースに含め、2026-10-21 でテストしてから出すよう求めている。また、Claude Sonnet 4.5は11月30日にClaude APIから退役する予定だ。モデルの移行とSDKのメジャー更新が重なる場合は、どちらの変更でどのリクエストが影響を受けるのかを分けて確認しておくと、原因の切り分けがしやすい。
Sources
- Claude Platform release notes - Anthropic公式リリースノート(2026年10月21日の項)
- Migrating to API version 2026-10-21 - Anthropic公式ドキュメント(移行ガイド)
- Versions - Anthropic公式ドキュメント(APIバージョンの一覧)
この記事は役に立ちましたか?
ありがとうございます!
受け取りました。ありがとうございます!