Claude Media
Claude Code Analytics APIの使い方とツール受入率の計算

Claude Code Analytics APIの使い方とツール受入率の計算

Claude Code Analytics APIの主要指標とツール受入率の計算式、ページネーションの扱い方を、公式リクエスト例とあわせて解説する。

Claude Code Analytics APIで何がわかるか

Claude Code Analytics APIは、Claude Codeを使う組織のユーザーごとの日次集計指標にプログラムからアクセスできるAdmin APIのエンドポイントです。/v1/organizations/usage_report/claude_codeの1本で、セッション数・コード行の増減・コミット・PR・ツールごとの受入/拒否率・モデル別のトークンとコストまで取得できます。

OpenTelemetry連携より設定の手間が少なく、Console内の基本的なAnalyticsダッシュボードより詳細な粒度でデータを扱えるのが特徴です。個人アカウントでは使えません。組織を作った上でAdmin APIキー、org:adminスコープ付きのOAuthトークン、またはワークスペースに紐づかない個人・サービスアカウントキーのいずれかで呼び出します(ワークスペースAPIキーは使えません)。

利用は無料です。ただしClaude Platform on AWSでは現時点で使えず、Console内のUsageページで代替する必要があります。Claude Enterprise組織(claude.ai)のユーザーによるClaude Code活動は、このAPIではなくClaude Enterprise Analytics API側で報告される点にも注意が必要です。Admin APIキーの取得手順はClaude Admin APIキーの取得方法にまとめています。

クイックスタート

指定した1日分のデータを取得する最小のリクエストは次の通りです。

curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?\
starting_at=2025-09-08&\
limit=20" \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_ADMIN_KEY"

starting_atはYYYY-MM-DD形式のUTC日付で、その1日分のみを返す必須パラメータです。limitは1ページあたりの件数(デフォルト20、最大1,000)、pageは前回レスポンスのnext_pageから得るカーソルトークンです。この3つが全パラメータです。

独自のインテグレーションを作る場合は、User-Agentヘッダーに自分のアプリ名を設定しておくと、Anthropic側で利用パターンを把握しやすくなります。

取得できる指標の全体像

レスポンスの1レコードは「特定の1ユーザーの、特定の1日分の活動」を表します。ディメンションとメトリクスに分けて見ていきます。

ディメンション(誰の・いつの・どの環境のデータか)

  • date: RFC 3339形式の日付(UTCタイムスタンプ)
  • actor: 操作したユーザーまたはAPIキー(email_addressを持つuser_actor、またはapi_key_nameを持つapi_actor)
  • organization_id: 組織UUID
  • customer_type: api(従量課金APIユーザー)かsubscription(Pro/Teamプラン)か
  • terminal_type: 実行環境(vscodeiTerm.apptmuxなど)

コアメトリクス

  • num_sessions: このactorが開始したClaude Codeセッション数
  • lines_of_code.added / lines_of_code.removed: 全ファイル横断で追加・削除されたコード行数
  • commits_by_claude_code: Claude Codeのコミット機能経由で作成されたgitコミット数
  • pull_requests_by_claude_code: Claude CodeのPR機能経由で作成されたプルリクエスト数

ツールアクションメトリクス(ツール種別ごとの受入・拒否件数)

  • edit_tool.accepted / rejected
  • multi_edit_tool.accepted / rejected
  • write_tool.accepted / rejected
  • notebook_edit_tool.accepted / rejected

モデル別内訳(使用したClaudeモデルごとに配列で返る)

  • model: モデル識別子(例: claude-opus-5)
  • tokens.input / tokens.output: 入出力トークン数
  • tokens.cache_read / tokens.cache_creation: キャッシュ関連のトークン使用量
  • estimated_cost.amount: セント単位の推定コスト
  • estimated_cost.currency: 通貨コード(現状は常にUSD)

データの鮮度は最大1時間の遅延があります。一貫性を保つため、直近1時間より古いデータだけがレスポンスに含まれる設計です。

ツール受入率の計算方法

ツールごとの受入率は次の式で求めます。

受入率 = accepted / (accepted + rejected)

たとえばeditツールが45件accepted・5件rejectedなら、45 / (45 + 5) = 0.9で受入率90%です。この式を4つのツール種別(Edit / MultiEdit / Write / NotebookEdit)それぞれに適用すれば、ユーザーごと・チームごとのツール別受入率を横並びで比較できます。

Claude Codeが提案する変更をユーザーがどれだけ受け入れているかは、そのままチームの信頼度や運用の習熟度を映す指標になります。特定のツールだけ受入率が低い場合は、そのツールの提案精度そのものよりも、レビュー体制やチームのワークフローとの相性を疑う手がかりになります。

ページネーションの扱い方

ユーザー数が多い組織では、1回のリクエストで全件が返らないことがあります。ページネーションはカーソルベースです。

# 1回目のリクエスト
curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?\
starting_at=2025-09-08&\
limit=20" \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_ADMIN_KEY"
 
# レスポンスのカーソルを使った2回目のリクエスト
curl "https://api.anthropic.com/v1/organizations/usage_report/claude_code?\
starting_at=2025-09-08&\
page=page_MjAyNS0wNS0xNFQwMDowMDowMFo=" \
  -H "anthropic-version: 2023-06-01" \
  -H "x-api-key: $ANTHROPIC_ADMIN_KEY"

