Claude Opus 5は2026年7月24日にリリースされ、Anthropicは現在、開発者に対してまずこれを推奨しています。ドキュメントには、どのモデルを使用すべきか不明な場合はClaude Opus 5から始めるように記載されています。APIモデルIDはclaude-opus-5という正確な文字列で、日付サフィックスはありません。
このガイドでは、キーの取得、初回リクエストの送信、ストリーミング、ツール利用、適応型思考、effortパラメータ、プロンプトキャッシュが機能していることを確認するためのusageオブジェクトの読み取りまで、全体的な手順を説明します。ここでのすべてのリクエストは、JSONの入力とJSONの出力によるプレーンなHTTPであるため、アプリケーションコードに組み込む前にApidogで構築およびデバッグできます。
Opus 4.8からの2つの変更点が最初の呼び出しで問題となる可能性があるため、他の何よりも先に説明します。既存のサービスを移行するのではなく、新規に始める場合は、このガイドと一緒にOpus 4.8からOpus 5への完全な移行ガイドをお読みください。
初回呼び出しの前に:2つの破壊的変更
1. 思考機能がデフォルトでオンになりました。 Opus 4.8では、thinkingフィールドがないリクエストは思考を一切行わずに実行されていました。Opus 5では、同じリクエストが適応型思考で実行されます。max_tokensは、思考トークンと応答トークンの合計に対する厳密な上限であるため、動作中の4.8統合からコピーしたリクエストボディは、途中で応答が途切れる可能性があります。max_tokensが予想される出力長に合わせて厳密に調整されていた場合は、それを増やしてください。
2. 思考機能を無効にすると、effortレベルが制限されます。 thinking: {"type": "disabled"}をxhighまたはmaxのeffortと共に送信すると、400が返されます。Anthropicはこれをリクエストごとに適用するため、静かに低下するのではなく、すぐに失敗します。解決策はどちらかを選ぶことです。思考機能をオンにしてコストを制御するためにeffortを下げるか、思考機能を無効にしたままeffortをhighに制限するかです。
Anthropic自身の推奨は最初のオプションです。思考機能を無効にすると、Opus 5はツール呼び出しをプレーンテキストとして記述することがあり(実行されず、漏洩したテキストがエージェントループの後のターンを汚染します)、また、<thinking>タグが目に見える出力に漏洩することもあります。思考機能をオンにしてeffortを下げると、これらの両方を回避できます。
両方の変更はAnthropicのモデル移行ガイドに記載されています。
ステップ1:APIキーを取得する
Claude Developer Platformにサインインし、組織設定のAPIキーセクションを開いてキーを作成します。一度コピーしたら、後で読み取ることはできません。
コードに直接貼り付けるのではなく、環境変数に保存してください。
export ANTHROPIC_API_KEY="sk-ant-..."
GUIクライアントでテストしている場合は、そこでもキーを環境変数に設定します。Apidogでは、ANTHROPIC_API_KEY変数を持つ環境(Local、Staging、Production)を作成し、ヘッダーで{{ANTHROPIC_API_KEY}}を参照することを意味します。保存されたリクエストはチームと共有可能であり、シークレットがコレクションエクスポートに含められることはありません。

