---
title: Cloudflare R2
slug: cloudflare-r2
url: "https://toolweight.com/options/cloudflare-r2"
homepage: "https://www.cloudflare.com/developer-platform/products/r2/"
categories: s3-compatible-storage
last_verified: 2026-07-23
license: CC-BY-4.0
---

# Cloudflare R2

> S3-compatible object storage with zero egress fees, on Cloudflare's network.

R2 is Cloudflare's object store, built to make egress billing disappear. It speaks a broad subset of the S3 API, supports lifecycle configuration and event notifications into Queues, and can be bound directly to a Worker so reads never traverse the public internet. Object versioning is not implemented at all, access control is token-based rather than a full IAM policy language, and buckets are placed by location hint rather than by contractual region.

## Identity

|  |  |
| --- | --- |
| Name | Cloudflare R2 |
| Company | Cloudflare |
| One-liner | S3-compatible object storage with zero egress fees, on Cloudflare's network. |
| Site | https://www.cloudflare.com/developer-platform/products/r2/ |
| Docs | https://developers.cloudflare.com/r2/ |
| Founded | 2009 |
| Brand | https://toolweight.com/vendors/Cloudflare |
| Compared in | 1 |

## Where it is compared

### [S3-compatible storage](https://toolweight.com/compare/s3-compatible-storage)
Ranked **#5 of 12** on default weights.
| Field | Value | Confidence | Verified | Source | Note |
| --- | --- | --- | --- | --- | --- |
| True cost /mo (USD) | $22.74 /mo | Inferred | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ | Storage 1,000 GB x $0.015 = $15.00. Class A 1 M x $4.50 = $4.50. Class B 9 M x $0.36 = $3.24. Egress $0. Total $22.74. R2's free tier (10 GB storage, 1 M Class A, 10 M Class B monthly) is deliberately not netted off, per the methodology's netting rule; applying it would zero the Class A and Class B lines entirely and take 10 GB off storage, giving $22.74 - $0.15 - $4.50 - $3.24 = $14.85. |
| True cost /mo (AUD) | A$34.56 /mo | Inferred | 2026-07-23 | - | $22.74 x 1.52. |
| True cost from Sydney (AUD) | A$34.56 /mo | Inferred | 2026-07-23 | - | Unchanged from the headline figure: R2's storage and operation rates are the same worldwide and egress is zero everywhere, so serving Australia costs what serving anywhere costs. The caveat is placement rather than price, 'Oceania' is a best-effort location hint, not a contractual region. |
| Storage $/TB/mo | $15 /TB/mo | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ | $0.015/GB-month, Standard class. Infrequent Access is cheaper at rest but adds a retrieval fee. |
| Egress $/TB | $0 /TB | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ | No per-gigabyte charge for reads over the public internet, and no published fair-use ceiling on it. This is the product's entire pitch. |
| Egress cap (x stored) | - | Unknown | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ | No ceiling published, and none applied in practice that we can find. This is the open promise the column exists to distinguish from the bounded ones; null here means unbounded, not unresearched. |
| Class A $/M ops | $4.5 /M ops | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ | - |
| Class B $/M ops | $0.36 /M ops | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ | - |
| Min retention | 0 ms | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/pricing/ | - |
| Min billed object | 0 B | Inferred | 2026-07-23 | - | - |
| S3 API coverage | 82 % | Inferred | 2026-07-23 | https://developers.cloudflare.com/r2/api/s3/api/ | Object CRUD, multipart, SigV4 presigning, PutBucketLifecycleConfiguration and CORS all behave. Marked down from the 90 this row previously carried because Cloudflare's own compatibility table lists GetBucketVersioning and PutBucketVersioning as unimplemented, versioning is absent, not partial, alongside bucket policies, ACLs, the S3 notification API and the object-lock configuration APIs. |
| Presigned URLs | ● | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/api/s3/presigned-urls/ | - |
| Multipart upload | ● | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/objects/multipart-objects/ | - |
| Versioning | ○ | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/api/s3/api/ | Cloudflare's S3 API compatibility table marks both GetBucketVersioning and PutBucketVersioning unimplemented. There are no version IDs and no delete markers: an overwrite is destructive. This cell previously read 'yes' and was wrong. |
| Lifecycle rules | ● | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/buckets/object-lifecycles/ | Expiration and abandoned-multipart cleanup; transitions only to Infrequent Access. |
| Event notifications | ● | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/buckets/event-notifications/ | Delivered into Cloudflare Queues, not as an S3-shaped notification payload, anything wired to SQS or Lambda needs rewriting. |
| CDN integration | free-bundled | Inferred | - | - | Cloudflare's CDN sits natively in front and the transfer is free either way. |
| Max object size | 5 TB | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/platform/limits/ | - |
| IAM granularity | 3 | Inferred | - | - | API tokens scoped by bucket and permission set, with optional TTL and IP filters. No policy conditions, no assumable roles. |
| Sydney region | ◐ | Inferred | - | - | The Oceania ('oc') location hint biases placement toward the region but is explicitly best-effort, not a contractual region. Hard jurisdictional restrictions exist for the EU, not for Australia. |
| TTFB from Sydney | 45 ms | Inferred | - | - | Cloudflare has Sydney PoPs; a cold read against an Oceania-hinted bucket typically lands in the 30-60 ms band. |
| Durability (nines) | 11  nines | Vendor-claimed | 2026-07-23 | https://developers.cloudflare.com/r2/reference/durability/ | - |
| Uptime SLA | 99.9 % | Inferred | 2026-07-23 | - | - |
| Object lock / WORM | ◐ | Inferred | - | - | Bucket-level retention locks exist; the full S3 Object Lock surface including compliance mode and per-object legal holds is not equivalent. |
| Replication model | multi-az | Inferred | - | - | Cloudflare does not publish its erasure-coding scheme or facility layout for R2, so this is an assumption from its durability claim. |
| Official MCP server | ● | Inferred | - | - | Cloudflare ships a family of remote MCP servers covering the developer platform, including bucket operations. |
| GA year | 2,022 | Vendor-claimed | - | https://blog.cloudflare.com/r2-ga/ | - |
| Positioning | Zero-egress object storage for teams already on Cloudflare's edge. | Inferred | - | - | - |

