結論: Claude APIは「pip install anthropic」の1行から始まり、Haiku 4.5なら1Mトークン$0.80/$4でコスト効率よくAIアプリを構築できます。
この記事の要点:
- 要点1: APIキー取得→SDK install→最初のメッセージまで10分で完了。4ステップで動かせる
- 要点2: Haiku 4.5(軽量・高速)/ Sonnet 4.6(バランス)/ Opus 4.6(最高品質)の3モデルを用途別に解説
- 要点3: 基本リクエスト・ストリーミング・マルチターン・ツール使用・画像解析の5実装パターンを全公開
対象読者: Pythonを少し書けるビジネスパーソンやDX担当者でClaude APIを使ったアプリ開発を始めたい方
読了後にできること: 今日中にClaude APIを呼び出す最初のPythonスクリプトを動かせる
「ChatGPTのAPIは調べたけど、ClaudeのAPIってどう始めるの?」
研修先のエンジニア担当者から最近増えてきた質問です。Claude(Anthropic製AI)が企業での評判が上がるにつれ、「自社システムにClaude APIを組み込みたい」という相談が増えてきました。
実際に触ってみると、Claude APIはOpenAIのAPIと似た構造で、OpenAI APIを使ったことがある方なら驚くほどスムーズに移行できます。そしてClaude APIの大きな特徴は1Mトークン(Opus 4.6)という驚異的な長いコンテキストウィンドウ。長文の契約書・報告書・コードベースを丸ごと渡して分析させることができます。
この記事では、Claude APIのPython SDKを使って「最初のメッセージを送る」から「ツール使用(function calling)まで」をコピペ可能なコードで全解説します。
Gemini APIとの比較についてはGemini API入門ガイド、Claude全体の概要はChatGPT活用 完全ガイドもあわせてご覧ください。
まず試したい「5分即効」コード3選
即効コード1:インストールと最初のメッセージ
# ターミナルでインストール
pip install anthropic
# Python スクリプト (hello_claude.py)
import anthropic
import os
# クライアントを作成
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
# 最初のメッセージを送る
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "こんにちは!あなたは何ができますか?日本語で教えてください。"}
]
)
print(message.content[0].text)
# 不足している情報があれば、最初に質問してから作業を開始してください。効果: これだけで動く。ANTHROPIC_API_KEY環境変数を設定してpython hello_claude.pyで実行するだけ。
即効コード2:ストリーミング(リアルタイム出力)
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
# ストリーミングで文字を逐次表示(ChatGPTのような表示)
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=512,
messages=[{"role": "user", "content": "中小企業がAIを導入すべき理由を5つ教えてください。"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print() # 改行
# 仮定した点は必ず"仮定"と明記してください。即効コード3:システムプロンプトでAIをカスタマイズ
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
# システムプロンプトで「役割」を設定
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="""あなたは株式会社〇〇の優秀なカスタマーサポート担当者です。
製品についての質問に丁寧かつ簡潔に答えてください。
わからないことは正直に「確認が必要です」と答えてください。
数字と固有名詞は、根拠(出典/計算式)を添えてください。""",
messages=[
{"role": "user", "content": "返品ポリシーについて教えてください"}
]
)
print(message.content[0].text)Step 1: APIキーの取得(5分)
- console.anthropic.comにアクセス
- アカウント作成(Google/GitHub連携可)
- 「API Keys」→「Create Key」でAPIキーを発行
- 環境変数に設定する:
# Mac/Linux (ターミナル)
export ANTHROPIC_API_KEY="sk-ant-api03-..."
# .envファイルを使う場合(推奨)
# pip install python-dotenv
# .env ファイルに記載:
# ANTHROPIC_API_KEY=sk-ant-api03-...
# Python側:
from dotenv import load_dotenv
load_dotenv()
import os
api_key = os.environ.get("ANTHROPIC_API_KEY")
# 不足している情報があれば、最初に質問してから作業を開始してください。重要: APIキーをGitHubにアップロードしないこと。.gitignoreに.envを必ず追加してください。
Step 2: モデル選定とコスト計算
2026年3月時点のClaude APIの主要モデルです(料金は変更される場合があります。最新はAnthropic公式で確認)。
| モデル | 入力(1Mトークン) | 出力(1Mトークン) | コンテキスト | おすすめ用途 |
|---|---|---|---|---|
| Haiku 4.5 | $0.80 | $4.00 | 200K | 高頻度・軽量タスク(分類・要約・チャット) |
| Sonnet 4.6 | $3.00 | $15.00 | 200K | バランス型(コード生成・分析・一般業務) |
| Opus 4.6 | $15.00 | $75.00 | 1M | 最高品質・長文(大規模コードレビュー・研究) |
コスト感の目安(参考値):
- 日本語テキスト100字 ≈ 約100〜200トークン
- Haiku 4.5で1日1,000リクエスト(各200トークン入出力)= 推定コスト $0.24〜程度(実際の利用パターンによる)
- 月額換算: $7〜程度(変動あり)
Step 3: Python実装例5選
実装例1:マルチターン会話(チャットボット)
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def chat(conversation_history: list, user_message: str) -> tuple:
"""会話履歴を保持したチャット関数"""
# 新しいメッセージを追加
conversation_history.append({"role": "user", "content": user_message})
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
system="あなたは親切なビジネスアシスタントです。",
messages=conversation_history
)
assistant_message = response.content[0].text
# アシスタントの返答を履歴に追加
conversation_history.append({"role": "assistant", "content": assistant_message})
return assistant_message, conversation_history
# 会話ループ
history = []
print("チャット開始('quit'で終了)")
while True:
user_input = input("あなた: ")
if user_input.lower() == "quit":
break
reply, history = chat(history, user_input)
print(f"Claude: {reply}n")
# 不足している情報があれば、最初に質問してから作業を開始してください。実装例2:ドキュメント分析(長文対応)
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def analyze_document(document_text: str, task: str) -> str:
"""長文ドキュメントを分析する(最大200Kトークン対応)"""
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=2048,
messages=[
{
"role": "user",
"content": f"""以下のドキュメントについて、{task}
ドキュメント:
{document_text}
仮定した点は必ず"仮定"と明記してください。"""
}
]
)
return response.content[0].text
# 使用例(契約書レビュー)
with open("contract.txt", "r", encoding="utf-8") as f:
contract = f.read()
review = analyze_document(
contract,
"重要な条項を抽出し、リスクがある点を指摘してください。法的判断は専門家に確認が必要です。"
)
print(review)実装例3:ツール使用(Tool Use / Function Calling)
import anthropic
import json
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
# ツール定義(Claudeが使える「関数」を定義)
tools = [
{
"name": "get_weather",
"description": "指定した都市の天気情報を取得する",
"input_schema": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "都市名(例: 東京, 大阪)"},
"date": {"type": "string", "description": "日付(例: 今日, 明日)"}
},
"required": ["city"]
}
}
]
# ツールを実際に実行する関数
def execute_tool(tool_name: str, tool_input: dict) -> str:
if tool_name == "get_weather":
# 実際には天気APIを呼ぶ。ここではモック
return f"{tool_input['city']}の天気: 晴れ、気温22度(モックデータ)"
return "ツールが見つかりません"
# Claudeにツール使用を許可してメッセージ送信
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
tools=tools,
messages=[{"role": "user", "content": "東京の今日の天気を教えてください"}]
)
# ツール使用が要求された場合の処理
if response.stop_reason == "tool_use":
tool_use = [block for block in response.content if block.type == "tool_use"][0]
tool_result = execute_tool(tool_use.name, tool_use.input)
print(f"ツール実行結果: {tool_result}")
# 数字と固有名詞は、根拠(出典/計算式)を添えてください。実装例4:画像の分析(ビジョン)
import anthropic
import base64
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def analyze_image(image_path: str, question: str) -> str:
"""画像を分析する"""
with open(image_path, "rb") as f:
image_data = base64.standard_b64encode(f.read()).decode("utf-8")
ext = image_path.split(".")[-1].lower()
media_types = {"jpg": "image/jpeg", "jpeg": "image/jpeg",
"png": "image/png", "gif": "image/gif", "webp": "image/webp"}
media_type = media_types.get(ext, "image/jpeg")
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "image",
"source": {"type": "base64", "media_type": media_type, "data": image_data}
},
{"type": "text", "text": question}
]
}
]
)
return message.content[0].text
# 使用例(商品写真の説明文生成)
description = analyze_image(
"product.jpg",
"この商品の特徴を200字でECサイト向けに説明してください。"
)
print(description)
# 不足している情報があれば、最初に質問してから作業を開始してください。実装例5:バッチ処理(大量データの効率処理)
import anthropic
import os, time
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def batch_classify(texts: list, categories: list) -> list:
"""複数テキストを一括分類(レート制限考慮)"""
results = []
category_str = "・".join(categories)
for i, text in enumerate(texts):
prompt = f"""以下のテキストを「{category_str}」のいずれか1つに分類してください。
カテゴリ名のみを返答してください。
テキスト: {text}"""
try:
response = client.messages.create(
model="claude-haiku-4-5", # バッチ処理はHaikuが最適
max_tokens=50,
messages=[{"role": "user", "content": prompt}]
)
results.append(response.content[0].text.strip())
except anthropic.RateLimitError:
time.sleep(60) # レート制限時は1分待機してリトライ
results.append("ERROR_RATE_LIMIT")
# 50件ごとに少し待機(API負荷軽減)
if i % 50 == 0 and i > 0:
time.sleep(1)
return results
# 使用例(問い合わせメールのカテゴリ分類)
emails = ["返品したい", "配送が遅い", "商品の使い方がわからない"]
categories = ["返品・交換", "配送", "製品サポート", "請求", "その他"]
results = batch_classify(emails, categories)
for email, category in zip(emails, results):
print(f"{email} → {category}")
# 数字と固有名詞は、根拠(出典/計算式)を添えてください。【要注意】Claude API入門の失敗パターン
失敗1:max_tokensを設定しない
❌ max_tokensを省略してリクエスト(デフォルト値はモデルによって異なる)
⭕ 必要最低限のmax_tokensを設定して不要なコスト増を防ぐ
失敗2:エラーハンドリングを省略する
❌ try/exceptなしでAPIを呼ぶ(RateLimitError, APIConnectionErrorが起きると落ちる)
⭕ 少なくともanthropicの主要例外(RateLimitError, APIConnectionError)を処理する
import anthropic
try:
response = client.messages.create(...)
except anthropic.RateLimitError:
print("レート制限に達しました。しばらく待ってから再試行してください。")
except anthropic.APIConnectionError:
print("API接続エラー。ネットワーク接続を確認してください。")
except anthropic.APIStatusError as e:
print(f"APIエラー: {e.status_code} {e.message}")
# 仮定した点は必ず"仮定"と明記してください。失敗3:コンテキストウィンドウを超える入力を送る
❌ 無制限に会話履歴を保持し続けてコンテキスト上限を超えてエラーになる
⭕ 会話履歴は最新N件に制限するか、要約してから渡す
失敗4:モデルを最高品質に固定する
❌ 全てのタスクにOpus 4.6を使って月額コストが急増
⭕ 軽量タスク(分類・要約)はHaiku 4.5、重要タスクはSonnetという使い分けをする
まとめ:今日から始める3つのアクション
- 今日やること: console.anthropic.comでAPIキーを取得して即効コード1(hello_claude.py)を実行してみる
- 今週中: 実装例5選から自社業務に最も近いもの1つを選んでカスタマイズし、実際のデータで試す
- 今月中: モデルの使い分け(Haiku/Sonnet/Opus)を意識したコスト管理を始め、月次の利用料金を確認する
Claude APIはAnthropicの公式SDKが充実しており、日本語のドキュメントも増えてきています。まず動かすことが最優先。10分のセットアップで最初のAIアプリが動く体験は、必ず次のアイデアを生み出します。
あわせて読みたい:
- Gemini API入門ガイド|Python実装からコスト計算まで — GeminiとClaudeを比較しながら学ぶ
- Claude Code使い方入門ガイド — APIではなくCLIツールとしてのClaudeの使い方
- AI導入戦略 完全ガイド — APIを活用した業務AI化の全体設計
参考・出典
- Get started with Claude – Claude API Docs — Anthropic公式(参照日: 2026-03-27)
- GitHub – anthropics/anthropic-sdk-python — Anthropic公式GitHub(参照日: 2026-03-27)
- Anthropic Academy: Claude API Development Guide — Anthropic公式(参照日: 2026-03-27)
- GitHub – anthropics/claude-agent-sdk-python — Anthropic公式GitHub(参照日: 2026-03-27)
著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。早稲田大学法学部在学中に生成AIの可能性に魅了され、X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。
ご質問・ご相談はお問い合わせフォームからお気軽にどうぞ。
あわせて読みたい
- Claude API上級者向けガイド(AIツールラボ)


