Turso Pricing & Free Tier Limits (2026): Plans, Row Reads and the Write Ceiling
Turso's free tier is 5 GB, 500 million row reads, 10 million row writes and 100 databases for $0. But Turso meters rows read and written, not requests, and 10M writes/month is the ceiling you hit first. Exact 2026 plans (Free, Developer $4.99, Scaler, Pro), the row-metering gotcha, and when a flat-rate KV store is simpler.
Turso's free tier is genuinely generous: 5 GB of storage, 500 million row reads, 10 million row writes, and 100 databases, all for $0/month. The catch most people miss is what Turso actually meters. It does not bill per request or per gigabyte first. It bills per row read and row written, and the 10-million-writes ceiling is the one you hit long before you run out of storage. Here are the exact 2026 plans and the metering math that decides whether you stay free.
Turso pricing in 2026, at a glance
| Plan | Price/mo | Storage | Databases | Row reads/mo | Row writes/mo | |---|---:|---:|---:|---:|---:| | Free | $0 | 5 GB | 100 | 500 million | 10 million | | Developer | $4.99 | 9 GB | Unlimited | 2.5 billion | 25 million | | Scaler | $24.92 | 24 GB | Unlimited | 100 billion | 100 million | | Pro | $416.58 | 50 GB | Unlimited | 250 billion | 250 million |
Every quota is a soft cap with pay-as-you-go overage, not a hard wall: storage runs about $0.75/GB, row reads about $1 per billion, row writes about $1 per million. That is a meaningful difference from Cloudflare Workers KV, where hitting the free cap makes operations fail outright. On Turso you keep running and get billed for the excess.
The free tier, exactly
For $0/month the Free plan gives you:
- 100 databases (Turso encourages database-per-tenant, so this is per-project generous)
- 5 GB storage, then $0.75/GB
- 500 million row reads per month, then $1 per billion
- 10 million row writes per month, then $1 per million
- 3 GB of syncs per month and 1-day point-in-time restore
500 million row reads sounds enormous, and for read-light apps it is. The number that quietly runs out is 10 million writes.
The one you'll actually hit: row writes
Turso counts rows, not requests or queries. That cuts both ways.
On writes, 10 million per month is roughly 330,000 per day. That is fine for a normal CRUD app, but a write-heavy pattern eats it fast: an event logger that inserts one row per request, a per-view analytics counter, an IoT ingest endpoint, or any "append a row on every action" design. Each of those inserts is a row, and they add up faster than most people estimate.
On reads, the trap is the opposite. A query without an index does a full-table scan, which reads every row in the table, not one. So a single SELECT on a 50,000-row table can cost 50,000 row reads. Ten of those a second is 500 million reads in well under a day. The fix is ordinary SQL hygiene (index your lookups), but if you are estimating whether the free tier fits, count rows touched, not queries sent.
Rule of thumb: estimate your writes first (they are easier to bound and they run out first), then sanity-check your reads assuming your hot queries are indexed.
What changed in 2026
Turso reshaped the ladder by adding the $4.99 Developer plan, which unlocks unlimited databases and bumps reads to 2.5 billion and writes to 25 million. Before that, the jump off the free tier was steeper. The free tier itself stayed generous on reads, but the 10-million-write gate is still the real threshold, and it is the number to plan against for 2026.
Free vs Developer: when to upgrade
The honest upgrade trigger is not storage and it is not databases. It is writes. If your monthly writes are creeping toward 10 million, the $4.99 Developer plan (25 million writes, 2.5 billion reads, unlimited databases, 9 GB) is the obvious next step and cheap enough that agonizing over it wastes more than it saves. Storage is rarely the reason to move up: 5 GB of SQLite rows is a lot of data.
Do you even need SQL? (the part where we are biased)
Feel free to skim this. Turso is edge SQLite: real SQL, relations, joins, and global replication. That is exactly right for apps that need relational queries close to users.
But a lot of workloads that reach for Turso are not relational at all. Sessions, caches, config, feature flags, rate-limit counters, idempotency keys, an agent's memory: those are plain key/value. If that is your shape, SQL is overhead you are paying for in complexity and in row-metering math you have to keep in your head. BaseKV is the alternative we built for that case: a disk-first key/value store with flat monthly pricing (no row counting), an HTTP-shaped API, and no cap that fails your writes mid-day. If your data is key/value, a KV store is the simpler tool. We wrote a fuller Turso vs KV store comparison if you want the developer-experience side of it.
When Turso is the right answer anyway
Three cases where Turso is the correct pick and you should not switch to a KV store to dodge row-metering:
- You need real SQL. Joins, transactions, relational integrity, ad-hoc queries. A KV store cannot give you that, and bolting relations onto key/value is worse than paying for a database that does it natively.
- You want SQLite-compatible local dev plus edge replication. Develop against a local SQLite file, deploy the same schema replicated to the edge. That workflow is genuinely nice and specific to Turso's model.
- You are read-heavy with indexed queries. If your reads are well-indexed and your writes are modest, 500 million free reads (or 2.5 billion on Developer) is a wide runway, and Turso's per-row read pricing is cheap once you are past free.
If you need a database, use Turso and index your queries. If you need a key/value store, do not pay in SQL complexity for something DynamoDB-style pricing or a flat-rate KV can do more simply.
The authoritative, live figures always live on the official Turso pricing page; the numbers here reflect the published 2026 plans.