**Verdict.** The default answer for anything read-heavy, and the only provider here where egress genuinely stops being a line item you have to model. Watch the $4.50 per million Class A charge on write-heavy workloads, remember that 'Oceania' is a hint rather than a region, and check that you are not quietly depending on versioning, R2 does not implement it, which is a bigger gap than the zero-egress headline lets people notice.

## Alternatives

- [AWS S3](https://toolweight.com/options/aws-s3), The API everything else copies, and by far the most expensive egress in this roster.
- [Backblaze B2](https://toolweight.com/options/backblaze-b2), Cheap US and EU object storage with free egress up to three times stored volume.
- [Bunny Storage](https://toolweight.com/options/bunny-storage), Edge storage built as a CDN origin, with its own API rather than a faithful S3 one.
- [DigitalOcean Spaces](https://toolweight.com/options/digitalocean-spaces), Bundled object storage plus free CDN, priced as a flat base fee with overages.
- [Hetzner Object Storage](https://toolweight.com/options/hetzner-object-storage), The cheapest credible S3 endpoint in Europe, with a deliberately thin feature set.
- [iDrive e2](https://toolweight.com/options/idrive-e2), USD 4/TB S3-compatible storage with zero-egress marketing and a fair-use cap.
- [MinIO](https://toolweight.com/options/minio), The self-hosted S3 reference implementation, your hardware, your bandwidth, your SLA.
- [Scaleway Object Storage](https://toolweight.com/options/scaleway-object-storage), European-sovereign S3 storage with multi-AZ classes and a real IAM system.
- [Storj](https://toolweight.com/options/storj), Decentralised erasure-coded storage: USD 4/TB stored, USD 7/TB egress, no regions.
- [Tigris](https://toolweight.com/options/tigris), Globally distributed S3-compatible storage that caches objects near readers.
- [Wasabi](https://toolweight.com/options/wasabi), Flat-rate hot storage with no egress or API fees, bounded by a fair-use cap.

## Licence and attribution

Data from toolweight (https://toolweight.com), licensed CC-BY-4.0.

- Licence: [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/)
- Canonical HTML: https://toolweight.com/options/cloudflare-r2
- Machine-readable: https://toolweight.com/options/cloudflare-r2.md · https://toolweight.com/api/v1 · https://toolweight.com/mcp
- toolweight takes no affiliate revenue and sells no placements. Corrections: https://toolweight.com/suggest
