CLAUDE LABEN
FORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられていますFORK — Claude Code 2.1.212で/forkの挙動が変わりました。会話を新しいバックグラウンドセッションへ複製し、作業を続けたまま並走できます。従来のセッション内サブエージェントは/subtaskに移りましたLIMITS — WebSearchの呼び出しがセッション単位で既定200回に制限されました。サブエージェントの起動も既定200回が上限で、暴走した検索・委譲のループを止められますMCPBG — 2分を超えるMCPツール呼び出しは自動的にバックグラウンドへ移り、セッションが固まらなくなりました。しきい値はCLAUDE_CODE_MCP_AUTO_BACKGROUND_MSで調整できますPLANFIX — プランモードがtouchやrmといったファイルを変更するBashコマンドを、許可プロンプトもcanUseToolコールバックも通さずに実行してしまう不具合が修正されましたSONNET5 — Claude Sonnet 5は導入価格として入力100万トークンあたり2ドル、出力10ドルで提供中です。8月31日を過ぎると3ドルと15ドルに戻りますIPO — Anthropicが早ければ10月の株式公開を視野に、引受銀行が投資家との面談を組み始めたと報じられています
記事一覧/API & SDK
API & SDK/2026-03-24中級

Claude API Usage & Cost API — APIコストをプログラムで監視・最適化する方法

Anthropic Admin APIのUsage & Cost APIを使って、Claude APIの利用量とコストをプログラムで監視・分析・最適化する方法を、実践的なコード例とともに解説します。

API26コスト管理13Usage API2Cost APIAdmin APIモニタリング最適化5

Claude API のコストを「見える化」する時代へ

Claude APIを本番環境で運用していると、「今月のAPI費用はいくらかかっているのか」「どのモデルが最もコストを消費しているのか」といった疑問が必ず浮かびます。Anthropicが提供する Usage & Cost Admin API を使えば、こうした疑問にプログラムで答えることができます。

このAPIを使えば、Claude Consoleにログインしなくても、トークン消費量やコストの推移をリアルタイムに把握し、チームへの自動レポート配信やアラート設定まで実現できます。

Usage & Cost API とは?

Usage & Cost Admin APIは、Anthropicが提供する管理者向けAPIで、組織のClaude API利用データにプログラムからアクセスできるエンドポイントです。Claude Consoleの「Usage」「Cost」ページで確認できる情報と同等のデータを、APIとして取得できます。

主な活用シーンは以下の通りです。

  • 正確な利用量トラッキング: レスポンスのトークンカウントに頼らず、精密なトークン消費量を取得
  • コスト照合: 経理・会計チーム向けに、Anthropic請求書と内部記録の照合を自動化
  • プロダクト改善: システム変更の効果測定やパフォーマンス監視を実現
  • レートリミット最適化: プロンプトキャッシュの効率を測定し、割り当て容量を最大限に活用
  • 高度な分析: Console画面より踏み込んだデータ分析を実行

2つのエンドポイント

Usage & Cost APIは、目的に応じて2つのエンドポイントを提供しています。

エンドポイントパス用途
Usage API/v1/organizations/usage_report/messagesトークン消費量の詳細な内訳
Cost API/v1/organizations/cost_reportUSD建てのコスト内訳

事前準備:Admin APIキーの取得

Usage & Cost APIを使うには、通常のAPIキー(sk-ant-api...)ではなく、Admin APIキーsk-ant-admin...)が必要です。

Admin APIキーの発行手順は以下の通りです。

  1. Claude Consoleにログイン
  2. Settings → Organization で組織をセットアップ(個人アカウントでは利用不可)
  3. Settings → Admin Keys でAdmin APIキーを発行
  4. 組織内で admin ロールを持つメンバーのみが発行可能
# 環境変数にAdmin APIキーを設定
export ADMIN_API_KEY="sk-ant-admin-your-key-here"

注意: Admin APIキーは通常のAPIキーとは異なります。メッセージ送信には使用できず、管理操作専用です。セキュリティのため、本番環境では環境変数やシークレットマネージャーで管理してください。

Usage API:トークン消費量を詳細に把握する

基本的な使い方

