Claude Media
Anthropic API完全ガイド — モデル選択・料金・実装まで

Anthropic API完全ガイド — モデル選択・料金・実装まで

Anthropic APIはClaudeモデルへ直接アクセスする公式API。モデル選択と料金、Messages APIの構造、Tool use、Prompt caching、Batch、MCP connectorまでを扱います。

Claude.aiのチャットもClaude Codeのターミナルも、裏側で叩いているのは同じ1本のエンドポイントです。Anthropic APIは、Claudeのモデル群(Fable 5・Opus 5・Sonnet 5・Haiku 4.5)へ直接アクセスする公式APIで、開発者はこれをトークン単位の従量課金で自分のアプリケーションに組み込めます。

この記事では、モデル選択と料金体系、Messages APIのリクエスト構造を扱います。続いてTool use・思考の深さの制御・ストリーミングという実行系の機能を解説します。Prompt caching・Batch API・Structured outputs・Files API・MCP connectorというコストと拡張の機能も扱います。最後にレート制限・エラー処理・SDK、そしてAgent SDK・Managed Agentsとの関係までをカバーします。

Anthropic APIとは

Anthropic APIはHTTPS・JSONベースのRESTful APIで、エンドポイントはhttps://api.anthropic.comです。中核はMessages API(POST /v1/messages)で、モデル名・メッセージ列・システムプロンプト・ツール定義を渡すとClaudeが応答を返します。

Claude.aiのチャットUIと違い、Anthropic APIは次の特徴を持ちます。

  • 自前のアプリケーションから直接呼べる(公式SDK・ant CLI・任意のHTTPクライアント)
  • トークン単位の従量課金で、input・output・キャッシュ書き込み・読み取りごとに単価が分かれる
  • Tool use・ストリーミング・Prompt caching・Structured outputs・Batch・Visionなど、Claude.aiでは触れない開発向け機能を持つ
  • レート制限がStart・Build・Scaleのティア制で、利用実績に応じて自動的に引き上がる

Claude Codeは内部でAnthropic APIを呼んでおり、「APIの上に乗ったアプリケーション層」です。詳細は本記事後半の「Agent SDK・Managed Agentsとの関係」で扱います。

最初のAPIリクエスト — キー取得から動作確認まで

APIキーはClaude Consoleで発行します。コンソールアカウントを作成し、Account SettingsでAPIキーを生成すればそのまま使えます。有効期限はキー発行時に選べます。

最小構成のリクエストは次のとおりです。

curl https://api.anthropic.com/v1/messages \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "こんにちは"}
    ]
  }'

必須ヘッダーは3つです。x-api-keyまたはAuthorization(いずれか一方。後者はWorkload Identity Federation経由のBearerトークン)、anthropic-version(APIのバージョン、例: 2023-06-01)、content-type(application/json)。公式SDKを使えばこれらは自動で付与されます。

Python SDKでの最小例です。

import anthropic
 
client = anthropic.Anthropic()  # ANTHROPIC_API_KEY 環境変数を自動で読む
 
message = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "こんにちは"}],
)
for block in message.content:
    if block.type == "text":
        print(block.text)

インストールはpip install anthropic(Python)またはnpm install @anthropic-ai/sdk(TypeScript)です。リクエストサイズの上限はMessages APIとToken Counting APIが32MB、Batch APIが256MB、Files APIが500MBで、超えると413 request_too_largeが返ります。

モデル選択 — 4モデルの使い分け早見表

Anthropic APIで現在提供されているモデルは4系統です。知能の深さ・速度・コストのトレードオフがそれぞれ異なります。

モデル単価(input / output、per 1M tokens)コンテキスト・最大出力選ぶ基準
Claude Fable 5単価(input / output、per 1M tokens)$10 / $50コンテキスト・最大出力1M・128k選ぶ基準Opus 5でも届かない、最長時間の自律タスクだけに絞る
Claude Opus 5単価(input / output、per 1M tokens)$5 / $25コンテキスト・最大出力1M・128k選ぶ基準複雑なエージェント開発・深い推論・コードレビューの主力
Claude Sonnet 5単価(input / output、per 1M tokens)$2 / $10(〜2026年8月末、以降$3 / $15)コンテキスト・最大出力1M・128k選ぶ基準汎用最強。標準的な執筆・調査・製品統合の大半をここで賄う
Claude Haiku 4.5単価(input / output、per 1M tokens)$1 / $5コンテキスト・最大出力200k・64k選ぶ基準明確な判定基準がある抽出・採点・軽量バッチ

