Tips & Tricks

Claude Code APIコスト完全攻略|月$450→$45にした実践削減テクニック5選

Claude Code のAPI料金を実際の数字で解説。プロンプトキャッシュ・モデル最適化・バッチ処理で月$450→$45の90%削減を達成した方法を完全公開。

「Claude Code を毎日使っていたら、先月のAPI料金が$450だった」——このような経験をしたエンジニアは増えています。Claude Code は強力な反面、使い方次第でコストが10倍以上変わります

このサイト (claudecode-lab.com) では実際に Claude Code で毎日3本の多言語記事を自動生成しています。最初の1週間で$380を使いましたが、最適化後は同じ作業量で月$40台に抑えています。90%削減を実現した具体的な手順をすべて公開します。

まず「どこで課金されているか」を把握する

料金を削減するには、何に課金されているかを正確に理解する必要があります。

Claude API 料金 = 入力トークン × 入力単価 + 出力トークン × 出力単価

モデル別料金表 (2026年4月時点)

モデル入力 (通常)入力 (キャッシュ読込)出力
claude-opus-4-6$15/1M$1.50/1M$75/1M
claude-sonnet-4-6$3/1M$0.30/1M$15/1M
claude-haiku-4-5$0.80/1M$0.08/1M$4/1M

2つの重要な気づき:

  1. 出力は入力の5倍高い → 出力を絞るだけで大幅削減
  2. キャッシュ読込は通常入力の1/10 → キャッシュが最大の武器

Anthropic コンソールでコストの内訳を確認する

# API経由でも確認できる
curl https://api.anthropic.com/v1/usage \
  -H "x-api-key: $ANTHROPIC_API_KEY" \
  -H "anthropic-version: 2023-06-01"

まずどのモデルに・何トークン使っているかを把握することが第一歩です。

テクニック1: プロンプトキャッシュで入力コストを1/10に

最も即効性が高い対策。system prompt に1行追加するだけで入力コストが1/10になります。

仕組み

Anthropic のプロンプトキャッシュは、同じ内容を5分以内に再送した場合に$1.50/1Mのキャッシュ料金で提供する仕組みです。5分のTTL(有効期限)があり、その間は何回呼んでも激安です。

実装

import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();

// ❌ キャッシュなし: 毎回 $15/1M で課金
const res = await client.messages.create({
  model: "claude-opus-4-6",
  max_tokens: 1024,
  system: "あなたはXXXプロジェクトのエキスパートです。\n" + longProjectContext,
  messages: [{ role: "user", content: prompt }],
});

// ✅ キャッシュあり: 2回目以降は $1.50/1M (90%オフ)
const res = await client.messages.create({
  model: "claude-opus-4-6",
  max_tokens: 1024,
  system: [
    {
      type: "text",
      text: "あなたはXXXプロジェクトのエキスパートです。\n" + longProjectContext,
      cache_control: { type: "ephemeral" },  // ← これだけ追加
    },
  ],
  messages: [{ role: "user", content: prompt }],
});

実際の削減額 (このサイトの場合)

毎日3記事 × system prompt 8,000tokens × Opus $15/1M

最適化前:
  3記事 × 10呼び出し × 8,000tokens × $15/1M = $3.60/日 → $108/月

最適化後 (キャッシュ込み):
  初回書き込み: 3回 × 8,000tokens × $18.75/1M = $0.45/日
  残り27回読込: 27 × 8,000tokens × $1.50/1M = $0.32/日
  合計: $0.77/日 → $23/月

削減額: $85/月 (79%削減)

キャッシュが効かないケースに注意: TTL 5分を超えるとキャッシュが無効になります。バッチ処理は5分以内に同じsystem promptで複数呼び出しをまとめると効果的です。

テクニック2: タスクでモデルを使い分ける

全タスクに Opus を使うのはポルシェで配達をするようなものです。

使い分けの基準

type TaskComplexity = "complex" | "standard" | "simple";

function getModel(task: TaskComplexity): string {
  return {
    complex: "claude-opus-4-6",        // 設計・難しいデバッグ・コードレビュー
    standard: "claude-sonnet-4-6",     // 一般的な実装・リファクタリング
    simple: "claude-haiku-4-5-20251001", // 翻訳・フォーマット・分類・要約
  }[task];
}

翻訳タスクの実例 (このサイトの多言語展開)

// 記事を9言語に翻訳する場合

// ❌ Opusで翻訳: $75/1M × 出力2000tokens × 9言語 = $1.35/記事
const translations = await translateWithModel("claude-opus-4-6", article);

// ✅ Haikuで翻訳: $4/1M × 出力2000tokens × 9言語 = $0.072/記事
const translations = await translateWithModel("claude-haiku-4-5-20251001", article);

// 削減: $1.35 → $0.072 (94.7%削減、翻訳品質は実用上ほぼ同等)

毎日3記事 × 9言語翻訳をHaikuに切り替えた効果: 月$121 → $6.5 (94%削減)

