Billable Usage APIを提供開始:Cloudflareの課金情報をプログラムから取得可能に

Ryan NoelZunayed AliFilipa Nóbrega

8分で読了

この記事は以下でも利用可能です EnglishDeutschEspañolFrançaisItaliano한국어繁體中文简体中文.

Agents Weekでは、すでに始まっている大きな変化に焦点を当てています。AIエージェントはコードを書き、Workersをデプロイし、さらにはインフラの構築まで自動で行うようになっています。こうした変化に伴い、把握すべき情報も変わります。例えば、プログラムがCloudflareアカウントで料金が発生する処理を実行しているのであれば、「何に」費用が発生しているのかを把握する必要があります。そして、その情報は、日単位・製品単位で確認でき、さらに別のプログラムから利用できる形式で提供される必要があります。ダッシュボードは、人が確認するには最適です。しかし、自動化されたシステムが利用するには適していません。

そこで今回、セルフサービスアカウント向けに新しいBillable Usage APIを提供します。このAPIは、1つのエンドポイントでアカウントの利用状況と利用料金を取得でき、製品ごと・利用期間ごとに内訳を確認できます。対象となるのは、Workers、R2、D1、Workers AI、Vectorize、Images、Streamをはじめとする、アカウント内のすべての従量課金型Cloudflare製品です。これらの情報を、1回のAPI呼び出しで取得できます。また、すでにFinOps(クラウドコスト管理)のツールチェーンを利用している場合は、APIで返される項目名(カラム名)も見慣れた形式になっています。

curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/billable-usage \
  -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/billable-usage?from=2026-02-01&to=2026-02-15" \
  -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

リクエストが正常に処理されると、HTTP 200 OKContent-Type: application/jsonが返されます。レスポンスボディには、利用状況と利用料金を示すデータが含まれています。現時点では、これらのデータは1日1回更新されます。将来的には、よりリアルタイムに近いデータを提供できるよう取り組んでいます。

返されるデータ

レスポンス内の各レコードは、アカウント内の1つの製品について、1つの課金期間に対応する利用データを表します。

  • ServiceName / ServiceFamilyName:製品情報(例:「Workers」ファミリーの「Workers Standard」、「R2」の「R2 Storage」など)。
  • ChargePeriodStart / ChargePeriodEnd:このレコードの対象期間。
  • PricingQuantity / ConsumedUnit:利用量と単位。単位は、Cloudflareが課金に使用する単位(GBか月、GB秒、リクエスト数など)。
  • ContractedCost:課金期間中の利用料金(BillingCurrencyで指定された通貨)。
  • CumulatedPricingQuantity / CumulatedContractedCost:請求期間中の累計。
  • ZoneId / ZoneName:利用状況が特定のゾーンに紐付けられている場合。

これらの項目の多くは、FinOps Open Cost and Usage Specification(FOCUS)の列名と対応しています。そのため、すでに他のクラウドサービスからFOCUS形式のデータを取り込んでいる場合は、項目名やその意味をそのまま理解できます:

Cloudflareのフィールド

FOCUSの列

メモ

BillingCurrency

BillingCurrency

完全一致

BillingPeriodStart

BillingPeriodStart

完全一致

ChargePeriodStart / ChargePeriodEnd

ChargePeriodStart / ChargePeriodEnd

完全一致

ServiceName

ServiceName

完全一致

ConsumedQuantity / ConsumedUnit

ConsumedQuantity / ConsumedUnit

完全一致

PricingQuantity

PricingQuantity

完全一致

ContractedCost

ContractedCost

完全一致

ServiceFamilyName

(close to ServiceCategoryに近い)

Cloudflare独自の分類。FOCUSでは標準化された用語体系が使用されます。

CumulatedContractedCost

(派生)

利便性のためのフィールド。FOCUSでは、累計値はクエリで計算することを前提としています。

ZoneId / ZoneName

ResourceId / ResourceNameに近い)

該当する場合に使用されるゾーン単位の識別子。

レスポンスは、標準のCloudflare APIレスポンス形式を使用します。result は、製品ごと・課金期間ごとに1行(1レコード)を含む配列で、successerrorsmessagesとともに返されます。

{
  "result": [
    {
      "BillingCurrency": "USD",
      "BillingPeriodStart": "2025-02-01T00:00:00Z",
      "ChargePeriodStart": "2025-02-01T00:00:00Z",
      "ChargePeriodEnd": "2025-02-28T23:59:59Z",
      "ServiceName": "Workers Standard",
      "ServiceFamilyName": "Workers",
      "ConsumedQuantity": 150000,
      "ConsumedUnit": "GB-months",
      "ContractedCost": 0.75,
      "CumulatedContractedCost": 2.25
    }
  ],
  "success": true,
  "errors": [],
  "messages": []
}

FOCUSへの対応状況

FOCUSに合わせた項目名を採用したのは、意図的な選択です。AWS、Azure、Google Cloud、Oracle、そして多くのSaaSプロバイダーは、すでにFOCUS形式のデータエクスポートを提供しており、主要なコスト管理ツールもFOCUSに対応しています。ただし、現時点では完全な準拠を主張しているわけではありません。FOCUS仕様で必須とされている一部の項目が、現在のレスポンスデータにはまだ含まれていないためです。これらの対応は、今後のロードマップに含まれています。今回の提供は、その第一歩です。現在は使い慣れた形式を提供し、次の段階で完全準拠を目指します。