モデルIDは正確な文字列で指定します。Fable 5はclaude-fable-5、Opus 5はclaude-opus-5、Sonnet 5はclaude-sonnet-5、Haiku 4.5はclaude-haiku-4-5(内部的にはclaude-haiku-4-5-20251001に解決)です。日付サフィックスを勝手に付け足すと404になります。

思考の挙動はモデルごとに違います。Fable 5は常にAdaptive thinkingがオンで、thinkingの指定は不要です。{"type": "disabled"}{"type": "enabled", "budget_tokens": N}はどちらも400になり、思考をオフにはできません。思考の要約を見たいときは{"type": "adaptive", "display": "summarized"}を指定します。Opus 5もデフォルトでオン(Opus 4.8・4.7からの変更点)で、thinking: {"type": "disabled"}はeffortがhigh以下のときだけ受け付けられます。Sonnet 5は{"type": "adaptive"}だけがオンモードで、thinkingを省略してもAdaptive thinkingで走ります。Haiku 4.5だけがAdaptive thinkingに対応せず、旧来のbudget_tokens指定によるExtended thinkingのみ使えます。

Fable 5・Mythos 5は30日以上のデータ保持が必須で、Zero Data Retention(ZDR)を選べません。この要件を満たさない組織がリクエストを送ると、ペイロードが正しくても400 invalid_request_errorが返ります。

モデルIDと機能差の一覧はClaudeモデル一覧、性能面の詳細な比較はClaudeモデル比較にまとめています。旧モデルからの移行手順はClaudeモデル移行ガイドを参照してください。

料金体系 — トークン単価とコスト最適化

Anthropic APIは入力・出力トークンに加えて、Prompt cachingの書き込み・読み取り、Batch APIの割引が別単価で設定されています。

課金軸単価の考え方
input tokens単価の考え方リクエストで送ったメッセージ・システムプロンプト・ツール定義のトークン数
output tokens単価の考え方モデルが生成したテキストのトークン数
cache write(5分)単価の考え方inputの1.25倍。5分間キャッシュを保持
cache write(1時間)単価の考え方inputの2倍。1時間キャッシュを保持
cache read単価の考え方inputの0.1倍(90%割引)。書き込みTTLと同じ期間有効
Batch API単価の考え方input・outputともに50%割引

Prompt cachingの読み取り割引とBatch APIの50%割引は重ね掛けできます。キャッシュ単体でも、1時間TTLを2回読めば書き込み2倍のコストを読み取り0.1倍×2で相殺して黒字化し、5分TTLなら読み取り1回で黒字化する計算です。

Sonnet 5には2026年8月31日までの導入価格が設定されています。input $2 / output $10(通常価格はinput $3 / output $15)。この期間を過ぎると自動的に通常価格へ切り替わります。

Claude.aiの月額プラン(Pro・Team・Max)とAPIの従量課金は別会計です。プラン比較はClaudeの料金プラン、Claude CodeでAPIとMaxプランのどちらが得かはClaude Codeの料金試算ガイドで扱っています。

Messages APIのリクエスト構造

Messages APIの必須パラメータは3つだけです。model(モデルID)、max_tokens(出力トークンの上限)、messages(会話履歴の配列)。

パラメータ役割必須
model役割使うモデルのID必須
max_tokens役割出力トークンの上限必須
messages役割role: "user" / "assistant"の会話履歴必須
system役割システムプロンプト。文字列または配列(配列ならブロック単位でキャッシュ可能)必須
tools役割Tool use定義必須
thinking役割思考の設定(モデルごとに挙動が違う。前節参照)必須
output_config役割effort(思考の深さ)やformat(構造化出力)を格納必須

応答はcontentフィールドにブロックの配列で返ります。ブロックタイプはtexttool_usethinkingなどが混在し、stop_reasonend_turn / max_tokens / tool_use / pause_turn / refusalのいずれかで終了理由を示します。refusalのときはstop_detailsにカテゴリ(cyberbioなど)が入るので、contentを読む前にstop_reasonを確認する実装にします。

