R2 media site: about $23.45 a month on Workers Paid

A month that looks like the numbers below comes to roughly $23.45, base fee included. The meter that runs out first is R2 Class B operations, at 600% of its included usage. Prices are the public list as of 2026-09-15; the real invoice is the only truth.

Adjust the numbers → ← Usage Guard

Estimated bill

Total per month $23.45

Workers Paid base fee $5.00

Meter closest to (or past) its included usage: R2 Class B operations — 60M / 10M (600%)

Overages

  • R2 Class B operations: 50M → $18.00
  • R2 storage (GB-month): 30 → $0.45

Usage assumed for the month

What this setup looks like

A gallery or short-video site where a Worker fetches each object from R2 and streams it to the browser. Storage is the line people budget for, and it turns out to be the cheapest one. I assumed 40 GB stored, half a million uploads and 60 million reads in a month, with nothing cached between the bucket and the visitor.

Why R2 Class B operations runs out first

Every GET against the bucket is a Class B operation. Workers Paid includes 10M of them a month and this site is at 600%. Egress is free on R2, which is why people pick it, but the operation count still bills, and it rounds up to the next million. Storage at four times its included 10 GB adds less than a dollar.

What to watch in GraphQL Analytics

r2OperationsAdaptiveGroups grouped by bucket and action name. If GetObject per day is close to your page views, nothing is being cached. Put the Worker response behind the Cache API, or serve the bucket on a custom domain with caching on. A 90% cache hit ratio removes 90% of this line.

Prices and included usage copied from Cloudflare's public pricing pages on 2026-09-15. Approximate: some meters round up to the next unit, Workers AI and bandwidth are not included, and the real invoice is the only truth.

Other typical bills

Also exploring

Paying for Workers and wary of a surprise invoice? See Usage Guard — per-metric spike alerts and an optional stop switch.

Routing support@ through Cloudflare and reading it in Gmail? See Routed Inbox — a small shared inbox on Email Routing, no seat pricing.

Managing Cloudflare for many clients? See Zone Audit — config drift and baseline checks across accounts.