Cloudflare
The Cloudflare connector imports billable usage from the Cloudflare Billable Usage API — Cloudflare's FOCUS-aligned cost and usage feed covering services such as Workers, R2, CDN and zones.
The connector reads:
| Feed | What it provides |
|---|---|
Billable Usage (/accounts/{id}/billable-usage) | FOCUS-aligned cost and usage rows: service, service family, zone, consumed quantity/unit, pricing quantity and contracted cost in the account's billing currency |
| Subscriptions | The Cloudflare subscriptions on the account, for plan-level context |
| Billing history | Closed invoice totals, used to reconcile imported costs against actual Cloudflare invoices |
Get an API token
The connector authenticates with a Cloudflare API token with Billing Read permission:
- Sign in to the Cloudflare dashboard.
- Go to My Profile → API Tokens (dash.cloudflare.com/profile/api-tokens) and click Create Token.
- Use the “Read billing info” template — it grants the Account → Billing → Read permission. Scope the token to the account. (To cover several accounts, scope the token to all of them.)
- Copy the token — it is only shown once.
Tips
The token is stored securely in Key Vault and never exposed to the browser.
Add a Credential
- Open Settings → Cloud Connections → Cloudflare
- Click + Add Credential
- Enter a display name and paste the API token
- Click Submit
Add a Cloud Account
- From Settings → Cloud Connections → Cloudflare, click + Add Cloud Account
- Select the credential you just added
- Enter the Account ID (optional — if left blank, Cloud Ctrl discovers it automatically from the token)
- Choose how many days of history to pull on first activation (default 90 days)
- Click Submit
How imports work
- On first import the connector backfills up to 90 days of historical data.
- Subsequent imports run daily to avoid gaps.
- The first import can take up to 24 hours to complete.
Limitations
The Billable Usage API is a service-level feed, not a resource-level one. Be aware of what it can and cannot tell you:
- Usage is aggregated by service, not by resource. Cloudflare reports billable usage per service and day (for example, Workers or R2 for a given zone) — there is no breakdown per Worker script, per R2 bucket or per individual resource. In Cloud Ctrl the product and meter come from Cloudflare's service name, the service family becomes the service, and where a usage row relates to a zone the zone is recorded as the region and resource name — giving per-zone visibility within the account, but no finer.
- Subscription and plan fees are not in the usage feed. The Billable Usage API captures usage-based charges only — plan fees (Pro, Business, Workers Paid, etc.) are not included. Cloud Ctrl reconciles the imported total against your actual Cloudflare invoices and adds a balancing line split across your active subscription plans, so your spend total matches what Cloudflare billed you. The gap line is not attributed to individual products because Cloudflare does not expose invoice line items.
- Cloudflare billing periods run from the 22nd to the 21st. Cloud Ctrl imports by calendar month (merging the two billing periods that cover it), so a calendar-month view here will not line up exactly with a Cloudflare invoice. Match your date range to the billing period when reconciling against an invoice.
Notes
- Rows are costed in the account's billing currency (
BillingCurrency), typically USD; Cloud Ctrl converts them to your display currency. - Imported usage flows into the standard spend views — filter by product/service to explore it.