テクニック3: 出力トークンを意図的に絞る

出力は入力の5倍高いのに、無駄に長い出力を許容しているケースが多いです。

出力を絞るプロンプトテクニック

❌ 「このコードの問題を教えて」
   → 長々とした解説が返ってくる (1000tokens)

✅ 「このコードの問題点を箇条書き3項目以内で、各項目2行以内で教えて」
   → 簡潔な回答 (200tokens)

削減効果: 出力トークン80%削減 = コスト $0.075 → $0.015 / 呼び出し

max_tokens を適切に設定

// ❌ デフォルトの4096は過剰なケースが多い
const res = await client.messages.create({
  model: "claude-opus-4-6",
  max_tokens: 4096,  // 最大4096tokens課金される可能性
  messages: [...]
});

// ✅ 用途に応じて設定
const configs = {
  codeReview:      { max_tokens: 512  },  // 指摘事項のみ
  bugAnalysis:     { max_tokens: 1024 },  // 原因 + 修正案
  implementFeature:{ max_tokens: 4096 },  // フル実装
  summarize:       { max_tokens: 256  },  // 要約のみ
};

テクニック4: サブエージェントでコンテキストを分離

長い会話セッションでは、過去の会話履歴が毎回入力に含まれてコストが膨らみます。サブエージェントに委譲することでコンテキストをリセットできます。

// メインの会話が長くなったら、重い処理をサブエージェントへ

// ❌ メインコンテキストで翻訳: 過去の全会話履歴が毎回送られる
const translation = await translateInCurrentContext(article);

// ✅ サブエージェントへ委譲: 新鮮なコンテキストで実行
const translation = await Agent({
  subagent_type: "general-purpose",
  prompt: `次の記事を英語に翻訳して:\n\n${article}`,
  // ← 過去の会話履歴なし、article だけが入力
});

Claude Code の Agent ツールはまさにこのパターンで動作します。翻訳・検索・ファイル操作など「スポット的な作業」はサブエージェント化が鉄則です。

テクニック5: コスト監視と上限アラートの設定

最後は「コストを把握して上限を設ける」こと。無限課金を防ぐ安全装置です。

Anthropic コンソールでの設定

  1. Anthropic ConsoleUsage Limits に移動
  2. Monthly budget を設定 (例: $50/月)
  3. Alert threshold を設定 (例: $40で通知)

コードレベルでのコスト追跡

// レスポンスのusageを記録してコストを追跡
interface CostTracker {
  inputTokens: number;
  outputTokens: number;
  cacheReadTokens: number;
  cacheWriteTokens: number;
}

function calculateCost(usage: CostTracker, model: string): number {
  const rates = {
    "claude-opus-4-6": {
      input: 15, cacheRead: 1.5, cacheWrite: 18.75, output: 75
    },
  };
  const rate = rates[model];
  return (
    (usage.inputTokens * rate.input +
     usage.cacheReadTokens * rate.cacheRead +
     usage.cacheWriteTokens * rate.cacheWrite +
     usage.outputTokens * rate.output) / 1_000_000
  );
}

const res = await client.messages.create({ ... });
const cost = calculateCost(res.usage, "claude-opus-4-6");
console.log(`This call cost: $${cost.toFixed(4)}`);

まとめ: 削減効果の積み上げ

テクニック削減効果難易度
プロンプトキャッシュ最大90%低 (1行追加)
モデル使い分け最大95%低〜中
出力トークン制限30〜80%低 (プロンプト改善)
サブエージェント委譲20〜50%
上限アラート設定爆発防止

このサイトでの実績:

最適化前: $450/月 (全タスクOpus、キャッシュなし)
最適化後: $45/月  (Haiku翻訳、Opusキャッシュ、出力制限)
削減額: $405/月 (90%削減)

今日すぐできる最初の一手: system prompt に cache_control: { type: "ephemeral" } を追加する。これだけで入力コストが1/10になります。残りのテクニックはその後で順番に導入しましょう。

関連記事

参考資料

#claude-code #cost #api #prompt-caching #optimization #anthropic

Claude Codeをもっと活用しませんか?

実務で使えるプロンプトテンプレート50選。コピペですぐ使えます。

無料プレゼント

無料PDF: Claude Code 5分でわかるチートシート

メールアドレスを登録するだけで、A4 1枚のチートシートPDFを今すぐお送りします。

個人情報は厳重に管理し、スパムは送りません。

Masa

この記事を書いた人

Masa

現役DX室長|Claude Code でゼロから多言語AI技術メディア運営中。実務直結の自動化、AI開発相談・研修受付中。

PR

関連書籍・参考図書

この記事のテーマに関連する書籍を楽天ブックスで探せます。

※ 当サイトは楽天市場のアフィリエイトプログラムに参加しています。上記リンクから商品をご購入いただくと、運営者に紹介料が支払われる場合があります。