# Cloudflare R2
[[Cloudflare]] R2 is an S3-compatible object storage service with **zero egress fees**. Same API surface as Amazon S3 (sigv4, PUT/GET/multipart, presigned URLs), distributed across Cloudflare's network, but you only pay for storage and operations — not for bandwidth out.
The egress economics are the entire pitch. On AWS, S3 storage is cheap but bandwidth is the bill that hurts: pulling 10 TB out of S3 costs ~$900/month. R2 charges $0 for that same egress. For any workload that serves media, hosts datasets, or backs a CDN, R2 is the cheapest object store on the market by an order of magnitude.
## Why It Matters
R2 turns "host large files on the cloud" from a budgeting exercise into a non-issue. It pairs natively with [[Cloudflare Workers]] (binding-based access, no creds in code) and with [[Cloudflare Pages]] for asset offloading. AI workloads benefit especially: training datasets, model weights, embedding caches, generated artifacts.
## Common Use Cases
- **Static asset hosting** behind a CDN or [[Cloudflare Pages]]
- **Media storage** (images, video, audio) without egress fear
- **Dataset hosting** for ML workloads — public datasets, fine-tuning corpora
- **Backups** — snapshots, archives, log dumps
- **S3 migrations** — drop-in replacement via S3 API + Super Slurper migration tool
## Pricing Shape
- Storage: $0.015/GB-month
- Class A ops (writes): $4.50 per million
- Class B ops (reads): $0.36 per million
- **Egress: $0**
- Free tier: 10 GB-month of storage, 1M Class A and 10M Class B operations per month
- **Infrequent Access** storage class: $0.01/GB-month, but $0.01/GB to retrieve and pricier operations ($9.00 / $0.90 per million). Egress stays free
## What changed in 2026
- **Local Uploads** (open beta, February): object data is written near the client, then replicated to the bucket. Cloudflare measured up to 75% lower time to last byte for cross-region uploads
- **`us` jurisdiction** (August), next to the existing EU one: data stored and processed inside the US. A bucket's jurisdiction can't be changed after creation
- **Data Access Logs** (GA, September): per-bucket logs of reads, writes, lists and deletes in Workers Observability
- **[[Cloudflare Basin|Basin]]** (GA, October 1): the analytics layer on top of R2 got its own name. [[Cloudflare Pipelines]] became Basin Pipelines, R2 Data Catalog (managed Apache Iceberg tables) became Basin Catalog, and R2 SQL became Basin SQL. External engines such as [[DuckDB]] read the same tables without egress fees
## References
- R2 home: https://www.cloudflare.com/developer-platform/products/r2/
- Documentation: https://developers.cloudflare.com/r2/
- Pricing: https://developers.cloudflare.com/r2/pricing/
- Changelog, R2 Local Uploads open beta (2026-02-03): https://developers.cloudflare.com/changelog/post/2026-02-03-r2-local-uploads/
- Changelog, `us` jurisdiction for R2 (2026-08-17): https://developers.cloudflare.com/changelog/post/2026-08-17-r2-us-jurisdiction/
- Changelog, R2 Data Access Logs (2026-09-04): https://developers.cloudflare.com/changelog/post/2026-09-04-r2-data-access-logs/
- Changelog, Cloudflare Basin GA (2026-10-01): https://developers.cloudflare.com/changelog/post/2026-10-01-basin-ga/
- Basin documentation: https://developers.cloudflare.com/basin/
## Related
- [[Cloudflare]]
- [[Cloudflare Workers]]
- [[Cloudflare AI Search]]
- [[Cloudflare Pages]]
- [[Cloudflare D1]]
- [[Cloudflare KV]]
- [[Cloudflare Pipelines]]
- [[Cloudflare Basin]]
- [[Cloudflare Containers]]
- [[Cloudflare Artifacts]]
- [[DuckDB]]
- [[Wrangler]]