fshy

Home / Cloudflare

Cloudflare D1

developers.cloudflare.com/d1/platform/limits/Serverless SQLitedatabases-kv/cloudflare-d1JSONcomparereport an errorprovider JSON

Free allowance
10 databases; 500 MB per database; 5 GB per account; 5 million rows read per day; 100,000 rows written per day
Verdict
★ qualifiesusable as stated; the read path was probed
Cost
free tierpaid plans from USD 0.75/TB-month
Identity
emailno card, no phone
Binding limit
request-rate100,000 rows written per day on Free; 5 million rows read per day on Free; 50 queries per Worker invocation on Free; a 30-second maximum query duration
Evidence
documented2 sources; 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 tier10 databases; 500 MB per database; 5 GB per account; 5 million rows read per day; 100,000 rows written per day
unit mixed; metered on request-count
PriceUSD 0.75/GB-month beyond 5 GB on Workers Paid
Limits
  • request-rate (binding) 100,000 rows written per day on Free source
  • request-rate (binding) 5 million rows read per day on Free source
  • per-object-cap 500 MB per database and 5 GB per account; a 2,000,000-byte row ceiling source
  • request-rate (binding) 50 queries per Worker invocation on Free; a 30-second maximum query duration source
Identityemail a Cloudflare account
Egressno egress charge; rows read and rows written are the metered quantities
Per-object cap2,000,000 bytes per row, BLOB or string; 500 MB per database (2000000 bytes)
Retentionstorage persists; Time Travel point-in-time recovery covers 7 days on Free
Interfacerest, cli a Worker binding, a REST API and the wrangler CLI
Toolingwrangler d1; the Cloudflare API; better-sqlite3 style calls inside a Worker
Composes withper-tenant SQLite in a Worker with a free Postgres as the system of record; 500 MB per database and 10 databases is 5 GB of free relational state
Reliabilityat the daily read or write limit the D1 API returns errors; at the storage limit you must delete data before you can insert, alter a table or create an index
NotesThe 100,000 rows written a day is the binding number for any ingest, and it is small: 1.16 rows a second sustained. A full table scan counts every row it scans as a row read, so an unindexed query spends the read budget fast.
Evidence notedocumented the limits and pricing pages were read; nothing was provisioned.
Parsed numbers
  • per-object-cap 500 MB
  • price-per-tb USD 0.75 GB / month
Evidence 2
datesourcewhat it proved
2026-10-22developers.cloudflare.com/d1/platform/limits/Free: 10 databases, 500 MB maximum database size, 5 GB per account, Time Travel 7 days, 50 queries per Worker invocation; 2,000,000-byte row maximum; 100,000-byte SQL statement; 30-second query maximum
2026-10-22developers.cloudflare.com/d1/platform/pricing/Free: 5 million rows read/day, 100,000 rows written/day, 5 GB total storage; 'Free limits reset daily at 00:00 UTC'; at the storage limit you must delete data before inserting