直近7日間のデイリー利用量を取得する最もシンプルな例から始めましょう。

# 直近7日間の日次利用量を取得
curl "https://api.anthropic.com/v1/organizations/usage_report/messages?\
starting_at=2026-03-17T00:00:00Z&\
ending_at=2026-03-24T00:00:00Z&\
bucket_width=1d" \
  --header "anthropic-version: 2023-06-01" \
  --header "x-api-key: $ADMIN_API_KEY"

時間粒度(バケット幅)の選択

データの集計単位は3種類から選択できます。

粒度デフォルトバケット数最大バケット数用途
1m(1分)601,440リアルタイム監視
1h(1時間)24168日次パターン分析
1d(1日)731週次・月次レポート

モデル別の利用量を把握する

# モデル別の日次トークン消費量
curl "https://api.anthropic.com/v1/organizations/usage_report/messages?\
starting_at=2026-03-01T00:00:00Z&\
ending_at=2026-03-24T00:00:00Z&\
group_by[]=model&\
bucket_width=1d" \
  --header "anthropic-version: 2023-06-01" \
  --header "x-api-key: $ADMIN_API_KEY"

group_by パラメータを使うと、以下のディメンションでデータをグルーピングできます。

  • model — モデル別(Claude Opus 4.6, Sonnet 4.6, Haiku 4.5 など)
  • workspace_id — ワークスペース別
  • api_key_id — APIキー別
  • service_tier — サービスティア別(standard, batch, priority)
  • context_window — コンテキストウィンドウサイズ別
  • inference_geo — データレジデンシー地域別
  • speed — 速度モード別(standard, fast)※ベータ

高度なフィルタリング

特定のモデルとサービスティアに絞り込んで、1時間単位で監視する例です。

# Claude Opus 4.6のバッチ処理利用量を1時間単位で取得
curl "https://api.anthropic.com/v1/organizations/usage_report/messages?\
starting_at=2026-03-24T00:00:00Z&\
ending_at=2026-03-24T23:59:59Z&\
models[]=claude-opus-4-6&\
service_tiers[]=batch&\
context_window[]=0-200k&\
bucket_width=1h" \
  --header "anthropic-version: 2023-06-01" \
  --header "x-api-key: $ADMIN_API_KEY"

データレジデンシーの追跡

組織がデータレジデンシーを利用している場合、推論処理がどの地域で実行されたかを確認できます。

# 地域別・モデル別の利用量を取得
curl "https://api.anthropic.com/v1/organizations/usage_report/messages?\
starting_at=2026-03-01T00:00:00Z&\
ending_at=2026-03-24T00:00:00Z&\
group_by[]=inference_geo&\
group_by[]=model&\
bucket_width=1d" \
  --header "anthropic-version: 2023-06-01" \
  --header "x-api-key: $ADMIN_API_KEY"

inference_geo のフィルタ値は globalusnot_available の3種類です。2026年2月以前にリリースされたモデル(Claude Opus 4.6より前)は not_available を返します。

Cost API:コストをUSD建てで取得する

基本的な使い方

# ワークスペース別・サービス別の月間コスト
curl "https://api.anthropic.com/v1/organizations/cost_report?\
starting_at=2026-03-01T00:00:00Z&\
ending_at=2026-03-31T00:00:00Z&\
group_by[]=workspace_id&\
group_by[]=description" \
  --header "anthropic-version: 2023-06-01" \
  --header "x-api-key: $ADMIN_API_KEY"

Cost APIの特徴

Cost APIにはUsage APIと異なる特徴がいくつかあります。

  • コストはすべて USD(米ドル) で、最小単位(セント)の小数文字列として返される
  • トークン利用コスト、Web検索コスト、コード実行コストを個別に追跡可能
  • 時間粒度は 1日(1d)のみ
  • description でグルーピングすると、modelinference_geo などの解析済みフィールドが含まれる
  • Priority Tierのコストは含まれない(Usage APIの service_tier フィルタで追跡)

実践:Pythonでコスト監視ダッシュボードを構築する

ここからは、Pythonを使って実用的なコスト監視スクリプトを構築する方法を紹介します。

import requests
import json
from datetime import datetime, timedelta, timezone
 