Cloudflareの利用料金を、他のクラウド利用料金と一緒に管理:Vantageとのパートナーシップ

Cloudflareは、Vantageとのネイティブ連携を開始しました。Vantageは、AI、クラウド、SaaSプロバイダーなど30以上のサービスからコストおよび利用状況データを収集し、レポート作成、コスト配分、最適化のために一元管理できるインフラコスト管理プラットフォームです。今回の連携により、Cloudflareの利用データを、他のインフラ環境ですでに利用しているCost Reports(コストレポート)、Budgets(予算管理)、Cost Alerts(コストアラート)と同じ画面・仕組みで管理できるようになります。

Vantageは、Billing Read権限を持つ読み取り専用APIトークンを使用してCloudflareに接続し、毎日CloudflareのBillable Usageデータを取得し、製品(例:Workers、R2)、ゾーン、アカウント単位で分類します。これにより、どの製品がコストを発生させているのかを把握し、その費用を関連するチームやサービスに割り当てることができます。

この連携で利用できる主なワークフロー:

  • クラウドサービスをまたいだコスト配分:Cloudflareの利用料金を、製品、ゾーン、アカウント単位で分類できます。さらにVirtual Tagsを使用することで、AWS、Azure、その他のクラウドプロバイダーのコストと同じレポート上で、チームや製品ライン単位にコストを割り当てることができます。
  • 異常検出:Vantage Cost Alertsは、接続されているすべてのプロバイダーの利用料金を監視します。通常の利用パターン(基準値)からコストが大きく変化した場合、Slackやメールで通知します。これにより、WorkersやR2の利用料金の急増も、他のクラウドプロバイダーと同じ方法で検出できます。
  • FinOpsエージェントとMCP:Vantageのコンソール内にあるFinOpsエージェントに、例えば「すべてのプロバイダーを含めた場合、先週の最大のコスト要因は何でしたか?」のような質問をできます。また、Vantageが提供するホスト型MCPサーバーを通じて、ClaudeやChatGPTから同じデータを問い合わせることも可能です。Cloudflareの利用料金も、他の接続済みプロバイダーのデータと同様に扱われます。

CloudflareアカウントをVantageコンソールに接続するだけで、Cloudflareの利用料金を、その他のインフラコストと並べて確認できます。手動でのデータエクスポート、請求書のアップロード、個別ダッシュボードの管理は必要ありません。 

このFOCUS標準化APIは、その他のFinOpsツールとも連携できます。

このサービスを構築した理由

エージェントの作業内容はコードを書くことだけに留まらず、Workersをデプロイしたり、R2バケットを作成したり、D1データベースを管理するなど、多岐にわたります。Cloudflareアカウントへのプログラムによるアクセスを許可するのであれば、その利用によって発生しているコストも、プログラムから確認できる必要があります。月末になってから確認するのではなく、1日の中で、製品ごとに、さらに別のプログラムが利用できる形式で把握できることが重要です。

Billable Usage APIは、まさにそのための仕組みです。また、お客様からは以前から、プログラム経由で利用状況を取得したいという要望をいただいていました。財務チームは、利用料金を自社のシステムへ取り込み、社内プロジェクト、チーム、さらにはエンドユーザー単位でコストを割り当てたいと考えています。開発者は、スクリプトにそのまま組み込めるcurlコマンドを求めています。これまで、こうした作業はスクリーンショットの取得や手動でのデータエクスポートが必要でした。しかし現在では、HTTPリクエスト1回、またはVantageでの設定だけで実現できます。

今後の展開は?

  • より細かな時間単位での利用状況提供:現在、APIは課金期間単位のレコードを返します。多くの製品では、これは1日単位のデータです。今後は、必要性の高い製品について、よりリアルタイムに近い詳細な利用状況を提供できるよう検討しています。
  • 予測機能:CumulatedContractedCostを利用することで、現在の請求期間における利用料金の状況を確認できます。今後は、最終的にどの程度のコストになるのかを予測できる機能の提供を目指しています。また、アカウント全体だけでなく、製品単位での予測も可能にしたいと考えています。
  • Enterprise契約への対応:今回の初回リリースは、セルフサービスアカウントのみが対象です。Enterprise契約向けにも同等の機能を提供できるよう、現在開発を進めています。

お試しください

このエンドポイントは、本日よりすべてのセルフサービスアカウントで利用できます。Billing Read権限を持つAPIトークンを取得し、curlでリクエストを送信するだけで、現在の請求期間における利用状況を製品ごとの内訳で取得できます。詳細な仕様については、Cloudflare APIドキュメントをご確認ください。また、他のクラウドサービスの利用料金と合わせて確認したい場合は、VantageコンソールからCloudflareアカウントを接続してください。

Cloudflareはこれまで、より多くのシステムやサービスをCloudflareのネットワーク上で簡単に運用できるよう取り組んできました。そして今、Cloudflareの利用にどれだけのコストがかかっているのかを、Cloudflareだけでなく、利用しているすべての環境と合わせて簡単に把握できるようにする時が来ました。