手順は単純です。①limitを指定して初回リクエストを送る ②レスポンスのhas_moretrueならnext_pageの値を次のリクエストのpageに渡す ③has_morefalseになるまで繰り返す。カーソルは最後に取得したレコードの位置をエンコードしたもので、新しいデータが到着している間もページ間の重複や欠落を防ぎます。

よくある使い方

公式が挙げている主な用途は次の通りです。

  • 経営層向けダッシュボード: Claude Codeが開発速度に与える影響を高レベルで可視化する
  • 他ツールとの比較: CopilotやCursorなど他のAIコーディングツールとの指標比較にエクスポートする
  • 個人・チームの生産性分析: 時系列でのセッション数・コード行数の推移を追う
  • コストの追跡と配分: チームやプロジェクト単位で支出パターンを監視する
  • アダプションのモニタリング: どのチーム・ユーザーが最も活用できているかを特定する
  • ROIの根拠づけ: 社内でのClaude Code導入・拡大を数字で裏付ける

受入率を読むときに気をつけたいこと

受入率の式そのものは単純ですが、実際に運用してみると数値の読み方に注意が必要な場面が出てきます。

サンプル数が小さいと受入率は暴れます。1日のaccepted + rejectedが数件しかないユーザーは、1件の拒否だけで受入率が大きく上下します。チーム単位・週単位で集計してから比較すると、日次のブレに引きずられずに済みます。

accepted + rejectedが0件のケースをゼロ除算として扱わないことも実装上の注意点です。その日そのツールを一度も使っていないユーザーのレコードでは、受入率を「0%」と表示するとまるでツールを拒否し続けているかのように見えてしまいます。分母が0のレコードは「対象外」として集計から除くのが実態に合った扱いです。

ツール種別ごとに受入率の意味が違う点も見落としやすいところです。Editツールの受入率が低いチームは、提案そのものの精度よりも、変更範囲の大きさやレビュー体制の慎重さを反映している可能性があります。逆にWriteツール(新規ファイル作成)の受入率が極端に高いチームは、慎重な確認をスキップして機械的に承認しているだけかもしれません。受入率は「Claude Codeの提案品質」の代理指標であると同時に、「チームがどれだけ立ち止まって確認しているか」の代理指標でもあり、どちらか一方だけで解釈すると読み違えます。

週次・月次で集計する場合の実装

starting_atは1日単位でしか指定できないため、週次・月次のレポートを作るには複数日分をリクエストして自前で積み上げる必要があります。ユーザーごとのacceptedrejectedを日次で取得し、集計期間分を合算してから受入率の式を適用するのが基本の流れです。日ごとに受入率を計算してから平均を取ると、利用の少なかった日の数値が過大に効いてしまうため、先に合算してから1回だけ割り算する順序を守ります。

週次レポートを作る場合の処理順序はシンプルです。①対象期間の各日についてstarting_atを変えてAPIを呼び出す ②ユーザーごとにaccepted/rejectedをツール種別ごとに合算する ③合算後のaccepted/(accepted+rejected)で週次の受入率を出す。この順序を守れば、利用日数が少ないユーザーの数値が不自然に振れることもありません。

実装で確認しておきたい細部

  • リアルタイム指標ではなく、日次の集計値のみが対象です。リアルタイム監視が必要ならOpenTelemetry連携を検討します
  • ユーザーの識別はactorフィールドで、OAuth認証のユーザーはemail_addressを持つuser_actor、APIキー認証のユーザーはapi_key_nameを持つapi_actorとして区別されます
  • 過去データの保持期間に明示的な削除ポリシーはなく、履歴データはAPI経由でアクセスし続けられます
  • 対象はClaude API経由のClaude Code利用のみです。Amazon Bedrock・Microsoft Foundry・Google Cloud(Vertex AI)経由、およびClaude Platform on AWS経由の利用はこのAPIには含まれません
  • 日付パラメータはすべてUTC基準です。starting_atはその日のUTC午前0時を表します

OpenTelemetry連携との使い分け

Claude Codeの利用状況を取得する経路はClaude Code Analytics APIだけではありません。OpenTelemetry連携を使えば、より細かい粒度でリアルタイムに近いメトリクスを収集できます。ただし、OpenTelemetryの導入には収集基盤(コレクターやダッシュボード)を自前で構築・維持する手間がかかります。

Claude Code Analytics APIは、その手間なしにcurl一本で日次集計値を取れる代わりに、リアルタイム性(最大1時間遅延)と粒度(日次集計、個々のツール呼び出し単位ではない)を犠牲にしています。経営層向けの週次・月次レポートやチーム間のアダプション比較が目的ならClaude Code Analytics APIで十分な一方、異常検知やアラートのようにリアルタイム性が要る用途にはOpenTelemetry連携が向きます。両者は排他ではなく、目的に応じて使い分けるか併用するものです。

まとめ

Claude Code Analytics APIは、Admin APIキー1本でユーザー単位の生産性指標・ツール受入率・コストまでまとめて取得できる無料のエンドポイントです。受入率はaccepted / (accepted + rejected)の単純な式で、ツール種別ごとに算出すればチームの活用度を数値で追えます。大規模組織ではカーソルベースのページネーションを実装し、Bedrock等の非対応環境の利用が含まれない点を前提にダッシュボードを組むのが実務上のポイントです。

この記事を共有:XはてブLinkedIn