プラン別料金・特徴比較(2026年版)
| プラン | 月額 | 主な利用シーン |
|---|
| 無料 | $0 | 試用・週数回の軽い利用 |
| Claude Pro | $20 | 毎日の開発・業務活用 |
| Claude Max | $100 | 1日8時間+の開発・Claude Code長時間利用 |
| API従量課金 | 使用量 | アプリ開発・自動化・月により変動 |
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 |
プランvsAPI コスト試算コード
# plan_vs_api_calculator.py
# 自分の使用量でProとAPIどちらが安いか計算する
MODELS = {
"claude-haiku-4-5-20251001": (0.80, 4.00),
"claude-sonnet-4-5": (3.00, 15.00),
}
PRO_PLAN_COST = 20.0 # $20/月
def compare_plan_vs_api(daily_requests: int, model: str,
avg_input: int = 2000, avg_output: int = 1000,
use_batches: bool = False) -> dict:
"""ProプランとAPI従量課金のどちらが安いか計算する"""
inp, out = MODELS[model]
per_req = (avg_input * inp + avg_output * out) / 1_000_000
if use_batches:
per_req *= 0.5
monthly_api_cost = per_req * daily_requests * 30
recommendation = "Pro($20)" if monthly_api_cost >= PRO_PLAN_COST else f"API(${monthly_api_cost:.2f})"
savings = abs(monthly_api_cost - PRO_PLAN_COST)
return {
"model": model,
"daily_requests": daily_requests,
"monthly_api_cost": round(monthly_api_cost, 2),
"vs_pro": f"APIが${monthly_api_cost - PRO_PLAN_COST:.2f}" if monthly_api_cost > PRO_PLAN_COST else f"APIが${PRO_PLAN_COST - monthly_api_cost:.2f}安い",
"recommendation": recommendation,
}
# 使用シナリオ別比較
SCENARIOS = [
("個人開発(軽め)", 10, "claude-haiku-4-5-20251001"),
("個人開発(標準)", 30, "claude-sonnet-4-5"),
("業務開発(ヘビー)", 100, "claude-sonnet-4-5"),
]
print(f"{'シナリオ':<20} {'月API費用':>10} {'Proとの比較':>20} {'推奨':>15}")
print("-" * 70)
for name, daily, model in SCENARIOS:
result = compare_plan_vs_api(daily, model)
print(f"{name:<20} ${result['monthly_api_cost']:>9} {result['vs_pro']:>20} {result['recommendation']:>15}")
コスト最適化: 3つの割引を組み合わせる
# cost_optimization.py
# Batches API (50%オフ) + Prompt Caching (90%オフ) で最大コスト削減
import anthropic
client = anthropic.Anthropic()
SYSTEM_PROMPT_LONG = """あなたはPythonの専門家です。
以下のコーディングルールに従ってください:
- 型ヒントを必ず使う
- docstringを書く
- エラーハンドリングを含める
[さらに長い仕様を含める...]
""" # ← 実際は数千トークンのシステムプロンプト
def optimized_request(user_question: str) -> str:
"""Prompt Cachingで長いシステムプロンプトを再利用(90%オフ)"""
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
system=[{
"type": "text",
"text": SYSTEM_PROMPT_LONG,
"cache_control": {"type": "ephemeral"} # ← キャッシュ有効化
}],
messages=[{"role": "user", "content": user_question}]
)
cached = getattr(response.usage, "cache_read_input_tokens", 0)
print(f"キャッシュ効果: {cached}トークン再利用 (90%オフ)")
return response.content[0].text
あわせて読みたい