リクエストを成功させるためには、請求クレジットを追加する必要もあります。Opus 5の料金は、入力トークン100万あたり5ドル、出力トークン100万あたり25ドルで、Opus 4.8と同じです。完全な料金内訳には、キャッシング、バッチ、高速モードの料金も含まれています。
ステップ2:初回リクエストを送信する
エンドポイントはPOST https://api.anthropic.com/v1/messagesです。重要なヘッダーは3つあります:あなたのキー、APIバージョン、そしてコンテンツタイプです。
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-5",
"max_tokens": 4096,
"messages": [
{"role": "user", "content": "Explain the difference between a 429 and a 529 from an API perspective."}
]
}'
max_tokensの値に注目してください。4096は、ほとんどのスタータースニペットで見られる1024から意図的に引き上げられた値です。これは、思考トークンが同じ予算から消費されるようになったためです。
公式SDKを通じたPythonでの同等なコード:
import os
from anthropic import Anthropic
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
message = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
messages=[
{"role": "user", "content": "Explain the difference between a 429 and a 529 from an API perspective."}
],
)
for block in message.content:
if block.type == "text":
print(block.text)
message.contentに対するこのループは装飾ではありません。応答のcontentは型付きブロックの配列であり、思考機能がオンの場合、textブロックの前にthinkingブロックが表示されるようになります。content[0].textが答えであると想定していたコードはOpus 5で動作しなくなります。これは最も一般的なアップグレード失敗であり、リクエストが200を返すため見逃しやすいため注意が必要です。
構築中に念頭に置いておくべきいくつかの仕様:Opus 5は、デフォルトでも最大でも1Mトークンのコンテキストウィンドウを持ち(ベータヘッダーなし、長コンテキストの追加料金なし)、Messages APIでは128kの最大出力を持ち、2026年5月の知識カットオフがあります。モデル概要には完全な表があり、弊社のOpus 5解説では残りの仕様シートをカバーしています。
ステップ3:適応型思考を扱う
適応型思考とは、モデルがリクエストにどれだけの内部推論が必要かを判断することを意味します。トークン予算を設定する必要はありません。次のステップで説明する「effort」によって制御します。
コードで処理する必要があること:
- ブロックをタイプ別に解析する。目に見える回答には
block.type == "text"でフィルタリングし、推論をログに記録したい場合はblock.type == "thinking"でフィルタリングします。 - 思考ブロックをそのまま送信し直す。複数ターンやツール利用のループでは、アシスタントのコンテンツ配列全体をメッセージ履歴に追加し、テキストから再構築しないでください。会話の途中でブロックを削除すると、ループの品質が低下します。
- 両方に
max_tokensを予算化する。思考と応答は同じ上限を共有します。切り捨てはstop_reason: "max_tokens"として現れるため、テストでそのフィールドをアサートしてください。
思考を完全にオフにするには:
{
"model": "claude-opus-5",
"max_tokens": 4096,
"thinking": {"type": "disabled"},
"output_config": {"effort": "high"},
"messages": [{"role": "user", "content": "Return only the HTTP status code."}]
}
このリクエストでは、effortが意図的にhighに制限されています。これをxhighに上げると、上記で説明した400エラーが発生します。
ステップ4:output_config.effortでコストを制御する
effortフィールドはoutput_configの下にあり、low、medium、high、xhigh、またはmaxを取ります。デフォルトはhighです。これは、主流の報道でコストと能力を切り替えるトグルとして説明されたパラメータです。APIでは、リクエストボディ内の単一の文字列です。
curl https://api.anthropic.com/v1/messages \
--header "x-api-key: $ANTHROPIC_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data '{
"model": "claude-opus-5",
"max_tokens": 65536,
"output_config": {"effort": "xhigh"},
"messages": [
{"role": "user", "content": "Refactor this handler to stream responses and keep backpressure."}
]
}'
調整する前に知っておくべき3つのこと。
レベルが再調整されています。 Anthropicは、Opus 4.8のeffort設定をそのまま引き継がないように明示的に述べています。Opus 5では、lowとmediumが以前のOpusモデルよりも大幅に強力になりました。つまり、以前highで実行していたワークロードが、より安価で問題なく実行できる可能性があります。マッピングを信用するのではなく、自身の評価に対して新たにスイープを実行してください。
コーディングやエージェント作業では、引き続きxhighが推奨される開始点です。 また、max_tokensが最も重要となる点でもあります。十分な余裕を与えてください。長いエージェントのターンには64kが妥当な開始上限であり、そのため上記のコードスニペットでは65536を使用しています。
effortを下げると、目に見える長さではなく、思考が削減されます。 Opus 5のデフォルトの応答や書面による成果物は、Opus 4.8よりも長くなりがちです。より短い出力を求める場合は、プロンプトでそれを指定してください。lowに下げても、それだけでは短くなりません。effortパラメータの詳細解説では、完全なスイープ手法を説明しています。
ステップ5:応答をストリーミングする
"stream": trueを追加すると、エンドポイントは単一のJSONボディではなく、サーバー送信イベントを返します。
with client.messages.stream(
model="claude-opus-5",
max_tokens=4096,
messages=[{"role": "user", "content": "Draft a retry policy for a flaky upstream."}],
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
final = stream.get_final_message()
print("\n\nusage:", final.usage)
生のSSEシーケンスは、message_start、次にブロックごとにcontent_block_start / content_block_delta / content_block_stop、次にstop_reasonと最終的な出力トークン数を含むmessage_delta、最後にmessage_stopです。
思考機能をオンにすると、2つのコンテンツブロックが順番にストリーミングされます。thinking_deltaとしてデルタが到着する思考ブロック、次にtext_deltaを持つテキストブロックです。すべてのデルタを同じバッファにレンダリングするUIは、モデルの推論をユーザーに出力してしまいます。最初からそれらを別々にルーティングしてください。
ストリーミングはGUIクライアントがその価値を発揮する場面でもあります。ターミナルで生のSSEを読むのは非常に面倒だからです。Apidogはイベントストリームが到着すると同時にレンダリングするため、ハンドラーコードを一行も書く前にブロック境界を監視し、解析の仮定を確認できます。
ステップ6:ツール利用を追加する
ツール定義はtools配列に入ります。モデルはstop_reason: "tool_use"とtool_useコンテンツブロックで応答します。あなたはツールを実行し、その結果を新しいユーザーメッセージ内のtool_resultブロックとして送り返します。
tools = [
{
"name": "get_order_status",
"description": "Look up the current status of a customer order by ID.",
"input_schema": {
"type": "object",
"properties": {
"order_id": {"type": "string", "description": "The order ID, e.g. A-10293"}
},
"required": ["order_id"],
},
}
]
message = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=[{"role": "user", "content": "What's the status of order A-10293?"}],
)
if message.stop_reason == "tool_use":
call = next(b for b in message.content if b.type == "tool_use")
result = get_order_status(**call.input)
follow_up = client.messages.create(
model="claude-opus-5",
max_tokens=4096,
tools=tools,
messages=[
{"role": "user", "content": "What's the status of order A-10293?"},
{"role": "assistant", "content": message.content},
{"role": "user", "content": [
{"type": "tool_result", "tool_use_id": call.id, "content": result}
]},
],
)
message.contentをアシスタントターンとしてそのまま渡すことで、思考ブロックが保持されます。そのターンを手動で再構築しないでください。
エージェントにとって重要なOpus 5の詳細が2つあります。ツール利用のシステムプロンプトオーバーヘッドはOpus 4.8よりも低くなっています。tool_choiceがautoまたはnoneに設定されている場合、286トークンに対し、4.8では290トークン、Opus 4.7では675トークンです。個々のリクエストでは小さいですが、100万回のエージェントのターンでは大きな差になります。また、ベータ版ヘッダーmid-conversation-tool-changes-2026-07-01があり、これにより、プロンプトキャッシュを無効にすることなく、ターン間でツールを追加または削除できます。
Opus 5は、4.8よりもサブエージェントへの委任をより容易に行います。コスト重視のワークロードでは、インボイスで発見するのではなく、システムプロンプトで明示的にその範囲を定義してください。
ステップ7:キャッシュヒットのために使用量オブジェクトを読み取る
すべての応答にはusageオブジェクトが含まれています。プロンプトキャッシュが機能していることを確認する唯一の正直な方法です。
"usage": {
"input_tokens": 84,
"cache_creation_input_tokens": 6421,
"cache_read_input_tokens": 0,
"output_tokens": 913
}
ブロックをキャッシュするには、cache_controlでマークします。
{
"model": "claude-opus-5",
"max_tokens": 4096,
"system": [
{
"type": "text",
"text": "<あなたの長く安定した指示と参照資料>",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [{"role": "user", "content": "Question one."}]
}
最初の呼び出しでは、cache_creation_input_tokensが非ゼロで、cache_read_input_tokensが0です。同じプレフィックスでの2回目の呼び出しでは、これらが逆転します。もし逆転しない場合、プレフィックスがバイト単位で同一でないか、最小値未満です。
その最小値はOpus 5の朗報です。プロンプトキャッシングは、Opus 4.8の1,024トークンから512トークンに引き下げられ、有効になりました。以前は短すぎてキャッシュできなかったプロンプトも、コード変更なしでキャッシュされるようになり、キャッシュ読み取りは、基本入力料金5ドル/100万トークンに対し、0.50ドル/100万トークンで課金されます。テストスイートでcache_read_input_tokensをアサートし、プロンプトの編集によってキャッシュがサイレントに破壊された場合に、請求書ではなくテストの失敗として表示されるようにしましょう。より多くの手段については、Claude APIの請求額を削減するガイドを参照してください。
Apidogで全体のフローをテストおよびデバッグする
上記のすべては、認証ヘッダー、JSONボディ、SSEストリーム、そしてアサートする必要のある応答を含むHTTPリクエストです。ApidogはオールインワンのAPI開発プラットフォームであり、リクエストの送信、キーの保存、ストリームのレンダリング、応答のテストといった、この種のエンドポイントをまさに扱います。推論の実行やモデルのルーティングは行いません。呼び出しはAnthropicに送られます。

初日から元が取れるセットアップ:
- リクエストを作成します。
POST https://api.anthropic.com/v1/messagesに3つのヘッダーを追加し、キーをコードに直接貼り付けるのではなく、環境変数から取得します。 - コレクションに保存します。 チームがブログのスニペットからそれぞれ再構築するのではなく、既知の良いリクエスト形状を再利用します。
- effortレベルごとにフォークします。
output_config.effortをlow、medium、high、xhighに設定してリクエストを複製し、それぞれに同じプロンプトを発行して、出力品質、レイテンシ、トークン数を並べて比較します。これはAnthropicが実行を求めるeffortスイープであり、ハーネスを作成することなく実行できます。 - SSEストリームを監視します。
"stream": trueをオンにし、イベントが到着するにつれて読み取り、思考ブロックとテキストブロックを個別に処理することを確認します。 - ツール呼び出しのペイロードを検査します。
stop_reasonがtool_useとして返された場合、モデルが生成した正確なinputオブジェクトがそこにあるため、input_schemaが緩すぎたことがわかります。 - 応答をアサートします。
stop_reasonがmax_tokensでないこと(切り捨ての兆候)、および繰り返し呼び出しでcache_read_input_tokensがゼロより大きいこと(キャッシュの兆候)を確認するチェックを追加します。
もし試してみたい場合はApidogをダウンロードしてください。同じコレクションパターンは、どのClaudeモデルに対しても機能するため、Sonnet 5や既存のOpus 4.8リクエストを指し、動作を比較できます。
実際に遭遇するであろうエラーと落とし穴
thinking: disabledとeffortxhighまたはmaxの組み合わせで400エラー。 上記で説明済みです。effortをhighに下げるか、思考機能を再度有効にしてください。- サンプリングパラメータでの400エラー。
temperature、top_p、top_kがデフォルト以外の値である場合、Opus 4.8から変更なく400を返します。代わりにシステムプロンプトを通じて制御してください。 - 途中で切り捨てられた回答。 思考がオンの状態で
stop_reason: "max_tokens"は、上限が応答を飲み込んだことを意味します。max_tokensを増やしてください。 - Priority TierはOpus 5ではサポートされていません。 Opus 4.8では引き続き利用できます。もし企業容量計画がこれに依存している場合、トラフィックを切り替える前に解決すべき真の障害となります。
- 会話途中のシステムメッセージが機能するようになりました。
messages内のrole: "system"エントリはOpus 5で受け入れられますが、Opus 4.8では400エラーを返していました。これは便利であり、これまで回避策を講じていた方は知っておくべきことです。 - 過剰検証。 Opus 5は、プロンプトなしで自身の作業を検証します。4.8から「応答する前に回答を再確認する」という指示を引き継いでいる場合、削除してください。それはもはや何のメリットもなく、思考トークンを消費するだけです。
正直な限界
Opus 5はClaudeスタックの頂点ではなく、これははっきりと述べる価値があります。Fable 5は依然としてAnthropicの「最も高性能で広くリリースされた」モデルであり、入力100万トークンあたり10ドル、出力100万トークンあたり50ドルです。Opus 5は、サイバーセキュリティの悪用や自律生物学研究において、Mythos 5にも劣ります。これはAnthropic自身が認めています。
ローンチ時のベンチマークの主張(Frontier-Bench v0.1でOpus 4.8の約2倍、ARC-AGI 3で次点のモデルの約3倍、CursorBench 3.2でFable 5の0.5%以内)はすべてAnthropic自身の数値であり、2026年7月25日現在、独立して再現されていません。これらはベンダー実施の結果として読み取り、ご自身の評価を実行してください。Opus 5とFable 5の比較では、価格差が価値がある場合とない場合を詳細に説明しており、Anthropicのローンチ投稿が主張自体の主要な情報源です。
FAQ
Claude Opus 5のモデルIDは何ですか? claude-opus-5です。日付のサフィックスは付きません。Amazon Bedrockではanthropic.claude-opus-5です。Google CloudとAWS上のClaude PlatformではファーストパーティIDを使用します。
機能していたOpus 4.8のリクエストがOpus 5で途中で切り捨てられるようになったのはなぜですか? 思考機能がデフォルトでオンになったためです。max_tokensは思考トークンと応答トークンを合わせて上限を設定するため、4.8で回答に収まっていた予算が、Opus 5では推論と回答の両方に収まらなくなった可能性があります。max_tokensを増やし、stop_reason: "max_tokens"をチェックしてください。
思考機能を無効にすると400エラーが出るのはなぜですか? ほぼ確実にthinking: {"type": "disabled"}をoutput_config.effortがxhighまたはmaxに設定されているものと組み合わせています。この組み合わせはリクエストごとに拒否されます。effortをhighに制限するか、思考機能を有効にしたままeffortを下げるようにしてください。
1Mのコンテキストウィンドウのためにベータヘッダーが必要ですか? いいえ。Opus 5では、1Mトークンがデフォルトであり最大値であり、ベータヘッダーや長文コンテキストの追加料金は不要です。Batch APIで300kの出力に到達するには、output-300k-2026-03-24ベータヘッダーが必要です。Messages APIの出力は128kに制限されています。
Opus 4.8のeffort設定を再利用できますか? Anthropicはノーと答えています。レベルが再調整され、Opus 5ではlowとmediumが大幅に強力になっています。独自の評価セットに対して新たにスイープを実行してください。
Apidogはモデルを実行しますか? いいえ。ApidogはHTTPリクエストを送信、検査、テストします。推論はAnthropic側で行われます。キー、ストリーミング、ツール呼び出しペイロード、および呼び出しに関する応答のアサーションを処理します。