max_tokensを大きく取るときはストリーミングが実質必須です。SDKは非ストリーミングリクエストが10分のタイムアウトを超えない見込みかを検証します。Haiku 4.5だけが最大出力64kで、他の現行モデルは128kまで伸ばせます。

思考の深さの制御 — Adaptive thinking

Claudeは応答の前に内部で「思考」フェーズを挟めます。旧来のExtended thinking(thinking: {"type": "enabled", "budget_tokens": N})はトークン数で上限を明示する方式でしたが、Fable 5・Opus 5・Sonnet 5では廃止され、Adaptive thinking({"type": "adaptive"})とoutput_config.effortの組み合わせに一本化されています。

effortはlow / medium / high / xhigh / maxの5段階(Haiku 4.5は非対応)で、深さとコストのトレードオフを制御します。APIの既定はhighで、effortを省略した場合と同じです。コーディングやエージェント的なタスクではxhighの明示指定が出発点として推奨されており、抽出・分類のような決まったパターン処理はlowmediumで足ります。

thinking.displayはデフォルトで"omitted"(思考ブロックは返るが中身は空文字列)です。ユーザーに思考の要約を見せたい場合はdisplay: "summarized"を明示します。生の思考過程がそのまま返ることはどのモデルでもありません。

旧モデルのbudget_tokens指定コードをFable 5・Opus 5・Sonnet 5にそのまま持ち込むと400エラーになります。移行手順はClaudeモデル移行ガイドにまとめています。

Tool use(Function calling)の実装

Tool useは、ツールの仕様をClaudeに渡し、Claudeが「このツールをこの引数で呼びたい」と判断してリクエストを返す仕組みです。ツールには2種類あります。クライアントツール(ユーザー定義ツール、bash・text editorなどAnthropic定義ツール)はアプリケーション側が実行し、サーバーツール(web_search・web_fetch・code_executionなど)はAnthropicのインフラ上で実行され、結果がそのまま返ります。

{
  "model": "claude-opus-5",
  "tools": [
    {
      "name": "get_weather",
      "description": "指定された都市の現在の天気を返す",
      "input_schema": {
        "type": "object",
        "properties": {
          "city": {"type": "string", "description": "都市名"}
        },
        "required": ["city"]
      }
    }
  ],
  "messages": [
    {"role": "user", "content": "東京の天気は?"}
  ]
}

Claudeがtool_useブロックを返したら、アプリケーション側でツールを実行し、結果をtool_resultとして次のリクエストのmessagesに含めます。並列ツール呼び出し(1ターンで複数のtool_useブロックを返す)がデフォルトで有効で、独立した処理を1往復で片付けられます。並列で呼ばれたツールの結果は、必ず1つのuserメッセージにまとめて送り返します。分割して送ると、並列呼び出しをやめる方向にモデルが学習してしまいます。

ツール呼び出しには、モデルごとに固有のシステムプロンプトトークンが加算されます。Opus 5はtool_choice: "auto"で286トークン、"any" / "tool"で406トークン。Sonnet 5はそれぞれ354・474トークンです。ツールを1つも渡さなければこの加算はありません。

自分でループを書く代わりに、SDKのTool Runner(client.beta.messages.tool_runner)を使うと、リクエスト→実行→ループの往復を自動化できます。承認ゲートやエラー傍受も、ツール実行関数の中でハンドリングできるので、手書きループが必要になる場面は限られます。Python/TypeScript双方の実装とAgent SDKとの使い分けはTool RunnerでAnthropic APIのツール呼び出しループを自動化するで扱っています。

サーバーツールのweb searchは1,000検索あたり$10(トークン費用は別)、code executionはweb search・web fetchと同時に使えば無料、単独利用は組織あたり月1,550時間無料でその後は1時間・1コンテナあたり$0.05です。MCPサーバーへの接続や高度なツール構成はコード実行×MCPの設計高度なTool useで深掘りしています。

ストリーミング(SSE)の実装

stream: trueを指定すると、Server-Sent Events形式で応答がチャンク単位で返ります。イベントの流れは固定です。message_start(空のcontentを持つMessageオブジェクト)→ コンテンツブロックごとのcontent_block_start / content_block_delta(複数)/ content_block_stopmessage_delta(トークン数などの更新)→ message_stop

const stream = client.messages.stream({
  model: "claude-sonnet-5",
  max_tokens: 64000,
  messages: [{ role: "user", content: "..." }],
});
for await (const event of stream) {
  if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
    process.stdout.write(event.delta.text);
  }
}

イベント単位で処理する必要がなければ、SDKの.get_final_message()(Python)/.finalMessage()(TypeScript)を使うと、内部ではストリーミングしつつ.create()と同じ完成したMessageオブジェクトを受け取れます。max_tokensが大きいリクエストではこの方式が推奨です。HTTPのタイムアウトを避けられます。

Tool useのストリーミングでは、tool_useブロックのinputが部分的なJSON文字列(input_json_delta)として分割送信されます。content_block_stopが来るまで蓄積してからパースします。中断からの復旧は、Claude 4.6以降のモデルでは中断された応答をassistantメッセージへ入れず、ユーザーメッセージとして「続きから」と指示する方式に変わっています。

Prompt caching — コストを1桁下げる設計

Prompt cachingは、システムプロンプト・ツール定義・長いRAGコンテキストなど変わらない部分をキャッシュし、後続リクエストで再利用する機能です。キャッシュ読込はinputの0.1倍(90%割引)で、頻繁な再利用がある構成ではコストへの効き目が最も大きい仕組みです。

{
  "model": "claude-sonnet-5",
  "system": [
    {
      "type": "text",
      "text": "あなたは...(長いシステムプロンプト)",
      "cache_control": {"type": "ephemeral"}
    }
  ],
  "messages": [{"role": "user", "content": "..."}]
}

cache_control: {"type": "ephemeral"}を付けたブロックがキャッシュ対象になります。既定のTTLは5分、ttl: "1h"を指定すれば1時間に延長できます。1時間TTLはキャッシュ書き込みが2倍コストになる代わりに、12倍長くキャッシュが生き残ります。

キャッシュ対象になる最小トークン数はモデルによって違います。Opus 5・Fable 5・Mythos 5は512トークン、Sonnet 5は1,024トークンからキャッシュできる一方、Haiku 4.5は4,096トークンからしかキャッシュされません。最も安いモデルが最も長いプロンプトを要求するという逆転が起きているので、Haiku 4.5でキャッシュを設計するときは注意が必要です。短いプロンプトはエラーにならず黙ってキャッシュされないだけなので、usage.cache_read_input_tokensが0のままなら最小長を疑います。

キャッシュのプレフィックスマッチは厳密です。toolssystemmessagesの順でレンダリングされ、途中の1バイトでも変わると、そこから先のキャッシュはすべて無効になります。日時やUUIDをシステムプロンプトの先頭付近に埋め込むと、キャッシュが実質機能しなくなります。

Batch APIの50%割引とキャッシュの割引は重ね掛けできます。実装の詳細はPrompt caching完全活用にまとめています。

Batch API — 50%割引のバルク処理

Batch APIは即時性を捨てる代わりに、input・output両方が50%割引になる非同期処理です。POST /v1/messages/batchesに対して最大24時間以内に結果が返るジョブで、多くのバッチは1時間以内に完了します。1バッチにつき最大100,000リクエストまたは256MB、結果は作成から29日間取得可能です。

{
  "requests": [
    {
      "custom_id": "request-1",
      "params": {
        "model": "claude-haiku-4-5",
        "max_tokens": 1024,
        "messages": [{"role": "user", "content": "..."}]
      }
    }
  ]
}

processing_status"ended"になるまでポーリングし、resultsエンドポイントから結果をストリームで受け取ります。結果はcustom_idで紐付け、到着順は保証されないため、配列の位置ではなくcustom_idをキーにします。用途は数千〜数万件の記事生成・採点・抽出、月次レポート、大量翻訳などです。制限値と実装手順、つまずきどころはClaude Batch APIの使い方にまとめています。

Structured outputsで出力を固定する

output_config.formatは、Messages APIの応答を指定したJSON Schemaに強制的に一致させる機能です。旧来のoutput_formatパラメータは非推奨で、新規コードはoutput_config.formatを使います。

curl https://api.anthropic.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-5",
    "max_tokens": 1024,
    "messages": [{"role": "user", "content": "メールから情報を抽出して"}],
    "output_config": {
      "format": {
        "type": "json_schema",
        "schema": {
          "type": "object",
          "properties": {"name": {"type": "string"}, "email": {"type": "string"}},
          "required": ["name", "email"],
          "additionalProperties": false
        }
      }
    }
  }'

対応モデルはClaude 4.5以降とMythos Preview系です(Bedrock・Google Cloudでは対応モデルの範囲が異なります)。additionalProperties: falseが必須で、minLengthmultipleOfのような数値・文字列の制約はサポート外です。推奨の呼び出し方はclient.messages.parse()で、レスポンスをスキーマに沿って自動検証してくれます。ツール呼び出しのスキーマだけ厳密にしたいなら、ツール定義にstrict: trueを付けるStrict tool useのほうが軽量です。tool useとの使い分けを含めた実装手順はClaude JSONモードの使い方で扱っています。

Files API — 画像・PDF・データセットの再利用

Files APIは、ファイルを一度アップロードしてfile_idで使い回す仕組みです。ベータのためanthropic-beta: files-api-2025-04-14ヘッダーが必要です(SDKのbeta.files名前空間経由なら自動付与されます)。

項目
1ファイルの最大サイズ500MB
組織あたりの総ストレージ500GB
アップロード・ダウンロード・一覧・削除すべて無料
メッセージで参照したファイルの内容inputトークンとして課金

PDFやテキストはdocumentブロック、画像はimageブロックで{"type": "file", "file_id": "..."}を参照します。.docx.xlsxのようにdocumentブロックが対応しない形式は、プレーンテキストに変換して地の文に含めるか、code executionツールのcontainer_uploadブロックでデータセットとして渡します。

citations: {"enabled": true}をdocumentブロックに付けると、応答が引用付きの複数textブロックに分割され、各ブロックのcitations配列に出典位置(ページ番号や文字インデックス)が入ります。RAGで「この主張はどのページの何文字目に基づくか」を機械的に追跡したいときに使います。Structured outputs(output_config.format)とCitationsは同時に使えず、併用すると400エラーになります。アップロードからfile_idでの再利用、コスト試算までの実装手順はClaude Files APIでPDFを処理する方法にまとめています。

MCP connectorで直接繋ぐ

MCP(Model Context Protocol)connectorは、別途MCPクライアントを実装しなくても、Messages APIから直接リモートMCPサーバーへ接続できる機能です。現行のベータヘッダーはmcp-client-2025-11-20(旧mcp-client-2025-04-04は非推奨)。

{
  "model": "claude-opus-5",
  "max_tokens": 1000,
  "messages": [{"role": "user", "content": "使えるツールを教えて"}],
  "mcp_servers": [
    {
      "type": "url",
      "url": "https://example-server.modelcontextprotocol.io/sse",
      "name": "example-mcp",
      "authorization_token": "YOUR_TOKEN"
    }
  ],
  "tools": [{"type": "mcp_toolset", "mcp_server_name": "example-mcp"}]
}

mcp_serversでサーバー接続(URL・認証トークン)、toolsmcp_toolsetでどのツールを有効にするかを設定します。全ツール許可・allowlist・denylistのいずれもdefault_configconfigsの組み合わせで表現できます。対応しているのはツール呼び出しのみで、MCP仕様のプロンプトやリソースは未対応です。ローカルのSTDIOサーバーは直接繋げず、公開HTTPサーバー(Streamable HTTPまたはSSE)だけが対象です。

利用できるのはClaude API本体・Claude Platform on AWS・Microsoft Foundry(Hosted on Anthropic配置のみ)で、Amazon BedrockとGoogle Cloudでは現状使えません。この対応状況はサーバーツール(web search・code execution)とは別なので、使いたい機能ごとに確認してから経路を選びます。

レート制限 — Start・Build・Scaleティア

レート制限は組織単位のティア制です。利用実績に応じてStart → Build → Scaleへ自動的に上がり、それぞれ月あたりの支出上限(Start $500・Build $1,000・Scale $200,000)も設定されています。上限を超える場合はカスタムティアとして個別に交渉します。

ティアFable 5(RPM / ITPM / OTPM)Opus 5(RPM / ITPM / OTPM)
StartFable 5(RPM / ITPM / OTPM)1,000 / 500,000 / 100,000Opus 5(RPM / ITPM / OTPM)1,000 / 2,000,000 / 400,000
BuildFable 5(RPM / ITPM / OTPM)2,000 / 1,500,000 / 300,000Opus 5(RPM / ITPM / OTPM)5,000 / 5,000,000 / 1,000,000
ScaleFable 5(RPM / ITPM / OTPM)4,000 / 4,000,000 / 800,000Opus 5(RPM / ITPM / OTPM)10,000 / 10,000,000 / 2,000,000

