Claude API は、最初の1回さえ通してしまえば驚くほど扱いやすくなります。難しいのは仕組みの理解よりも「最小構成で確実に動かす順番」を知ることだと、個人開発でいくつものサービスをつないできて感じます。ここでは API キーの取得から Python / TypeScript SDK の最初のリクエストまでを、寄り道せず5分で通せるように並べました。後半では、動かした直後につまずきやすいエラー処理とコストの見積もりも添えています。
Claude API とは
Claude API は、自分のアプリケーションに Claude の能力を組み込むためのインターフェースです。Anthropic の開発者プラットフォームを通じて、テキスト生成、コード生成、分析、要約などの機能をプログラムから利用できます。
API キーの取得
- console.anthropic.com にアクセス
- アカウントを作成またはログイン
- 「API Keys」セクションで新しいキーを作成
- キーを安全な場所に保存(一度しか表示されません)
# 環境変数に設定
export ANTHROPIC_API_KEY="YOUR_API_KEY"キーをソースコードに直書きしないことだけは、最初に徹底しておくと後で困りません。環境変数から読む形にしておけば、リポジトリへの誤コミットを防げます。
Python SDK
インストール
pip install anthropic最初のリクエスト
import anthropic
client = anthropic.Anthropic() # 環境変数 ANTHROPIC_API_KEY を自動で読み込む
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[
{"role": "user", "content": "Pythonで素数判定関数を書いてください"}
]
)
print(message.content[0].text)model に渡す文字列は、公式のモデル一覧に載っている正確な名前を使います。ここを1文字でも間違えると 404 相当のエラーになるため、最初のつまずきはたいていここです。
ストリーミングレスポンス
リアルタイムに応答を受け取りたい場合:
with client.messages.stream(
model="claude-sonnet-5",
max_tokens=1024,
messages=[
{"role": "user", "content": "機械学習の基本概念を説明して"}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)TypeScript SDK
インストール
npm install @anthropic-ai/sdk最初のリクエスト
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic(); // 環境変数 ANTHROPIC_API_KEY を自動で読み込む
const message = await client.messages.create({
model: "claude-sonnet-5",
max_tokens: 1024,
messages: [
{ role: "user", content: "TypeScriptでFizzBuzzを実装して" }
],
});
console.log(message.content[0].text);主要パラメータ
| パラメータ | 説明 | 例 |
|---|---|---|
model | 使用モデル | claude-opus-4-8, claude-sonnet-5 |
max_tokens | 最大出力トークン数 | 1024, 4096 |
temperature | ランダム性(0〜1) | 0 = 決定的, 1 = 創造的 |
system | システムプロンプト | "あなたはPythonの専門家です" |
stop_sequences | 停止文字列(この列に達すると生成を止める) | ["<END>"] |
システムプロンプトの活用
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
system="あなたはシニアソフトウェアエンジニアです。回答には必ずコード例を含め、パフォーマンスについてもコメントしてください。",
messages=[
{"role": "user", "content": "効率的なキャッシュ戦略について教えて"}
]
)エラーハンドリングの最小形
最初のサンプルが通ると、次に必ず出会うのがエラーです。実運用では「落ちたときにどう振る舞うか」まで決めて初めて、安心してリクエストを投げられます。SDK は例外の型を分けてくれているので、少なくともレート制限・入力エラー・その他の通信エラーの3種類は分けて受け止めておくと、原因の切り分けが速くなります。
import anthropic
client = anthropic.Anthropic()
try:
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": "こんにちは"}],
)
print(message.content[0].text)
except anthropic.RateLimitError:
# 429: 少し待って再試行する。指数バックオフが定石
print("レート制限に達しました。時間を空けて再試行してください")
except anthropic.BadRequestError as e:
# 400: モデル名の誤り・max_tokens 超過など、こちら側の入力ミス
print(f"リクエストが不正です: {e}")
except anthropic.APIStatusError as e:
# その他のサーバー側エラー。status_code で挙動を分ける
print(f"APIエラー({e.status_code}): {e.message}")私自身、Dolice Labs のサイト群を個人開発で回すなかで痛い目を見たのは、RateLimitError を握りつぶして即リトライし、かえって制限を悪化させたときでした。429 を受け取ったら「待ってから再試行」を必ず挟む。この一手間だけで、夜間に自動で回すバッチが安定します。
Tool Use(関数呼び出し)
Claude API は外部関数の呼び出しに対応しています:
import json
message = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
tools=[
{
"name": "get_weather",
"description": "指定された都市の天気を取得する",
"input_schema": {
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "都市名(例: 東京)"
}
},
"required": ["city"]
}
}
],
messages=[
{"role": "user", "content": "東京の天気を教えて"}
]
)モデルの選び方
| モデル | 特徴 | 推奨用途 |
|---|---|---|
| Claude Opus 4.8 | 最高性能、深い推論 | 複雑な分析、高品質コード生成 |
| Claude Sonnet 5 | バランス型、高速 | 日常的なタスク、チャットボット |
| Claude Haiku 4.5 | 最速、低コスト | 大量処理、分類、要約 |
最初の1本は、まず Sonnet 5 で組むのが素直です。速度と品質のバランスがよく、動かしながら手応えを掴めます。精度が足りなければ Opus 4.8 へ上げ、逆に分類や要約を大量に回すなら Haiku 4.5 へ下げる——このように、動かしてから用途に合わせて調整するのが結局いちばん早い、というのが私の実感です。
コストの目安を最初に掴んでおく
API はトークン単位の従量課金です。最初の実験では無料クレジットで足りますが、本番に載せる前に単価の感覚を持っておくと、後で請求に驚かずに済みます。
Sonnet 5 は導入価格として入力100万トークンあたり2ドル・出力10ドルが設定されており、この価格は 2026年8月31日まで(以降は3ドル・15ドルに戻る予定)とされています。たとえば入力5万トークン・出力1万トークンのリクエストなら、おおよそ 0.1ドル + 0.1ドル = 0.2ドル前後という桁感です。
動かした直後につまずきやすい点
いちばん多いのが、先ほど触れたモデル名の指定ミスです。バージョン表記は更新されるため、記事や古いサンプルのモデル名をそのまま貼らず、公式ドキュメントで最新の文字列を確認してから渡すのが安全です。
次に出会いやすいのが max_tokens の扱いです。これは「出力」の上限であって入力の長さではありません。応答が途中で切れると感じたら、まず max_tokens を疑ってください。逆に大きくしすぎると、無駄な出力にコストを払うことになります。
環境変数の読み込み漏れも定番です。Anthropic() は ANTHROPIC_API_KEY を自動で探しますが、ターミナルを開き直すと export が消えていることがあります。認証エラーが出たら、まず echo $ANTHROPIC_API_KEY で値が入っているかを確認するのが早道です。
次のステップ
- Vision(画像入力) — 画像の分析や説明を API で実行
- Tool Use の応用 — 複雑なワークフローの自動化
- バッチ処理 — 大量のリクエストを効率的に処理
- MCP 連携 — Model Context Protocol でサービス統合
まずは公式の最小サンプルをそのまま動かし、通ったら自分のユースケースの最小形に書き換える。エラー処理を1つ足し、コストの桁感を掴む。この順番で進めれば、5分で動いた最初の呼び出しが、そのまま本番で使える足場になります。お読みいただき、ありがとうございました。