# Admin APIキーを設定
ADMIN_API_KEY = "sk-ant-admin-your-key-here"
BASE_URL = "https://api.anthropic.com/v1/organizations"
HEADERS = {
    "anthropic-version": "2023-06-01",
    "x-api-key": ADMIN_API_KEY
}
 
def get_usage_report(days=7, group_by="model"):
    """直近N日間の利用量レポートを取得"""
    now = datetime.now(timezone.utc)
    start = now - timedelta(days=days)
 
    params = {
        "starting_at": start.strftime("%Y-%m-%dT00:00:00Z"),
        "ending_at": now.strftime("%Y-%m-%dT23:59:59Z"),
        "group_by[]": group_by,
        "bucket_width": "1d"
    }
 
    response = requests.get(
        f"{BASE_URL}/usage_report/messages",
        headers=HEADERS,
        params=params
    )
    response.raise_for_status()
    return response.json()
 
def get_cost_report(days=30):
    """直近N日間のコストレポートを取得"""
    now = datetime.now(timezone.utc)
    start = now - timedelta(days=days)
 
    params = {
        "starting_at": start.strftime("%Y-%m-%dT00:00:00Z"),
        "ending_at": now.strftime("%Y-%m-%dT23:59:59Z"),
        "group_by[]": ["workspace_id", "description"],
        "bucket_width": "1d"
    }
 
    response = requests.get(
        f"{BASE_URL}/cost_report",
        headers=HEADERS,
        params=params
    )
    response.raise_for_status()
    return response.json()
 
def print_usage_summary(data):
    """利用量サマリーを表示"""
    print("=" * 60)
    print("📊 Claude API 利用量サマリー")
    print("=" * 60)
 
    for bucket in data.get("data", []):
        date = bucket.get("bucket_start", "N/A")
        model = bucket.get("model", "all")
        input_tokens = bucket.get("input_tokens", 0)
        output_tokens = bucket.get("output_tokens", 0)
        cached_tokens = bucket.get("cache_read_input_tokens", 0)
 
        print(f"\n日付: {date[:10]} | モデル: {model}")
        print(f"  入力トークン: {input_tokens:,}")
        print(f"  出力トークン: {output_tokens:,}")
        print(f"  キャッシュ読取: {cached_tokens:,}")
 
# 実行例
# usage = get_usage_report(days=7, group_by="model")
# print_usage_summary(usage)
 
# 期待される出力:
# ============================================================
# 📊 Claude API 利用量サマリー
# ============================================================
#
# 日付: 2026-03-23 | モデル: claude-sonnet-4-6
#   入力トークン: 1,245,678
#   出力トークン: 523,456
#   キャッシュ読取: 890,123

ページネーション対応

大量のデータを取得する場合は、ページネーションの処理が必要です。

def get_all_pages(endpoint, params):
    """ページネーションを処理して全データを取得"""
    all_data = []
 
    while True:
        response = requests.get(
            f"{BASE_URL}/{endpoint}",
            headers=HEADERS,
            params=params
        )
        response.raise_for_status()
        result = response.json()
 
        all_data.extend(result.get("data", []))
 
        # 次のページがあるかチェック
        if result.get("has_more", False):
            params["page"] = result["next_page"]
        else:
            break
 
    return all_data
 
# 使用例: 1ヶ月分のデータを全ページ取得
# all_usage = get_all_pages("usage_report/messages", {
#     "starting_at": "2026-03-01T00:00:00Z",
#     "ending_at": "2026-03-31T00:00:00Z",
#     "bucket_width": "1d",
#     "limit": 7
# })
# print(f"取得したバケット数: {len(all_usage)}")
 
# 期待される出力:
# 取得したバケット数: 24

コスト最適化のための実践テクニック

Usage & Cost APIで取得したデータを分析すると、いくつかの最適化パターンが見えてきます。

1. プロンプトキャッシュの効率測定

