fshy

fshy / Databases and KV / Storage

Turso

turso.tech · Databases and KV, Storage · 2 records · JSON

Turso Databases and KV

★ qualifiesemailno cardDretention-clamped

turso.tech/pricing · SQLite at the edge · databases-kv/turso · JSON · compare

Free tier100 databases; 5 GB storage; 500 million rows read per month; 10 million rows written per month; 3 GB sync
unit GB; metered on stored-bytes
PriceUSD 0.75/GB beyond 9 GB on Developer
Per-object cap5 GB across all databases on Free; the plan table gives no per-database cap
Retentiona database is archived after 10 days of inactivity on a free plan, and an archived database must be unarchived before it can be used; a deleted database has no point-in-time restore on Free and the Free column shows 1-day audit logs (10 days)
Egressno egress charge and no transfer allowance is published; the metered quantities are rows read and rows written, so a byte of egress is not what is counted
Identityemail email signup; GitHub OAuth also offered
Limits
  • request-rate 500 million rows read and 10 million rows written per month source
  • per-object-cap 5 GB total across all databases; 100 databases source
  • retention-clamped an inactive database is archived after 10 days on a free plan source
  • request-rate no connection limit is published on the pricing page or the feature pages; recorded as a gap source
Bindingretention-clamped 10 days of inactivity archives the database on the free plan, so a job that runs less often than that finds the database unavailable. The 5 GB total and the 10-million-row monthly write budget are larger than that clock allows a quarterly job to reach.
Interfacerest, cli libSQL over HTTP and WebSockets; the Turso CLI; a platform API
Toolingthe turso CLI; libSQL client libraries; sqld for a local replica
Composes witha free SQLite replica per tenant suits multi-tenant read-heavy work that a single free Postgres cannot hold, provided something touches each database at least every 10 days, because the free plan archives an inactive one
Reliabilityan inactive database on a free plan is archived after 10 days and must be unarchived before use; the archive is not a deletion and the data survives it
NotesThe 500-database and 9-GB figures in circulation are the Developer plan, not Free. The 5 GB is a total, so 100 databases average 50 MB each. The binding constraint is not either number: it is the 10-day archive, which a quarterly job meets first and which nothing on the pricing page states.
Evidence rungdocumented the pricing table was read today and its own meta description states 100 databases and 5 GB. The 10-day archive clock is from Turso's CLI reference, read the same day
Checked2026-10-23 (live); stale on 2026-11-22
Parsed numbers
  • $.limits[1].value limit:per-object-cap 5.0 GB
  • $.price_per_tb_month price-per-tb USD0.75 GB / month
Evidence (4)
datesourcewhat it proved
2026-10-22turso.tech/pricingFree column: 100 databases, 5GB storage, 500 Million rows read, 10 Million rows written, 3GB sync, 1 day audit logs; Developer USD 4.99 gives unlimited databases and 9GB
2026-10-22docs.turso.tech/cli/group/unarchive'Databases get archived after 10 days of inactivity for users on a free plan'; the unarchive command restores one
2026-10-22docs.turso.tech/api-reference/groups/unarchivethe platform API exposes a group unarchive endpoint, so the archive state is reachable programmatically and not only through the CLI
2026-10-22probe:https://api.turso.tech/v1/organizationsan unauthenticated GET returns 401 with 'token contains an invalid number of segments', proving the platform API exists and is token-authenticated

Corrections

Turso Storage

fails: quotaemail?card?R

turso.tech · paas · storage/turso · JSON · compare

Free tier5 GB total storage, 100 databases on Free
unit GB; metered on stored-bytes
Pricenone stated
Per-object capnot stated
Retentionnot stated
EgressNot separately metered on Free; the binding meters are 500M rows read / 10M rows written per month, plus 3 GB embedded syncs. Serving files out of SQLite blobs burns rows-read, not bytes.
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfacerest, cli rest
ToolingTurso CLI + HTTP API (/v2/pipeline), libSQL clients (JS/Python/Rust/Go), turso db shell, embedded replicas
Composes with100 databases is a unit multiplier for ORGANIZATION, but the 5 GB storage is an ACCOUNT-level pot, not per database — 100 DBs x 50 MB each rather than 100 x 5 GB. Second axis: each org/account. Multiply accounts (GitHub OAuth is one click) — N accounts x 5 GB.
ReliabilityExceeding quota returns BLOCKED errors on queries rather than data loss; DBs stay warm (no cold starts since Mar 2025).
Notes5 GB total storage, 100 databases on Free
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (2)
datesourcewhat it proved
2026-10-21turso.tech/pricing'Free $0/month | 100 | 5GB | 500 Million | 10 Million | 3GB'
2026-10-21turso.tech/blog/turso-cloud-debuts-the-new-developer-plan'500 million rows read per month, 10 million rows written per month, and 5GB of storage'; Developer plan allows 1,000 databases
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "5 GB total storage, 100 databases on Free",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (8)
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.per_object_cap.notes not-extracted
  • $.per_object_cap.stated not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted