Anthropic API(Claude API)の使い方|APIキー取得から実装まで完全ガイド【2026年版】
Anthropic API(Claude API)の使い方を初心者向けに解説。APIキー取得、Python・TypeScript SDKの実装、ストリーミング、Tool Use、プロンプトキャッシュまで、コピペで動くコード例10パターン以上。2026年最新の料金体系とコスト最適化Tipsも網羅。

Anthropic API を使えば、Claude の自然言語処理能力をアプリケーションに組み込めます。チャットボット、RAG システム、AI エージェント、業務自動化ツールなど、用途は多岐にわたります。
本記事では、API キーの取得から Python・TypeScript SDK での実装、ストリーミング、Tool Use、プロンプトキャッシュまで、コピペで動くコード例 10 パターン以上で解説します。2026 年 5 月時点の最新料金体系とコスト最適化の実践的な Tips もカバーしています。
この記事を読むとわかること
- Anthropic API の特徴と OpenAI API・Gemini API との違い
- API キー取得から SDK セットアップまでの手順
- Python / TypeScript での基本実装からストリーミング、Tool Use、プロンプトキャッシュまで
- 2026 年最新の料金体系とユースケース別コスト試算
- エラーハンドリング・レート制限対策・本番運用のベストプラクティス
Anthropic API(Claude API)とは
Anthropic API は、Anthropic 社が開発した大規模言語モデル Claude にプログラムからアクセスするための RESTful API です。エンドポイントは https://api.anthropic.com で、Messages API を中心に、バッチ処理、トークンカウント、ファイル管理などの機能を提供しています。
Anthropic は「AI の安全性」を創業理念に掲げており、Constitutional AI と呼ばれる独自の学習手法により、有害な出力を抑制しつつ高い指示追従性を実現しています。日本語の生成品質も高く、開発者コミュニティでは自然な言い回しや文脈理解の精度について高い評価を受けています。
OpenAI API・Gemini API との違い
| 比較項目 | Anthropic API(Claude) | OpenAI API(GPT) | Gemini API(Google) |
|---|---|---|---|
| 最大コンテキスト長 | 100 万トークン | 100 万トークン(一部モデル) | 200 万トークン |
| 日本語品質 | 高い(自然な文章生成) | 標準的 | 標準的 |
| 安全性設計 | Constitutional AI | RLHF 中心 | Safety filters |
| Tool Use | 対応 | 対応(Function Calling) | 対応 |
| プロンプトキャッシュ | 対応(最大 90% 削減) | 対応(50% 削減) | 対応 |
| バッチ処理 | 対応(50% 割引) | 対応(50% 割引) | 対応 |
| プラットフォーム | 直接 / AWS Bedrock / Vertex AI / Azure | 直接 / Azure | 直接 / Vertex AI |
Claude の強みは、100 万トークンのコンテキストウィンドウと日本語品質の高さです。長文ドキュメントの要約や分析、日本語でのカスタマーサポートなど、これらの特性が活きるユースケースでは特に力を発揮します。API の設計思想や安全性へのアプローチも、企業での本番利用を重視する開発者から支持されています。
2026 年最新モデルと料金体系
モデルラインナップ
Anthropic は用途に応じて 3 つのモデルファミリーを提供しています。
| モデル | 特徴 | 推奨用途 |
|---|---|---|
| Claude Opus 4.6 | 最高精度。複雑な推論・コード生成 | 高度な分析、エージェント、長文処理 |
| Claude Sonnet 4.6 | 精度とコストのバランス | 一般的な業務利用、チャットボット |
| Claude Haiku 4.5 | 高速・低コスト | 分類、要約、大量処理 |
最新の Claude Opus 4.7 も利用可能ですが、公式料金ページによると新しいトークナイザーを使用しており同じテキストに対して最大 35% 多くのトークンを消費する点に注意が必要です。コストと精度のバランスを考えると、多くのユースケースでは Opus 4.6 または Sonnet 4.6 が最適解になります。
料金表
すべて 100 万トークン(MTok)あたりの USD 価格です(2026 年 5 月時点。最新の料金はAnthropic 公式料金ページを確認してください)。
| モデル | 入力 | 出力 | キャッシュ書込(5分) | キャッシュ読取 |
|---|---|---|---|---|
| Opus 4.6 | $5.00 | $25.00 | $6.25 | $0.50 |
| Sonnet 4.6 | $3.00 | $15.00 | $3.75 | $0.30 |
| Haiku 4.5 | $1.00 | $5.00 | $1.25 | $0.10 |
バッチ API を使えば入力・出力ともに 50% 割引になります(非同期処理のため即時応答が不要なケースで有効)。
ユースケース別コスト試算
実際に「月額いくらかかるか」を試算すると、導入判断がしやすくなります。
| ユースケース | モデル | 月間リクエスト | 入力/出力(平均) | 月額目安 |
|---|---|---|---|---|
| 社内チャットボット | Sonnet 4.6 | 1 万回 | 1,000 / 500 トークン | 約 $105 |
| ドキュメント要約 | Sonnet 4.6 | 5,000 回 | 5,000 / 1,000 トークン | 約 $150 |
| カスタマーサポート | Haiku 4.5 | 10 万回 | 500 / 300 トークン | 約 $200 |
| RAG(検索+生成) | Sonnet 4.6 | 3 万回 | 3,000 / 800 トークン | 約 $630 |
プロンプトキャッシュを活用すれば、繰り返し同じシステムプロンプトやドキュメントを使うケースでは入力コストを最大 90% 削減できます。なお、API ではなく Claude Code(CLI ツール)の料金体系についてはClaude Code 料金・プラン完全ガイドで詳しく解説しています。
API キー取得とセットアップ
Step 1: Anthropic Console でアカウント作成
Anthropic Consoleにアクセスし、メールアドレスまたは Google アカウントでサインアップします。
Step 2: API キーの作成と管理
Console にログイン後、左メニューの「API Keys」から「Create Key」をクリックします。キーに分かりやすい名前(例: my-chatbot-dev)を付けて作成します。
重要: API キーは作成時の 1 回しか表示されません。必ずコピーして安全な場所に保存してください。紛失した場合は新しいキーを作成する必要があります。
「Billing」でクレジットカードを登録し、Monthly Spend Limit(月額上限)を設定しておくと、予期せぬ高額請求を防げます。
Step 3: SDK インストールと環境変数設定
Python:
pip install anthropic
TypeScript:
npm install @anthropic-ai/sdk
API キーは環境変数として設定します。
export ANTHROPIC_API_KEY="sk-ant-api03-xxxxx"
SDK は環境変数 ANTHROPIC_API_KEY を自動的に読み取るため、コード内にキーをハードコーディングする必要はありません。
基本的な API 呼び出し(Messages API)
モデル ID はバージョンアップに伴い変更されることがあります。最新の ID は公式モデル一覧で確認してください。
Python での基本実装
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
messages=[
{"role": "user", "content": "Pythonでフィボナッチ数列を生成する関数を書いてください"}
]
)
print(message.content[0].text)
TypeScript での基本実装
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const message = await client.messages.create({
model: "claude-sonnet-4-6-20260514",
max_tokens: 1024,
messages: [
{ role: "user", content: "TypeScriptでフィボナッチ数列を生成する関数を書いてください" }
],
});
console.log(message.content[0].text);
システムプロンプトの設定
システムプロンプトを使うと、Claude の応答スタイルや専門性を指定できます。
message = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
system="あなたはシニアPythonエンジニアです。コードにはdocstringと型ヒントを必ず含めてください。",
messages=[
{"role": "user", "content": "CSVファイルを読み込んで統計情報を出力する関数を作ってください"}
]
)
レスポンスの構造
Messages API のレスポンスは以下の構造を持ちます。
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "応答テキスト..."
}
],
"model": "claude-sonnet-4-6-20260514",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 25,
"output_tokens": 150
}
}
usage フィールドでトークン消費量を確認できるため、コスト管理に活用できます。
ストリーミングレスポンス
ストリーミングを使うと、生成途中のテキストをリアルタイムに受け取れます。チャットボットのような対話型 UI では、最初のトークンが表示されるまでの体感待ち時間が短縮されるため、ユーザー体験を大幅に改善できます。通常のリクエストでは全文が生成されるまでレスポンスが返りませんが、ストリーミングでは数十ミリ秒単位でテキストが流れてきます。
Python でのストリーミング実装
import anthropic
client = anthropic.Anthropic()
with client.messages.stream(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
messages=[
{"role": "user", "content": "AIエージェントの仕組みを解説してください"}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
TypeScript でのストリーミング実装
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
const stream = client.messages.stream({
model: "claude-sonnet-4-6-20260514",
max_tokens: 1024,
messages: [
{ role: "user", content: "AIエージェントの仕組みを解説してください" }
],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}
マルチターン会話の実装
マルチターン会話では、過去のやり取りを messages 配列に含めて送信します。Claude はステートレスな API のため、会話履歴はクライアント側で管理する必要があります。
import anthropic
client = anthropic.Anthropic()
conversation = []
def chat(user_message: str) -> str:
conversation.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
system="あなたは親切なアシスタントです。",
messages=conversation
)
assistant_message = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_message})
return assistant_message
# 使用例
print(chat("Pythonの非同期処理について教えてください"))
print(chat("具体的なコード例を見せてください")) # 前の文脈を踏まえた回答が返る
上記はシンプルな例です。本番環境では、ユーザーごとに会話履歴を分離して管理してください。会話が長くなるとトークン消費が増加するため、一定のターン数を超えたら古いメッセージを削除するか、要約して圧縮する設計がコスト最適化のポイントです。
Tool Use(Function Calling)で外部ツールと連携
Tool Use を使うと、Claude が外部 API やデータベースなどのツールを呼び出せるようになります。開発者がツールの定義(名前、説明、パラメータスキーマ)を渡すと、Claude が必要に応じて「このツールをこの引数で呼んでほしい」というリクエストを返します。
Tool Use の仕組み
- 開発者が API リクエストにツール定義を含めて送信
- Claude がユーザーの質問を解析し、必要なツールと引数を決定
- Claude が
tool_useブロックを含むレスポンスを返す(stop_reason: "tool_use") - 開発者がツールを実行し、結果を
tool_resultとして返送 - Claude がツール結果を踏まえて最終回答を生成
天気取得 API の実装例(Python)
import anthropic
import json
client = anthropic.Anthropic()
# ツール定義
tools = [
{
"name": "get_weather",
"description": "指定した都市の現在の天気情報を取得します",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "天気を取得する都市名(例: 東京、大阪)"
}
},
"required": ["city"]
}
}
]
# 実際のツール実行関数(本番では外部APIを呼び出す)
def get_weather(city: str) -> dict:
# ここでは例としてダミーデータを返す
return {"city": city, "temperature": 22, "condition": "晴れ"}
# 1回目: ユーザーの質問を送信
response = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
tools=tools,
messages=[
{"role": "user", "content": "東京の天気を教えてください"}
]
)
# 2回目: ツール結果を返送
if response.stop_reason == "tool_use":
tool_block = next(b for b in response.content if b.type == "tool_use")
tool_result = get_weather(**tool_block.input)
final_response = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
tools=tools,
messages=[
{"role": "user", "content": "東京の天気を教えてください"},
{"role": "assistant", "content": response.content},
{
"role": "user",
"content": [
{
"type": "tool_result",
"tool_use_id": tool_block.id,
"content": json.dumps(tool_result, ensure_ascii=False)
}
]
}
]
)
print(final_response.content[0].text)
Tool Use 設計のベストプラクティス
- ツール説明を具体的に書く: Claude がツールを正しく選択するために、説明文はできるだけ具体的に記述します
- パラメータの description も必須: 各パラメータの説明が Claude の引数推論精度に直結します
- ツール数は必要最小限に: 定義が多すぎると選択精度が下がります。1 リクエストに 5〜10 個程度が目安です
Tool Use を活用すれば、Claude を起点にデータベース検索、API 呼び出し、計算処理などを自律的に実行する AI エージェントを構築できます。さらに高度なエージェント開発についてはClaude Agent SDK 実装ガイドを参照してください。
プロンプトキャッシュでコストを最大 90% 削減
プロンプトキャッシュは、API コール間で以前処理したプロンプトの一部を再利用する機能です。同じシステムプロンプトやドキュメントを毎回送信するケースで、入力トークンのコストを大幅に削減できます。
プロンプトキャッシュの仕組みと TTL
キャッシュには 2 つのモードがあります。
| モード | 書込コスト | 読取コスト | 有効期間 |
|---|---|---|---|
| 5 分キャッシュ | 基本入力の 1.25 倍 | 基本入力の 0.1 倍 | 5 分 |
| 1 時間キャッシュ | 基本入力の 2 倍 | 基本入力の 0.1 倍 | 1 時間 |
5 分キャッシュなら 1 回のキャッシュ読取で元が取れます。1 時間キャッシュは書込コストが高い分、長時間にわたって繰り返し利用するケースで効果を発揮します。
実装例(Python)
import anthropic
client = anthropic.Anthropic()
# 大きなシステムプロンプトをキャッシュ
response = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
system=[
{
"type": "text",
"text": "あなたは金融アドバイザーです。以下の規約に従って回答してください...",
"cache_control": {"type": "ephemeral"} # 5分キャッシュ
}
],
messages=[
{"role": "user", "content": "投資信託と ETF の違いを教えてください"}
]
)
# キャッシュ利用状況はレスポンスの usage で確認
print(f"キャッシュ書込: {response.usage.cache_creation_input_tokens} tokens")
print(f"キャッシュ読取: {response.usage.cache_read_input_tokens} tokens")
キャッシュが効果的なケース
- 同じシステムプロンプトを繰り返し使う: チャットボットの性格設定やルールなど
- 大量のドキュメントを含むリクエスト: RAG でドキュメントをコンテキストに含める場合
- マルチターン会話: 会話が進むにつれて蓄積する入力トークンのコスト削減
画像入力(マルチモーダル)
Claude は画像を入力として受け取り、内容の説明、分析、OCR などを実行できます。
import anthropic
import base64
client = anthropic.Anthropic()
# 画像ファイルをBase64エンコード
with open("chart.png", "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
message = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/png",
"data": image_data
}
},
{
"type": "text",
"text": "このグラフのトレンドを分析してください"
}
]
}
]
)
URL 指定での画像入力にも対応しており、source.type を "url" にすれば外部URLから直接画像を読み込めます。対応フォーマットは JPEG、PNG、GIF、WebP です。画像のトークン消費量はサイズと解像度に依存するため、不要に高解像度な画像を送らないことがコスト管理のポイントです。一般的に、1枚の画像は数百〜数千トークンを消費します。
Extended Thinking(拡張思考)
Extended Thinking は、Claude が回答前に内部で「思考」プロセスを実行する機能です。複雑な推論、数学、コード生成など、段階的な思考が必要なタスクで精度が向上します。
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=8192,
thinking={
"type": "enabled",
"budget_tokens": 5000 # 思考に使えるトークン数の上限
},
messages=[
{"role": "user", "content": "以下のコードのバグを見つけて修正してください: ..."}
]
)
# 思考過程と最終回答を分離して取得
for block in response.content:
if block.type == "thinking":
print(f"[思考過程] {block.thinking}")
elif block.type == "text":
print(f"[回答] {block.text}")
budget_tokens で思考に使用するトークン数の上限を制御できます。精度とコストのバランスを見ながら調整してください。
エラーハンドリングとレート制限対策
よくあるエラーと対処法
| エラー | HTTP ステータス | 原因と対処 |
|---|---|---|
authentication_error | 401 | API キーが無効。Console で確認 |
rate_limit_error | 429 | レート制限に到達。リトライで対応 |
overloaded_error | 529 | サーバー過負荷。時間を置いてリトライ |
invalid_request_error | 400 | リクエスト形式の問題。パラメータを確認 |
レート制限の Tier 別一覧
API の利用量に応じて自動的に Tier が上がり、制限が緩和されます。以下は 2026 年 5 月時点の参考値です。
| Tier | 月額上限 | RPM(リクエスト/分) |
|---|---|---|
| Tier 1 | $100 | 50 |
| Tier 2 | $500 | 1,000 |
| Tier 3 | $1,000 | 2,000 |
| Tier 4 | $5,000 | 4,000 |
具体的なトークン/分の制限はモデルによって異なり、頻繁に更新されます。最新の値は Anthropic 公式ドキュメントで確認してください。
エクスポネンシャルバックオフの実装
import anthropic
import time
import random
client = anthropic.Anthropic()
def call_with_retry(messages, max_retries=5):
for attempt in range(max_retries):
try:
return client.messages.create(
model="claude-sonnet-4-6-20260514",
max_tokens=1024,
messages=messages
)
except anthropic.RateLimitError:
wait_time = (2 ** attempt) + random.uniform(0, 1) # ジッター付き
print(f"レート制限。{wait_time:.1f}秒後にリトライ...")
time.sleep(wait_time)
raise Exception("最大リトライ回数に到達")
Python SDK には組み込みのリトライ機能もあります。デフォルトで 429 エラーと 529 エラーに対して自動リトライが有効になっているため、多くのケースでは明示的なリトライ実装は不要です。Claude Code を使った開発でのエラー対処についてはClaude Code トラブルシューティングガイドも参照してください。
本番運用に向けて
API キーのセキュリティ管理
- 環境変数で管理:
.envファイルや AWS Secrets Manager、GCP Secret Manager を使用 - ソースコードにハードコーディングしない:
.gitignoreに.envを追加 - キーのローテーション: 定期的に新しいキーを発行し、古いキーを無効化
- Workspace で分離: 本番環境と開発環境で異なる Workspace・API キーを使用
クラウドプロバイダー経由の利用(Bedrock / Vertex AI / Azure)
Anthropic API には直接アクセスするほか、AWS Bedrock や Google Vertex AI を経由して利用する方法もあります。
| プラットフォーム | メリット |
|---|---|
| AWS Bedrock | AWS の IAM・VPC と統合。既存の AWS インフラに乗せやすい |
| Google Vertex AI | GCP の認証基盤と統合。BigQuery 連携が容易 |
| Azure AI Foundry | Azure 環境との統合。エンタープライズコンプライアンス |
既にクラウドプロバイダーにコミットがある場合は、統合請求やネットワーク最適化のメリットがあります。ただし、最新モデルや機能の利用に遅延が生じる場合がある点に留意してください。
コスト監視とアラート設定
- Console のダッシュボード: リアルタイムのトークン消費量を確認
- Monthly Spend Limit: 月額上限を設定して予期せぬ高額請求を防止
- usage フィールドの活用: 各レスポンスの
usageでトークン消費を記録し、コスト推移を可視化
Claude の API を活用したアプリケーション開発の全体像についてはAI コーディングツール比較 2026も参考になります。また、Claude Code を活用した開発フロー全般はClaude Code 完全ガイドで詳しく解説しています。
よくある質問
よくある質問
まとめ
Anthropic API は、Claude の強力な自然言語処理能力をアプリケーションに組み込むための開発者向け API です。Python・TypeScript の公式 SDK が提供されており、基本的な API 呼び出しからストリーミング、Tool Use、プロンプトキャッシュまで、幅広い機能を活用できます。
本記事のコード例はそのままコピペして動作するように設計しています。まずは Sonnet 4.6 で小規模な PoC を試し、ユースケースに合わせてモデルや機能を選択していくのが実践的なアプローチです。
より高度な活用として、Claude Agent SDK を使ったエージェント開発や、Claude Managed Agents によるクラウド上でのエージェント運用も検討してみてください。
koromo では AI 開発支援サービスを提供しています。 Claude API を活用したチャットボット開発、RAG システム構築、AI エージェント開発など、構想段階からのご相談を承っています。お問い合わせはこちら。


