AI業務活用 2026.04.19
【2026年版】Claude API料金比較|Pro vs 従量制で月額いくら安くなるか
Claude API料金体系(2026年8月版)
| モデル | 入力 $/1M | 出力 $/1M | 用途 |
|---|---|---|---|
| claude-haiku-4-5-20251001 | $0.80 | $4.00 | 高速・安価 |
| claude-sonnet-4-5 | $3.00 | $15.00 | 汎用・高品質 |
| claude-opus-5 | $15.00 | $75.00 | 最高品質 |
割引オプション:
- Batches API: 50%オフ(非同期処理)
- Prompt Caching: 最大90%オフ(繰り返し入力)
コスト試算コード
# cost_calculator.py
# 月間APIコストをシナリオ別に試算する
PRICES = {
"claude-haiku-4-5-20251001": (0.80, 4.00),
"claude-sonnet-4-5": (3.00, 15.00),
"claude-opus-5": (15.00, 75.00),
}
PRO_COST = 20.0
def monthly_cost(
model: str,
daily_requests: int,
avg_input: int = 1000,
avg_output: int = 500,
use_batches: bool = False,
cache_hit_rate: float = 0.0
) -> dict:
"""月間APIコストと推奨プランを計算する"""
inp, out = PRICES[model]
# キャッシュ効果(入力トークンの90%削減)
effective_inp = inp * (1 - cache_hit_rate * 0.9)
per_req = (avg_input * effective_inp + avg_output * out) / 1_000_000
# Batches API割引
if use_batches:
per_req *= 0.5
monthly_api = round(per_req * daily_requests * 30, 2)
recommendation = "Pro ($20)" if monthly_api >= PRO_COST else f"API (${monthly_api})"
return {
"monthly_api_usd": monthly_api,
"monthly_api_jpy": int(monthly_api * 150),
"vs_pro": f"${monthly_api - PRO_COST:.2f}" if monthly_api > PRO_COST else f"${PRO_COST - monthly_api:.2f}安い",
"recommendation": recommendation,
}
# シナリオ別比較
SCENARIOS = [
("軽い利用 (10件/日, Haiku)", 10, "claude-haiku-4-5-20251001", False, 0.0),
("中程度 (50件/日, Sonnet)", 50, "claude-sonnet-4-5", False, 0.0),
("自動化 (200件/日, Haiku+Batches)", 200, "claude-haiku-4-5-20251001", True, 0.5),
("本番 (500件/日, Sonnet+Cache)", 500, "claude-sonnet-4-5", True, 0.7),
]
print(f"{'シナリオ':<40} {'月額':>8} {'円換算':>8} {'推奨':>12}")
print("-" * 75)
for name, daily, model, batches, cache in SCENARIOS:
r = monthly_cost(model, daily, use_batches=batches, cache_hit_rate=cache)
print(f"{name:<40} ${r['monthly_api_usd']:>7} ¥{r['monthly_api_jpy']:>7} {r['recommendation']:>12}")
自動化でコストを削減する実装例
# smart_usage.py
# 3つの最適化手法を組み合わせてコストを大幅削減する
import anthropic
client = anthropic.Anthropic()
SHARED_SYSTEM = """あなたはビジネス文書の要約専門家です。
与えられた文書を以下のルールで要約してください:
- 最重要ポイントを3行で要約
- アクションアイテムを箇条書きで列挙
- 感情的な表現を除いた客観的な記述"""
def summarize_documents_batch(documents: list[str]) -> str:
"""複数文書をBatches API(50%オフ)で一括要約する"""
requests = [
{
"custom_id": f"doc_{i}",
"params": {
"model": "claude-haiku-4-5-20251001", # 要約はHaikuで十分
"max_tokens": 256,
"system": SHARED_SYSTEM,
"messages": [{"role": "user", "content": doc}]
}
}
for i, doc in enumerate(documents)
]
batch = client.messages.batches.create(requests=requests)
print(f"{len(documents)}件のバッチ処理: {batch.id}")
print(f"通常比50%オフ(非同期処理、~1時間後に結果取得)")
return batch.id
def summarize_with_cache(document: str) -> str:
"""Prompt Cachingで長いシステムプロンプトをキャッシュ(90%オフ)"""
response = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=256,
system=[{
"type": "text",
"text": SHARED_SYSTEM,
"cache_control": {"type": "ephemeral"} # キャッシュ有効化
}],
messages=[{"role": "user", "content": document}]
)
cached = getattr(response.usage, "cache_read_input_tokens", 0)
if cached > 0:
print(f"✅ キャッシュHIT: システムプロンプト再利用 (90%オフ)")
return response.content[0].text
# コスト比較例: 月200件の要約
# 最適化なし (Sonnet): $200 * 3.00/1M * 2000tokens = $1.20/日 → $36/月
# Haiku + Batches: $200 * 0.80/1M * 0.5 * 2000tokens = $0.16/日 → $4.8/月
# 削減効果: 月$31.2 (87%削減)