def analyze_cache_efficiency(usage_data):
    """キャッシュ効率を分析して最適化の余地を見つける"""
    total_input = 0
    total_cached = 0
 
    for bucket in usage_data.get("data", []):
        total_input += bucket.get("input_tokens", 0)
        total_cached += bucket.get("cache_read_input_tokens", 0)
 
    if total_input > 0:
        cache_rate = (total_cached / total_input) * 100
        print(f"キャッシュヒット率: {cache_rate:.1f}%")
 
        if cache_rate < 30:
            print("⚠️ キャッシュ率が低めです。")
            print("  → システムプロンプトやツール定義の")
            print("    キャッシュ設定を見直しましょう。")
        elif cache_rate > 70:
            print("✅ キャッシュが効率的に機能しています。")
    else:
        print("データがありません。")
 
# 期待される出力:
# キャッシュヒット率: 45.2%
# ⚠️ キャッシュ率が低めです。
#   → システムプロンプトやツール定義の
#     キャッシュ設定を見直しましょう。

プロンプトキャッシュを活用すると、同じシステムプロンプトやツール定義を繰り返し送信する際のコストを大幅に削減できます。

2. モデルの使い分け最適化

Claude API の現在の料金体系は以下の通りです。

モデル入力 (100万トークンあたり)出力 (100万トークンあたり)
Claude Opus 4.6$5$25
Claude Sonnet 4.6$3$15
Claude Haiku 4.5$1$5

Usage APIのモデル別データを分析し、「Opus 4.6で処理しているがSonnet 4.6で十分なタスク」を特定できれば、大きなコスト削減につながります。

3. バッチ処理による50%コスト削減

service_tier でグルーピングし、リアルタイムで処理しているリクエストのうち、即時レスポンスが不要なものをバッチ処理に移行することで、最大50%のコスト削減が可能です。

パートナーソリューション:コードを書かずに監視する

自前でダッシュボードを構築する工数がない場合は、Anthropic公式のパートナーインテグレーションを活用できます。

  • Grafana Cloud — エージェントレスでダッシュボードとアラートを即座にセットアップ
  • Datadog — LLM Observabilityとして自動トレーシング・監視を提供
  • CloudZero — クラウドコスト管理プラットフォームとしてコスト予測を支援
  • Honeycomb — OpenTelemetryベースの高度なクエリと可視化
  • Vantage — FinOpsプラットフォームとしてLLMコストを一元管理

これらのプラットフォームは、Admin APIキーを設定するだけで、自動的にデータを収集・可視化してくれます。

全体を振り返って

Claude API の Usage & Cost APIは、APIコストの「見える化」と最適化に不可欠なツールです。この記事で紹介したポイントをまとめます。

  • Usage API でトークン消費を分単位〜日単位で追跡できる
  • Cost API でUSD建てのコスト内訳を取得できる
  • Admin APIキーsk-ant-admin...)が必要で、組織アカウントのadminロール保持者のみが発行可能
  • Pythonなどのスクリプトで自動レポートやアラートを構築でき、Grafana・Datadogなどのパートナーソリューションも利用可能
  • プロンプトキャッシュの効率測定やモデル使い分けの分析により、実質的なコスト削減が可能

コストを適切に管理することは、Claude APIを長期的に活用していく上での基盤となります。まずは基本的な利用量レポートの取得から始めて、段階的に監視体制を構築していきます。

シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

API & SDK2026-05-02
Claude API の月額予算が見直ししない設計 — 個人開発者のための実践コスト管理
個人開発で Claude API を組み込んだとき、最初にぶつかるのは月末の請求書です。月額予算を守り抜くための見積もり・モニタリング・アラート・実装パターンを、自分のアプリで試した数字と一緒にまとめました。
API & SDK2026-04-02
Anthropic APIコスト削減:月額費用を50〜70%削減する最適化技術
Anthropic APIの月額コストを50〜70%削減するための完全最適化ガイド。Prompt Caching・モデル選定・バッチ処理・トークン削減の4つの軸で、本番運用中のアプリに今すぐ適用できる具体的な実装コードを公開します。
API & SDK2026-03-09
Claude API のレート制限と向き合う — 自動運用を 429 で止めないための設計
Claude API のレート制限(RPM・TPM・TPD)の仕組みを押さえ、トークン最適化・リクエストキュー・バッチ処理・Retry-After を尊重した再試行まで、複数サイトを自動運用してきた経験から実務的に整理します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →