At a glance
| Database engines | SQLite SQL semantics (managed by Cloudflare) |
| Regions | Primary placed by location hint or jurisdiction; read replicas in ENAM, WNAM, WEUR, EEUR, APAC and OC |
| Scaling | Scale out across many databases (10 GB each on Paid, 1 TB per account); read replication for read throughput |
| Backups and recovery | Time Travel point-in-time restore to any minute: 30 days on Paid, 7 days on Free, no extra cost |
| Free tier | Yes, on Workers Free: 5 million rows read and 100,000 rows written per day, 5 GB storage, 10 databases |
| Pricing model | Rows read, rows written, storage per GB-month and databases above 100,000; Workers Paid minimum 5 USD a month |
D1 is the natural database for applications built on Cloudflare Workers: the database is a binding rather than a connection string, there are no egress charges, and point-in-time restore is always on. It is designed for many small databases (per user or per tenant), so it is a poor fit for one large database above 10 GB or for applications that run outside Cloudflare.
Overview
D1 is Cloudflare's managed, serverless database with SQLite's SQL semantics. You create a database with the Wrangler CLI, declare it as a binding in your Worker configuration and query it from Worker code; outside Workers it is reachable through Cloudflare's HTTP API. There are no instances to size: you pay for rows read and written and for storage.
Cloudflare documents D1 as built for horizontal scale-out across many smaller databases, such as one per user or tenant, rather than one large database. Each database processes queries one at a time and is capped at 10 GB on Workers Paid (500 MB on Free). Since November 2025 you can set a jurisdiction when creating a database to control where it runs and stores data, and read replication adds read-only copies in several regions.
Key features
- Worker binding API, plus an HTTP API for access from outside Workers
- Time Travel: restore a database to any minute in the last 30 days on Workers Paid (7 days on Free)
- Read replication with replicas in ENAM, WNAM, WEUR, EEUR, APAC and OC, used through the Sessions API, at no extra storage or compute cost
- Location hints and jurisdictions to control where a database runs and stores data
- Up to 1,000,000 databases per account on Workers Paid, suited to per-tenant designs
- Automatic retries (up to two) for read-only queries
Pros and cons
Pros
- No compute charge when idle and no egress or bandwidth charges
- Point-in-time restore is always on, with no setup or extra cost
- Large free allowance on Workers Free for small projects
- Designed for thousands of small per-tenant databases
Cons
- Each database is capped at 10 GB on Workers Paid (500 MB on Free)
- Each database processes queries one at a time, so throughput per database is limited
- Built around Cloudflare Workers; other runtimes go through the HTTP API
- SQLite semantics, so not a drop-in replacement for PostgreSQL or MySQL applications
Pricing
D1 is available on the Workers Free and Workers Paid plans and is billed on rows read, rows written, storage and database count, in USD. Workers Free includes 5 million rows read and 100,000 rows written per day, 5 GB of storage and 10 databases. Workers Paid (minimum 5 USD per month per account) includes 25 billion rows read and 50 million rows written per month, then 0.001 USD per million rows read and 1.00 USD per million rows written; the first 5 GB of storage, then 0.75 USD per GB-month; and the first 100,000 databases, then 0.10 USD per database per month. There are no egress or bandwidth charges, and no compute charge when no queries run.
Pricing checked on the vendor's official page on 7 November 2026. Prices change; confirm before buying.
Who it is best for
Applications running on Cloudflare Workers or Pages that want a relational SQL database close to the code, especially per-user or per-tenant database designs.
Who should look elsewhere
- One large shared database above 10 GB, or a PostgreSQL or MySQL application: see serverless databases for other options.
- SQLite-based databases that you want to reach from any platform: see Cloudflare D1 vs Turso.
Verdict
D1 is the simplest database choice for Workers applications, with usage-based billing, no egress fees and always-on point-in-time restore. Its 10 GB per-database limit and one-query-at-a-time model mean you should design for many small databases from the start, or choose a different service.
Frequently asked questions
What is the maximum size of a Cloudflare D1 database?
10 GB per database on Workers Paid and 500 MB on Workers Free, with up to 1 TB of storage per account on Paid and 5 GB on Free.
Is Cloudflare D1 free?
D1 is included in Workers Free with 5 million rows read and 100,000 rows written per day and 5 GB of storage. On Workers Paid (minimum 5 USD a month) larger monthly allowances apply, then usage is billed per million rows and per GB-month.
Does D1 support read replicas?
Yes. D1 read replication creates read-only replicas in several regions at no extra cost; queries reach them only through the Sessions API. Cloudflare announced it as a public beta on 10 April 2025, and the D1 release notes list no general availability date.
Sources
- Cloudflare D1 overview
- Cloudflare D1 pricing
- Cloudflare D1 limits
- Cloudflare D1 read replication
- Cloudflare D1 release notes
- Cloudflare Workers pricing
Checked November 2026.
How we research reviews and what star ratings mean: our editorial method.