How much does R2 cost with a custom domain and no Worker?

Scenario · r2

Reviewed 2026-10-25 · against the official Cloudflare pricing pages listed under Sources

Try this scenarioLoads these inputs into the calculator so you can change them.

Objects are public through a custom domain. Worker requests are zero. Thirty GB stored and 12 million downloads: 2 million Class B operations are billable and already an exact million boundary.

On the Free plan this model comes to $1.02. The other plan, with the same inputs, comes to $6.02. The 30-day month is the same length R2 uses in its storage example. Daily free caps are not monthly pools.

R2 does not charge egress

Bandwidth out to the internet is free on Standard and Infrequent Access. The bill is storage, Class A, Class B, and Infrequent Access retrieval. The free tier is monthly and applies to Standard only, on both the Free and Paid Workers plans.

Read this before you trust the total

Free plan lines at $0 can still be an outage: error 1027, error 1102, or a D1 quota error. R2 above its monthly free tier is billed on both plans. Durable Object requests round up to the next million, as in Cloudflare's own Example 1, which bills 500,000 requests as 1 million.

This model

$1.02 · Free

Free quotas for Workers, KV, D1, Queues, and Durable Objects reset at 00:00 UTC. A month that averages under the cap can still fail on one busy day. R2 is different: its free tier is monthly, and usage above it is billed on both plans.

R2 storage
$0.30

30 used, 10 included. 20 billable, rounded up to 20. Exact charge $0.30, shown as $0.30. R2 rounds billable storage up to the next GB-month. 1.1 GB-month of billable storage is billed as 2. R2 does not charge egress bandwidth.

R2 Class B operations
$0.72

12,000,000 used, 10,000,000 included. 2,000,000 billable, rounded up to 2,000,000. Exact charge $0.72, shown as $0.72. R2 rounds billable operations up to the next million. One operation past a million boundary is billed as another full million. Class B is the read class: GetObject and HeadObject are the common ones.

Assumptions

  • A 30-day month and steady traffic across it.
  • Rates as published on 2026-10-25; taxes excluded.
  • The Free plan does not bill Workers, KV, D1, Durable Objects or Queues. When a daily cap is reached, requests fail until 00:00 UTC instead of costing more.
  • R2 Class B operations adds $0.72 (71% of the bill): you used more than the 10,000,000 included.
  • R2 storage adds $0.30 (29% of the bill): you used more than the 10 included.
  • R2 is billed on both plans above its monthly free tier, which is why the Free plan is not $0 here.
  • R2 egress (bandwidth out) is free, so downloads only cost Class B reads.

Try this scenario

Sources