Cloudflare R2
- Free allowance
- 10 GB-month storage, 1M Class A and 10M Class B operations per month, egress free
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- emailno card, no phone
- Binding limit
- noneno named constraint binds
- Evidence
- documented1 source; a first-party page was read and the sentence quoted
- Freshness
- stale on 2026-11-23checked 2026-10-23 (live); stale on 2026-11-23
| Free tier | 10 GB-month storage, 1M Class A and 10M Class B operations per month, egress free unit GB; metered on stored-bytes |
|---|---|
| Price | none stated |
| Limits |
the 10 GB-month is a storage volume and not an object size, so no kind in the six-value vocabulary names it. |
| Binding | none nothing binds the egress: it is free unconditionally. The 10 GB-month storage volume caps what an origin can hold and no kind names a volume |
| Identity | email a Cloudflare account |
| Egress | free, unconditionally, on every plan free allowance: none for egress: egress to the internet is free on every plan |
| Per-object cap | not applicable: storage is metered by volume rather than per object |
| Retention | not applicable: bytes persist while the account is in good standing |
| Interface | s3 https://<account>.r2.cloudflarestorage.com |
| Tooling | aws-cli, rclone (s3 backend) |
| Composes with | the origin that makes a free front free: R2 holds the bytes with zero egress and a Cloudflare front serves them, so the read path costs nothing at any volume and the 10 GB is the whole bill. |
| Reliability | zero egress applies to the read path only |
Evidence 1
| date | source | what it proved |
|---|---|---|
| 2026-10-22 | developers.cloudflare.com/r2/pricing/ | 10 GB-month storage, 1M Class A, 10M Class B, egress free; page last updated 2026-10-01 |
More fields 3
{
"stale_after_days": 180,
"bytes_transit": "yes",
"transit_note": "the object leaves Cloudflare's network on every read, and egress is free on every plan"
}