Every limit in Tabla, in one honest table
All of it: file sizes, import ceilings, API rates, invitation caps, the million-record ceiling and the sanity caps behind it. Which numbers you might actually meet, which exist so nobody can break the box, and what has no limit at all.
Updated August 2026
Two kinds of numbers live on this page. Working limits you could meet in ordinary use — file sizes, batch sizes, rates. Sanity caps exist so that no script, stuck loop or hostile actor can degrade the service for everyone else; they sit far above legitimate use, and no meter anywhere shows you creeping toward one. Tabla doesn't do usage meters. Hitting any ceiling is a plain error naming the number, not an upgrade prompt.
Everything, in one place:
| Limit | Value |
|---|---|
| One attachment file | 100 MB |
| Attachment storage | 100 GB per account, across all its databases |
| Profile photo | 5 MB |
| Import, CSV or TSV | no limit — bounded only by the database's 1,000,000 records |
| Import, an Airtable base | no limit — bounded by the same 1,000,000 |
| Import, Excel, one run | 20 MB file · 50,000 rows |
| Records per API write batch | 100 — all-or-nothing |
page_size on an API read |
up to 1,000 (default 100) |
| API requests, per key | 600 a minute |
| API requests, no key | 60 a minute per address |
| Attachment uploads | 60 a minute per account |
| Invitation emails | 20 an hour per sender |
| Records per database | 1,000,000 — counted across all its tables |
| Records per account | 2,000,000 — across all its databases |
| Databases per account | 10 |
| Tables per database | 200 |
| Tables per account | 300 |
| Fields per table | 500 |
| Choices in one select field | 1,000 |
| Trash retention | deleted records and tables restorable for 7 days |
Notes on the ones that repay a second look:
- The million records is the one structural ceiling the site advertises, and it's identical on every plan, free included — a promise about capacity, not a meter that prices you. Live records only: the trash doesn't count against it. At the ceiling, writes refuse with the arithmetic spelled out and nothing half-written.
- File storage is 100 GB per account today, for everyone — counted across every database the account owns, not per database. That's the enforced number in the running product. Files uploaded by someone you invited count against you, because the database is yours. Nothing already stored is ever touched by this: an account over the line keeps every file and simply can't add more until it's under. The published plans price storage differently for later — 5 GB of files on Solo, 100 GB on Team, per the pricing page — but no per-plan storage gate exists during the beta; see free and beta.
- Rates are sliding windows, not monthly meters. 600 requests a minute
per key, every minute, forever — there is no monthly API call cap to
budget against. Over the line is a
429withRetry-Afterin whole seconds; sleep it and continue. The wire-level detail, with real error bodies, is API errors and limits. - Databases, tables, fields and select choices are the sanity caps, and they come in two shapes: what one database may hold, and what one account may hold across all of them. Both matter because every Tabla table is a real Postgres table — ten databases of two hundred tables each would be two thousand of them, which bloats the catalog and the nightly backup for every tenant on the box, not just for whoever made them. Nobody reaches these by using a database. If a legitimate need ever hits one, the error says to contact support, and that's meant literally — the per-account ceilings can be raised for your account on request, without waiting for a release.
- A CSV has no import ceiling, and neither does an Airtable base. The browser reads a CSV and streams its rows in batches; the Airtable importer pages a base straight into the database a hundred records at a time. Neither meets a row cap of its own — the million records per database is the only line. The Excel ceiling above is per run, not total — 50,000 rows at a time, as many runs as you need — see import a spreadsheet.
What has no limit
Worth stating as plainly as the table:
- No monthly cap on API calls or webhook deliveries. Per-minute rates above are the only throttle; nothing counts your month.
- No cap on members or viewers in a database — only invitation sends are rate-limited, because each is a real email.
- No time limit. Nothing about a free database expires, quits at a row count, or starts nagging.
- No per-plan differences. During the beta, nothing anywhere in the product checks what plan you're on — there's nothing to check.
Whole-database export is likewise unmetered.
The zip inlines attachment bytes up to the same 100 GB that bounds storage
itself, so an account inside its limits gets every file. Past it, files go in
oldest first until the budget is spent and the rest are listed in
attachments.csv with their metadata rather than their bytes, with the
README inside naming how many stayed behind.