Usage and Cost Analytics APIへの移行 — 旧APIとの対応表と変更点
2026年10月29日にベータで始まったUsage and Cost Analytics APIの、ヘッダーとエンドポイント、旧Usage and Cost APIおよびEnterpriseレポートからの変更点を対応表で示します。
Usage and Cost Analytics APIは、組織のトークン使用量と費用を取得する新しいベータ版のAPIです。/v1/organizations/analytics/usage と /v1/organizations/analytics/cost の2本で、ConsoleとEnterpriseの両方の組織を同じ形で扱えます。
旧Usage and Cost APIは止まったわけではありません。ただし、パラメータ名もレスポンスの形も変わるので、既存のスクリプトはそのままでは動きません。この記事は、何がどう変わるかを対応表で押さえ、旧APIと同じ日次レポートを作り直すところまで進めます。
2026年10月29日に何が変わったか
プラットフォームのリリースノートによると、2026年10月29日にこのAPIがベータとして公開されました。同じ日に、次のAPIが「legacy(旧式)」の扱いになっています。
- Usage and Cost API(
/v1/organizations/usage_report/messagesと/v1/organizations/cost_report) - Claude Enterprise Analytics APIの
usage_report、cost_report、user_usage_report、user_cost_report
リリースノートは、これらが「引き続きサポートされる」とも書いています。廃止日は示されていません。つまり、今日から乗り換えを迫られる話ではなく、新しい機能が新APIにだけ載っていく移行期にあたります。
移行前に押さえる3点
- ベータヘッダー
anthropic-beta: analytics-usage-cost-2026-08-24を全リクエストに付ける - 旧APIは時間バケットの一覧を返し、新APIは1行が1つの組み合わせを表す
- Consoleの組織はAdminキーなどで、Enterpriseの組織は
read:analyticsスコープのキーで呼ぶ
旧APIの使い方そのものはClaude Usage APIとCost APIで利用量とコストを取得するにあります。Enterprise側の三つのAPIの違いはClaude Analytics APIの使い分けで確認できます。
新APIの呼び方 — ヘッダーとエンドポイント
エンドポイントは2本です。
| エンドポイント | 返すもの |
|---|---|
GET /v1/organizations/analytics/usage | 返すものトークン数とリクエスト数 |
GET /v1/organizations/analytics/cost | 返すものUSDの費用 |
どちらにも anthropic-version と anthropic-beta: analytics-usage-cost-2026-08-24 が必要です。SDKと ant CLIは両方のヘッダーを自動で付け、続きのページも読み進めるので、limit はページサイズだけを決めます。
1週間分のトークン使用量を、モデルと日ごとに取る例です。
curl --globoff "https://api.anthropic.com/v1/organizations/analytics/usage?\
starting_at=2026-09-01T00:00:00Z&\
ending_at=2026-09-08T00:00:00Z&\
time_bucket_width=1d&\
group_by[]=model&\
limit=10" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: analytics-usage-cost-2026-08-24" \
-H "x-api-key: $ANTHROPIC_API_KEY"ConsoleならAdminキーか、org:admin スコープのOAuthトークンなど、Admin APIの資格情報で呼びます。個人アカウントではAdmin APIを使えないため、先にConsoleの組織設定が要ります。Enterpriseの組織は、Analytics APIを有効にしたあとにprimary ownerがclaude.aiで作る read:analytics スコープのキーを使います。
クラウド経由の利用にも対応しています。Claude Platform on AWSでは両エンドポイントが使え、認可はAWS IAMの ListAccountUsage と ListAccountCost で行います。Claude Models on Google Cloud(Anthropic managed)でも両方使え、/usage には usageAnalytics.list のIAM権限が要ります。
返ってくるデータの形はこう変わる
旧APIの data は、時間バケットの配列でした。空のバケットも含み、各バケットの results に、ディメンション(モデルなど)とメトリクスが並びます。
新APIの data は行の配列です。各行は3つの部分でできています。
新APIの1行の構成
starting_at / ending_at
その行が対象とする期間です。時間バケットを指定すると、バケットの境界になります。
group
すべてのディメンションが入ります。
group_by[]に挙げなかったものはnullです。usage / cost
メトリクスです。usageエンドポイントでは
usage、costエンドポイントではcostになります。
使用量・費用のある組み合わせだけが行になり、空のバケットは出ません。並びは order_by の指標の大きい順が既定です。group_by[] は5つまで、フィルターの値は1つにつき100個までです。
時系列として使うなら、time_bucket_width と order_by=time を付けます。すると、新しいバケットから順に返ります。古い順にしたいときは order=asc を足します。
旧Usage and Cost APIからの対応表
Console組織で旧Usage and Cost APIを使っている場合の変更点です。Adminキー、anthropic-version ヘッダー、starting_at と ending_at、バケット幅の値(1m・1h・1d)、ブラケット表記、ページネーションの項目名、トークンと費用の項目名は引き継がれます。
| 項目 | 旧Usage and Cost API | 新API |
|---|---|---|
| ベータヘッダー | 旧Usage and Cost API不要 | 新APIanalytics-usage-cost-2026-08-24 が必須 |
| バケット幅の指定 | 旧Usage and Cost APIbucket_width(既定 1d) | 新APItime_bucket_width(既定なし。省略すると期間全体の合計) |
limit の単位 | 旧Usage and Cost API時間バケットの数 | 新API行の数(1〜1,000、既定20) |
| ユーザー・サービスアカウント | 旧Usage and Cost APIaccount_ids[]、service_account_ids[] | 新APIactor_ids[]、group_by[]=actor か actor_type |
| コンテキストウィンドウのフィルター | 旧Usage and Cost APIcontext_window[] | 新APIcontext_windows[] |
| 費用の内訳 | 旧Usage and Cost APIgroup_by[]=description | 新APIdescription は廃止。model、cost_type、token_type、service_tier などで分ける |
| デフォルトワークスペース | 旧Usage and Cost APIworkspace_id: null | 新API実際の wrkspc_ ID |
費用の amount | 旧Usage and Cost API"123.45" のような文字列 | 新API小数6桁の "123.450000"。割引前の list_amount が加わる |
| コードの実行 | 旧Usage and Cost API使用量レポートに載らない | 新APImodel: null の行として載る |
| リクエスト数 | 旧Usage and Cost APIなし | 新API両エンドポイントに requests が加わる |
そのほか、地味ですが影響の出やすい違いが4つあります。
- 存在しないAPIキーやワークスペースのIDを渡すと、旧APIはエラーを返しました。新APIは何にも一致せず、空の結果になります。
models[]のスペルミスも同じです - 地理指定やティアのない使用量は、旧APIでは
inference_geo: "not_available"、service_tier: "standard"でした。新APIはどちらもnullです。inference_geos[]=not_availableというフィルターは、引き続き該当の行に一致します - 費用の
service_tierは、旧APIではstandardかbatchでした。新APIは実際のティアが入ります amountはセント単位の文字列です。公式の例では"41280.000000"が412.80ドルにあたります
特に1つ目は、移行後に気づきにくい挙動です。IDを打ち間違えると、エラーではなく「使用量ゼロ」に見えます。
旧APIと同じ日次レポートを作り直す
旧APIの日次レポートを再現する手順は、公式ドキュメントに次のとおり書かれています。
日次レポートの再現手順
- 1
日次バケットを指定する
time_bucket_width=1dを付け、旧APIと同じgroup_by[]を渡します。 - 2
limitを最大にしてページをたどる
limit=1000にして、全ページを読みます。SDKなら自動で続きを取ります。 - 3
日付ごとにまとめる
返ってきた行を
starting_atでグループ化します。 - 4
空の日をゼロで埋める
使用量のない日は行が出ないので、自分でゼロを足します。
order_by=time&order=ascを付けると、日が古い順に並びます。
1週間分のモデル別・日次の使用量で、前後を比べます。移行前はこうでした。
curl --globoff "https://api.anthropic.com/v1/organizations/usage_report/messages?\
starting_at=2026-09-01T00:00:00Z&\
ending_at=2026-09-08T00:00:00Z&\
group_by[]=model&\
bucket_width=1d" \
-H "anthropic-version: 2023-06-01" \
-H "x-api-key: $ANTHROPIC_API_KEY"移行後は、先に示した新APIの例から limit を1000に変えた形になります。
変えるのはパスとヘッダー、パラメータ名
旧API
パスは /usage_report/messages、ヘッダーは anthropic-version のみ、バケットは bucket_width=1d です。
新API
パスは /analytics/usage、anthropic-beta ヘッダーを足し、time_bucket_width=1d と limit=1000 を指定します。
移行でつまずきやすい4つの制約
対応表に出てこない制約も、移行先で確認が必要です。
| 項目 | 内容 |
|---|---|
| データの鮮度 | 内容旧APIは通常5分以内。新APIは通常4時間以内で、最大24時間かかる |
| 期間の制限 | 内容starting_at は2026年1月1日以降かつ過去365日以内。1リクエストは最大31日 |
| 分単位のバケット | 内容ending_at が必須で、1m では1リクエストが最大24時間 |
| 値の改訂 | 内容遅れて届くイベントや突合で、月末から約7日後まで値が変わりうる |
旧APIにあった期間の制限は、新APIでは厳しくなっています。31日より長い期間は、31日以内に区切って複数回呼びます。
鮮度の差は、アラート用途に響きます。使用量の急増を数分で検知していた仕組みは、新APIでは遅れが出ます。応答にある data_refreshed_at の時刻より後の使用量は、欠けているか途中の値です。
移行の確認は、締め終わった月で新旧の合計を突き合わせるのが手堅い方法です。月が変わってから約7日待てば、値の改訂も落ち着きます。Claude Codeに移行を任せる場合も、パラメータの書き換えだけを頼むのでなく、同じ期間の新旧の合計を並べて出させると、IDの打ち間違いによる「ゼロ行」を見逃しません。
Enterpriseのusage・cost系レポートからの移行
Claude Enterpriseの usage_report、cost_report、user_usage_report、user_cost_report も、新APIへの移行先が用意されています。これらはlegacyですが、引き続き使えます。
移行する利点として、公式ドキュメントは次の4点を挙げています。
- 各バケットの上位100グループではなく、すべてのグループが全バケットで得られる
actorやactor_typeを、他のディメンションと組み合わせてグループ化できる(使用量と費用の両方)- 期間全体で任意の指標で順位づけするか、時間バケット順に並べられる
- Consoleの組織にも同じ連携を使い回せる
キー、日付の下限、365日・31日の制限、フィルター名、data_refreshed_at、組織単位のレート制限は引き継がれます。変わる点は次のとおりです。
| 項目 | Enterpriseのレポート | 新API |
|---|---|---|
| バケット幅 | Enterpriseのレポートbucket_width | 新APItime_bucket_width(値は同じ) |
1m の期間 | Enterpriseのレポート最大31日 | 新API最大24時間。ending_at が必須 |
| ユーザー別 | Enterpriseのレポートuser_usage_report、user_cost_report | 新APIgroup_by[]=actor&actor_types[]=user_actor |
| ユーザーID | Enterpriseのレポートuser_ids[] | 新APIactor_ids[](同じ user_... 形式のID) |
| Claude Tagの値 | Enterpriseのレポートproduct: "claude-tag" | 新APIproduct: "claude_tag"(products[] はどちらの綴りも可) |
| 不明なモデル名 | Enterpriseのレポート400エラー | 新API何にも一致しない |
exclude_deleted_users | Enterpriseのレポートユーザー別レポートで使用可 | 新APIgroup_by[]=actor が必須。なければ400エラー |
ユーザー別の費用は、それぞれ別のエンドポイントでしたが、新APIではcostエンドポイント1本に集まります。月次のユーザー別コストに、プロダクトの内訳を足した例です。
curl --globoff "https://api.anthropic.com/v1/organizations/analytics/cost?\
starting_at=2026-09-01T00:00:00Z&\
ending_at=2026-10-01T00:00:00Z&\
group_by[]=actor&\
group_by[]=product&\
actor_types[]=user_actor&\
limit=100" \
-H "anthropic-version: 2023-06-01" \
-H "anthropic-beta: analytics-usage-cost-2026-08-24" \
-H "x-api-key: $ANTHROPIC_API_KEY"actor_types[]=user_actor を外すと、サービスアカウントなどユーザー以外の行と、帰属先のない使用量を示す actor: null の行も返ります。
旧レポートの使い方は、ユーザー別コストを取得する方法とuser_usage_reportでユーザー別トークン使用量を取得する手順にあります。
Claude Codeのユーザー別コストはどう取るか
新APIでは、costエンドポイントに products[]=claude_code&group_by[]=actor を付けます。これでClaude Codeの利用者ごとの費用が出ます。
Consoleの組織なら、別の選択肢としてClaude Code Analytics APIもあります。こちらはユーザーごとのClaude Codeの活動と、推定の費用を報告します。
費用の内訳を分けて見る
costエンドポイントには、usageエンドポイントにないディメンションが2つあります。cost_type と token_type です。どちらも5つの上限には数えられません。
cost_type を付けると、費用の種類ごとに行が分かれます。token_type を付けると、トークン費用が種類ごとに分かれます。公式の例では、モデルごとに5つのトークン種別の行と、web_search、code_execution、session_usage の行が1つずつ返ります。
この2つを使うと、旧APIの description で文字列を見て切り分けていた処理を、構造化された値で置き換えられます。limit はこの2つには効かないため、1ページが limit 行より増えることがあります。
また cost には、割引後で、クレジット適用前の amount と、定価ベースの list_amount が入ります。2つの差は、割引の効果を測る目安になります。group_by[]=cost_type か token_type を使う場合、requests は全行で null です。
移行の判断材料
旧APIはサポートが続くので、動いている連携を急いで書き換える必要はありません。新APIへ移る理由が生じるのは、次のような場面です。
- 上位100グループの打ち切りで、費用の集計が合わなくなっている
- ユーザー別とモデル別など、
actorを含む切り口を1リクエストで取りたい - ConsoleとEnterpriseの両方の組織を、同じコードで扱いたい
逆に、数分単位の鮮度が必要な監視や、31日を超える期間を1回で取る処理は、新APIで条件が厳しくなります。新APIがベータである点も、本番の集計に載せるかどうかの判断に入れておきたい点です。
参照した一次ソース
この記事の記述は、次の一次ソースと照合しています。更新時に参照先が変わった場合は一覧も更新します。