Fable 5とOpus 5とSonnet 5は、それぞれ独立したレート制限バケットを持ちます。Opus 4.8・4.7・4.6・4.5は合算の「Opus 4.x」バケットを共有し、Sonnet 4.6・4.5も合算の「Sonnet 4.x」バケットを共有します。新モデルに切り替えても、旧モデルのバケットの空きは引き継がれません。

レート制限はトークンバケットアルゴリズムで、固定間隔でリセットされるのではなく継続的に補充されます。キャッシュ読み取りトークン(cache_read_input_tokens)は、Haiku 3.5を除く全モデルでITPMの計算に含まれません。つまりキャッシュヒット率を上げると、同じ実効スループットをより少ないレート制限消費で処理できます。

429エラーが返ったらretry-afterヘッダーの秒数だけ待ってから再試行します。SDKは429と5xxを最大2回まで自動リトライします。具体的な対処手順は429・Overloadedエラーの対処法にまとめています。

エラーハンドリングと落とし穴

コードエラータイプ主な原因対処
400エラータイプinvalid_request_error主な原因パラメータ不正・非対応の組み合わせ対処リクエスト形式を修正。リトライ不要
401エラータイプauthentication_error主な原因APIキーの失効・形式不正対処キーを再発行。リトライ不要
402エラータイプbilling_error主な原因支払い情報の問題対処Consoleで請求情報を確認
403エラータイプpermission_error主な原因権限不足(モデル・ベータ機能へのアクセス権なし)対処ワークスペース設定を確認
404エラータイプnot_found_error主な原因モデルIDのtypo、存在しないリソース対処モデルIDの綴りを確認
409エラータイプconflict_error主な原因リソースの状態競合(同時更新など)対処再取得してから再試行
413エラータイプrequest_too_large主な原因リクエストサイズ超過(Messages APIは32MB)対処入力を分割・圧縮
429エラータイプrate_limit_error主な原因レート制限到達対処retry-after分待って再試行
500エラータイプapi_error主な原因Anthropic側の内部エラー対処指数バックオフで再試行
504エラータイプtimeout_error主な原因処理中にタイムアウト対処ストリーミングAPIに切り替える
529エラータイプoverloaded_error主な原因一時的な高負荷対処指数バックオフで再試行

実装でよく踏む落とし穴です。

  • temperature / top_p / top_kを既定値以外にする: Opus 4.7以降とSonnet 5では、これらを既定値以外にすると400エラーになります(Haiku 4.5ではtemperaturetop_pはどちらか一方だけ指定できます)。SDKの型定義にはフィールドが残っているため型チェックは通りますが、サーバー側で拒否されます。プロンプトで挙動を制御します
  • thinking: {"type": "enabled", "budget_tokens": N}を現行モデルに送る: Opus 4.7以降とSonnet 5・Fable 5では拒否されます。{"type": "adaptive"}output_config.effortに置き換えます
  • アシスタント末尾のprefill(事前入力)を送る: 現行モデルではアシスタントメッセージのprefillが400エラーになります。Structured outputsかシステムプロンプトの指示に置き換えます
  • thinkingブロックを改変して送り返す: 直前のツール呼び出しに紐づくthinkingredacted_thinkingブロックは、中身が空文字列でもそのまま送り返す必要があります。フィルタして除外すると400になります
  • ストリーミングなしでmax_tokensを大きく取る: SDKの非ストリーミングリクエストは10分のタイムアウト見込みを検証しており、これを超えそうな設定はストリーミングへの切り替えが必要です。128kまで出したいときはストリーミングが必須です

11種類のエラーコードごとの対処とリトライ設計、SDKの型付き例外までを掘り下げた内容はClaude APIのエラーハンドリング設計にまとめています。

SDK — 主要7言語の使い分け

Anthropic公式はPython・TypeScript・Go・Java・C#・PHP・Rubyの7言語でSDKを提供しています。いずれもMessages API・Tool use・Streaming・Prompt caching・Adaptive thinking・Batchをフルサポートし、リクエスト構造は本記事のMessages APIの節がそのまま当てはまります。

SDKインストール主用途
Pythonインストールpip install anthropic主用途データ分析・ML・バックエンド
TypeScriptインストールnpm install @anthropic-ai/sdk主用途Webアプリ・Node.js・フロントエンド
Goインストールgo get github.com/anthropics/anthropic-sdk-go主用途高並行処理のバックエンド
JavaインストールMaven / Gradle(com.anthropic:anthropic-java)主用途エンタープライズJVM環境

エラーは各SDKが型付き例外を投げます。文字列マッチではなく、NotFoundErrorRateLimitErrorAPIStatusErrorAPIConnectionErrorのように具体的な型から順にキャッチするのが公式の推奨パターンです。認証はAPIキー(ANTHROPIC_API_KEY)のほか、ant auth loginによるOAuthプロファイルやWorkload Identity Federationにも対応しています。

Agent SDK・Managed Agentsとの関係

「Anthropic API」「Agent SDK」「Claude Code」「Claude Managed Agents」は名前が似ているために混同されがちですが、担っている層がまったく違います。

何を書くかループを回すのは誰かホスティングは誰か
Anthropic API(手動ループ)何を書くかwhile stop_reason == "tool_use"のループ自体ループを回すのは誰か自分ホスティングは誰か自分
Tool Runner(SDKベータ)何を書くかツール関数だけループを回すのは誰かSDKホスティングは誰か自分
Claude Agent SDK何を書くかプロンプトとオプションループを回すのは誰かSDK(Claude Codeのハーネス)ホスティングは誰か自分
Claude Managed Agents何を書くかエージェント設定とツール結果ループを回すのは誰かAnthropicホスティングは誰かクラウド(Anthropic管理)またはself-hostedを選択

Anthropic APIの手動ループは自由度が最大な代わりに、承認ゲートやコンテキスト管理を自前で書く必要があります。Tool Runnerはそのループをラップし、承認・エラー傍受・キャッシュ制御をフックとして提供します。Claude Agent SDKはこれとは別パッケージで、Claude Codeを動かしているツール・エージェントループ・コンテキスト管理をライブラリとして切り出したものです。ファイル操作・bash・grep・Web検索といった組み込みツール、コンテキスト管理、フック、サブエージェント、パーミッションまでを一式で提供します。Claude Managed Agentsはさらにその先で、ループはAnthropicがホストし、実行環境はAnthropic管理のクラウドサンドボックスか自前インフラ上のself-hostedサンドボックスから選びます。/v1/agentsでエージェント設定を作り、/v1/sessionsでセッションを開始する構成です。

Claude Code自身は内部でAnthropic APIを呼んでいます。デフォルトのモデルは環境によって異なりますが、/modelコマンドでOpus 5・Sonnet 5・Haiku 4.5に切り替え可能です。認証もAPIキーだけでなく、Claude.aiのMaxプランに紐づくOAuthでも動きます。トークン単価を直接管理したくない開発者は、この経路を選ぶことが多いです。

Agent SDKでエージェントを組み始める手順はAgent SDKクイックスタート、Slack連携などの実践例はAgent SDKでSlackボットを作るで扱っています。

マルチクラウド展開の選び方

ClaudeモデルはAnthropic直APIを含め、全部で4つの経路で利用できます。それぞれ運用元と価格体系が異なります。

経路運用元モデルID形式特徴
Anthropic直API運用元AnthropicモデルID形式claude-opus-5(素の文字列)特徴最新機能への直接アクセス、Anthropic請求
Claude Platform on AWS運用元Anthropic(AWS上で運用)モデルID形式claude-opus-5(接頭辞なし)特徴直APIと通常は同日でパリティ、AWS Marketplace請求(CCU単位)
Amazon Bedrock運用元AWS(パートナー運用)モデルID形式anthropic.claude-opus-5(接頭辞あり)特徴AWSのリリーススケジュールに従う、機能サブセット
Google Cloud(Vertex AI)運用元Google(パートナー運用)モデルID形式claude-opus-5(接頭辞なし)特徴GCP統合、独自のリージョン体系

「Claude Platform on AWS」と「Amazon Bedrock」は名前が紛らわしいですが別物です。前者はAnthropicが運用し直APIと同日に新機能が出る一方、後者はAWSが運用し機能追加のタイミングが遅れることがあります。MCP connectorやFiles APIのように、Bedrock・Google Cloudでは未対応の機能が直APIやClaude Platform on AWSにはある、という非対称も珍しくありません。使う機能ごとに対応状況を確認してから経路を選びます。

AUP — 利用規約上の留意点

Anthropic Acceptable Use Policy(AUP)はAPI利用時の禁止行為を定めています。

  • advice / recommendationsカテゴリ: 医療・法律・金融・人材判断のような強い助言はHuman-in-the-loopが必須です
  • 高リスク用途: インフラ制御・致死性の判断・武器関連は禁止です
  • コンテンツ: 児童性的虐待・自殺扇動・マルウェア生成・大規模偽情報は禁止です
  • 政治広告・選挙影響操作には制限があります

商用利用時の権利関係やデータの扱いはClaudeの商用利用とデータ権利で整理しています。

よくある質問

Q. Anthropic APIとClaude.aiの違いは?

Claude.aiはAnthropic公式のチャットUI(Web・Desktop・Mobile)で、Pro・Team・Maxの月額課金です。Anthropic APIは開発者向けのAPIで、トークン単位の従量課金です。両者は裏側で同じClaudeモデルを使いますが、課金体系とアクセス方法が違います。

Q. Claude CodeはAnthropic APIを使っていますか?

はい。Claude Codeは内部でAnthropic APIを呼び出しています。Agent SDKは、この呼び出しを支えるツール・エージェントループ・コンテキスト管理をライブラリとして切り出したものです。/modelコマンドでモデルを切り替えられ、認証はAPIキーのほか、Claude.aiのMaxプランに紐づくOAuthでも可能です。

Q. Prompt cachingとBatch APIは併用できますか?

できます。Prompt cachingの割引(読み取り0.1倍)とBatch APIの割引(50%)は重ね掛けされ、両方を組み合わせると累計コストを大きく下げられます。

Q. Adaptive thinkingとExtended thinkingの違いは?

Extended thinkingはbudget_tokensでトークン数の上限を明示する旧方式で、Haiku 4.5など一部のモデルにしか残っていません。Adaptive thinkingはClaude自身が思考の深さを判断する方式で、Fable 5・Opus 5・Sonnet 5ではこちらに一本化されています。

Q. どのモデルを選べばよいですか?

汎用的な作業ならSonnet 5、判断軸が複雑な開発やレビューにはOpus 5、明確な判定基準がある抽出・分類作業にはHaiku 4.5が向きます。Opus 5でも足りない最難関のタスクだけFable 5に絞ります。

Q. Claude Managed AgentsとAgent SDKはどう違いますか?

どちらもエージェントの実行ハーネスを提供しますが、Agent SDKはハーネスだけで、実行環境のホスティングは自分で用意します。Claude Managed AgentsはループをAnthropicがホストし、実行環境はAnthropic管理のクラウドサンドボックスか自前インフラ上のself-hostedサンドボックスから選びます。

Q. レート制限に達したらどうすればよいですか?

429エラーのretry-afterヘッダーの秒数だけ待ってから再試行します。恒常的に到達するならPrompt cachingでITPM消費を減らすか、Consoleの「Request rate limit increase」からティアの引き上げを申請します。

Q. 無料トライアルはありますか?

新規ユーザーには少額の無料クレジットが付与されます。エンタープライズ評価向けの拡張トライアルは営業チームへの問い合わせが必要です。

まとめ

Anthropic APIは、モデル選択・Tool use・Prompt caching・Batch・Structured outputs・MCP connectorを組み合わせて、コストと柔軟性を両立させるプラットフォームです。設計判断の軸は3つに集約されます。

  1. モデルを用途で分ける: Sonnet 5を基準に、複雑な判断だけOpus 5、抽出・分類はHaiku 4.5に振り分けます
  2. 変わらない部分をキャッシュする: システムプロンプト・ツール定義・RAGコンテキストにcache_controlを付けるだけで、input単価が実質10分の1になります
  3. 即時性が要らない処理はBatchに逃がす: 50%割引と引き換えに、最大24時間の非同期実行を受け入れます

Agent SDKやClaude Managed Agentsへ進む前提知識としても、まずはMessages APIの構造とレート制限・エラーの型を正確に押さえておくと、上位レイヤーでの判断が速くなります。

この記事を共有:XはてブLinkedIn