Cloud Parts

Cloudflare R2

S3-compatible object storage from Cloudflare that charges nothing for data going out.

What it is
Object storage
Type
Commercial product
License
Proprietary
Facts checked
5 October 2026

What it is

R2 is object storage that answers the S3 API at an account endpoint, https://<ACCOUNT_ID>.r2.cloudflarestorage.com, with the region set to auto. Existing S3 SDKs and tools work after changing the endpoint and keys. Cloudflare Workers can also read and write buckets directly through a binding, without signing requests.

What sets it apart is billing. Reading data out of R2 costs nothing in egress. You pay for storage ($0.015 per GB-month in the Standard class) and for operations ($4.50 per million writes, $0.36 per million reads). That makes it popular for public downloads, media and datasets read from other clouds. An Infrequent Access class costs $0.01 per GB-month but adds a retrieval fee and a 30-day minimum. Cloudflare’s Basin Catalog, formerly R2 Data Catalog, turns a bucket into a managed Apache Iceberg REST catalog; it became generally available on 1 October 2026.

Why teams pick it

  • No egress fees, so serving or copying data out is not billed per GB
  • S3 API compatibility: point existing SDKs and tools at a new endpoint
  • Built-in bindings for Cloudflare Workers, plus public buckets on custom domains
  • Free tier of 10 GB-month storage, 1 million writes and 10 million reads each month

Watch out for

  • Only part of the S3 API: no object versioning, bucket policies, object tagging or ACLs
  • Each key can be written about once per second; faster writes get HTTP 429
  • Far fewer storage classes and lifecycle options than S3, and no archive tier
  • Infrequent Access charges a retrieval fee and bills at least 30 days

Alternatives

What all object storage have in common →
Amazon S3AWSAWS’s object storage, and the de facto API most object stores copy.Apache OpenDALOpen sourceA Rust library, with bindings for Python, Java, Node.js, Go and more, that gives one API (read, write, stat, list, delete) over 50-plus storage backends: S3 and other object stores, local and HDFS file systems, Google Drive and Dropbox, and key-value stores.Apache OzoneOpen sourceA Hadoop-born object store that serves the same buckets over S3 and as a Hadoop file system.Azure Blob StorageAzureAzure’s object storage, with three blob types and an optional real directory tree for analytics.Backblaze B2 Cloud StorageCommercialLow-cost object storage on Backblaze’s own hardware, with its own API and an S3-compatible one.CephOpen sourceA distributed storage cluster that serves S3 buckets, block devices and a file system from the same pool of disks.GarageOpen sourceA lightweight S3 object store that keeps copies of your data in several sites linked by ordinary Internet connections.Google Cloud StorageGoogle CloudGoogle Cloud’s object storage, where even the archive class answers in milliseconds.MinIOArchivedOpen sourceA self-hosted object store that speaks the S3 API. The open-source edition is archived and its images are gone from Docker Hub; MinIO now sells AIStor.PGSTY SiloOpen sourceA community-maintained fork of the open-source MinIO server, with builds, images, security fixes and the full web console.RustFSOpen sourceA young Rust reimplementation of MinIO’s design: S3-compatible, erasure-coded, Apache 2.0, and generally available since September 2026.SeaweedFSOpen sourceA distributed blob store with an S3 gateway and a file system layer, built to store and serve billions of small files.TigrisCommercialGlobally distributed S3-compatible object storage that moves data to where it’s read, with no egress fees.Versity S3 GatewayOpen sourceA stateless S3 server that exposes an existing file system, or another object store, through the S3 API.Wasabi Hot Cloud StorageCommercialS3-compatible object storage sold at one flat price per TB, with no egress or request fees.Zenko CloudServerOpen sourceScality’s open-source Node.js S3 server: a light S3 endpoint for development and tests, and a front end that can store objects in other clouds.

How it fits with other technologies

Create a bucket with Wrangler, then use the aws CLI against R2 · bash

npx wrangler r2 bucket create acme-media

# any S3 tool works against the account endpoint; the region is "auto"
export R2="https://${ACCOUNT_ID}.r2.cloudflarestorage.com"

aws s3 cp video.mp4 s3://acme-media/videos/video.mp4 --endpoint-url "$R2" --region auto
aws s3 ls s3://acme-media/videos/ --endpoint-url "$R2" --region auto
aws s3 presign s3://acme-media/videos/video.mp4 \
  --endpoint-url "$R2" --region auto --expires-in 3600

See it in a real stack

No architecture uses Cloudflare R2 yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2021–2026

By 2021 egress, the per-GB fee for data leaving a cloud, was often the largest line on an object storage bill. In July 2021 Cloudflare’s Matthew Prince and Nitin Rao published “AWS’s Egregious Egress”, arguing that wholesale bandwidth prices had fallen 93% over a decade while AWS’s egress fees had fallen only 25%, and that the fees helped lock customers in.

Two months later, on 28 September 2021, Cloudflare announced R2: object storage with full S3 API compatibility and no egress fees, building on its Bandwidth Alliance commitment, at $0.015 per GB-month. Greg McKeon’s announcement called egress fees “just a tax developers have grown accustomed to paying”. R2 entered open beta in May 2022 and became generally available on 21 September 2022, by which point more than 12,000 developers had joined the beta and Cloudflare Images was running on it in production.

The pitch is multi-cloud: keep one copy of the data in R2 and read it from any cloud, or serve it to the public, without paying per GB. Cloudflare has since built analytics on top, starting with a managed Apache Iceberg catalog inside buckets, now called Basin Catalog.

Why it’s built this way

No egress fees
Cloudflare argued egress was priced far above what bandwidth really costs. R2 bills for storage and operations instead ($4.50 per million writes, $0.36 per million reads), so reading data out costs nothing per GB.
The S3 API instead of a new one
Existing SDKs and tools work as built, and customers can start serving objects from R2 while they are still migrating them from another cloud.
Part of the Workers platform
Buckets bind directly to Cloudflare Workers, so code running on Cloudflare’s network can read and write objects without signing requests.

Timeline

  1. 2021

    Cloudflare attacks AWS egress pricing in July and announces R2 on 28 September

  2. 2022

    Open beta in May; generally available on 21 September

  3. 2025

    R2 Data Catalog: a managed Iceberg catalog in a bucket, in public beta (April)

  4. 2026

    The catalog, renamed Basin Catalog, becomes generally available on 1 October

Sources10 · facts checked 5 October 2026

Improve this page on GitHub