vs.
API benchmark · August 2026

Airtable API limits, measured

A controlled head-to-head of both REST APIs on an identical six-field schema and byte-identical payloads. At 1,000 records — the most an Airtable Free base can hold — Zite was faster on every operation we measured, by 13× to 16× on bulk create, update and full scan. We then ran Zite on its own up to 100,000 records, where the gap gets bigger.

Faster bulk create at 1,000 records
13.7×Faster bulk create at 1,000 records
Faster full table scan
15.9×Faster full table scan
Faster to import 100,000 records
22×Faster to import 100,000 records
Requests to count 50,015 matching records
1 vs 501Requests to count 50,015 matching records
Reference

Airtable's API limits

The limits you run into building on the Airtable API, and what Zite does instead. Checked against the live APIs and the docs in August 2026.

LimitAirtableZite
Requests per second, per baseThis is the one most integrations hit, since most of them work against a single base.530
Records per write requestAirtable documents a 10-record maximum for create and update. We measured 25 being accepted and used 25 throughout, because the larger batch makes Airtable finish sooner.10 documented · 25 accepted100
Records per read page1002,000
API calls included per monthAirtable's monthly allowance is per workspace, not per base or per user.1,000 Free · 100,000 Team · Unlimited Business+Not metered
Behaviour once the monthly quota is spentThrottled to 2 requests/sec until the month resetsNo monthly cap to exhaust
Rate-limit response429, then a 30-second lockout429 with backoff
Count records matching a filterNo endpoint — page the entire matching setOne request
Pagination modelOpaque cursor — strictly sequentialNumeric offset — pages can be fetched in parallel

Sources: Airtable API rate limits · Airtable API call limits · Zite database API

Why

What each API allows

Five differences between the two APIs account for every number on this page. We measured each one against the live endpoints instead of reading it off the docs — in one case the documented value was wrong.

Measured against the live APIs
CapabilityZiteAirtableAdvantage
Records per write request10025
Records per read page2,00010020×
Rate limit (requests/sec)305
Server-side filtered countYesNo
Pagination modelNumeric offsetOpaque cursor

Pagination is the hardest one to work around. Zite returns a numeric offset, so you can ask for pages 1 through 50 at the same time. Airtable returns an opaque cursor that only arrives with the previous page, so reading a large table is strictly sequential however much concurrency you have.

Head-to-head

Throughput at 1,000 records

Both platforms ran the same operations on the same data, each at its own documented rate limit. 1,000 records is the ceiling here because an Airtable Free base cannot hold more — so this is the largest table where both sides could be measured directly.

Records processed per second

higher is better
  • Zite
  • Airtable
Bulk create13.7× faster
Zite: 1,480 rec/s
Airtable: 108 rec/s
Bulk update13.7× faster
Zite: 1,641 rec/s
Airtable: 120 rec/s
Full table scan15.9× faster
Zite: 2,906 rec/s
Airtable: 183 rec/s
View as table
Throughput at 1,000 records, records per second
OperationZiteAirtableRatio
Bulk create1,479.6108.213.7×
Bulk update1,641.0119.513.7×
Full table scan2,905.9182.715.9×
Count filtered (wall time)331 ms · 1 req2,380 ms · 5 req7.2×
Server speed

Zite is faster per request, even before rate limits

Throughput mixes two things: how fast the server responds, and how many requests you are allowed per second. Latency measures only the first, and rate limits do not affect it. Zite is 1.5× to 3.5× faster here too, so this is not just a bigger quota.

Median request latency at 1,000 records

lower is better
  • Zite
  • Airtable
Fetch one record2.7× faster
Zite: 162 ms
Airtable: 438 ms
Filtered query1.7× faster
Zite: 305 ms
Airtable: 518 ms
Sorted query1.5× faster
Zite: 366 ms
Airtable: 547 ms
Write request3.5× faster
Zite: 325 ms
Airtable: 1,155 ms
View as table
Median (p50) request latency at 1,000 records, milliseconds · n = 10 per cell
OperationZiteAirtableRatio
Fetch one record162.0437.62.70×
First page360.5555.81.54×
Filtered query304.5518.11.70×
Sorted query366.2546.61.49×
Write request325.21,154.53.55×
Update request227.1565.02.49×

The write-request comparison understates the gap. Zite’s request completed in 325 ms while carrying 100 records; Airtable’s took 1,155 ms carrying 25. Per record that is 3.3 ms against 46 ms. Zite also returns roughly 2.15× more bytes per record than Airtable, and still finishes a full scan 15.9× sooner.

Under load

What happens at 100,000 records

Airtable Free caps a base at 1,000 records, so the head-to-head stops there. We ran Zite on its own up to 100,000 records. Write throughput kept climbing — 1,480 → 2,748 rec/sec — because bigger runs spread the per-request overhead further. Read throughput peaked at 10,000 records and dipped a little at 100,000, but never dropped below 3,500 rec/sec — seven times the fastest Airtable can read at all. Its 5 req/sec limit and 100-record pages cap it at 500 rec/sec whatever the table size.

Zite throughput by table size

measured · higher is better
  • Bulk create
  • Full scan
1,000 records
Bulk create: 1,480 rec/s
Full scan: 2,906 rec/s
10,000 records
Bulk create: 2,056 rec/s
Full scan: 4,004 rec/s
100,000 records
Bulk create: 2,748 rec/s
Full scan: 3,562 rec/s
View as table
Zite throughput by table size, records per second — measured
Table sizeBulk createFull scanFiltered count
1,0001,479.62,905.9331 ms
10,0002,055.84,004.0160 ms
100,0002,748.03,561.7204 ms

Counting costs the same at any size

Counting the records matching a filter took 204 ms and one request against a 100,000-row table, next to 160 ms at 10,000 rows and 331 ms at 1,000. The count runs on the server, so table size barely matters.

Airtable has no count endpoint. Getting the same answer means paging the entire matching set: 501 requests for 50,015 matches, which its 5 req/sec limit stretches to about 100 seconds.

In practice

Time to finish a real job

Zite figures are measured. Airtable figures at 10,000 records and above are its theoretical best case — the fastest the job could run given its 5 req/sec limit and 25-record batches, assuming the server answers instantly. A real run would be slower. Each row is scaled to its own longest bar, since the rows are in different units.

Elapsed time to complete

lower is better
  • Zite, measured
  • Airtable, best case
Import 1,000 records13.7× faster
Zite, measured: 0.7 s
Airtable, best case: 9.2 s
Import 10,000 records16.4× faster
Zite, measured: 4.9 s
Airtable, best case: 80 s
Import 100,000 records22.0× faster
Zite, measured: 36 s
Airtable, best case: 13 min
Export 100,000 records7.1× faster
Zite, measured: 28 s
Airtable, best case: 3.3 min
Count matches in 100,000490× faster
Zite, measured: 0.2 s
Airtable, best case: 100 s
View as table
Elapsed time to complete · Zite measured, Airtable best case above 1,000 records
TaskZiteAirtableRatio
Import 1,000 records0.68 s9.25 s13.7×
Import 10,000 records4.9 s80 s16.4×
Import 100,000 records36.4 s800 s22.0×
Export 100,000 records28.1 s200 s7.1×
Count matches in 100,0000.204 s100 s490×
Quota

Airtable also meters your API calls

Airtable counts API calls against a monthly workspace quota. Once it is spent, every request slows to 2 req/sec until the month resets. And because its batches are a quarter the size and its pages a twentieth, the same job burns through far more of that allowance.

API calls consumed by the same task — fewer is better
TaskZiteAirtableMultiple
Import 100,000 records1,0004,000
Export 100,000 records501,00020×
Count matches in 100,0001501501×

A nightly sync can exhaust the plan

An Airtable Team workspace includes 100,000 API calls per month. Re-importing a 100,000-record dataset once a day costs 120,000 calls — over quota before the month is out. Everything after that, including your app’s own traffic, drops to 2 req/sec until the month resets, down from an already tight 5 req/sec.

The same schedule on Zite costs 30,000 calls, and Zite does not meter monthly API volume.

FAQs

Questions about the Airtable API

Five requests per second per base. A personal access token is separately capped at 50 requests per second across every base it can reach, but the 5/sec per-base limit still applies underneath it — so a job that reads or writes a single base never exceeds 5/sec no matter which token it uses. Exceeding the limit returns a 429 and locks that base out for 30 seconds. Zite allows 30 requests per second.

Learn more: Airtable API rate limits · Zite database API

Still have questions?
Methodology

How this was measured

The benchmark is a single Python script using only the standard library. It creates a throwaway base on each platform, runs identical operations, and records the latency of every individual HTTP request.

  • Identical schema and payloads. Six fields — text, email, number, single-select, long text, checkbox — with deterministic seeded row data, so both platforms received byte-identical content.
  • Each platform at its own documented rate limit. Zite at 30 req/sec, Airtable at 5 req/sec, with matched concurrency of 8 across the head-to-head. Running Airtable faster would breach its published terms.
  • The 5 req/sec figure is the per-base limit. Airtable also documents 50 req/sec per personal access token, but that covers every base a token can reach, and the 5 req/sec per-base cap still applies underneath. This benchmark uses one base, so 5 req/sec is the limit that applied — running at 50 would have broken it.
  • We measured the limits instead of trusting the docs. Batch and page ceilings were probed against the live APIs. Airtable documents a 10-record write batch but accepted 25, and we used 25 — the larger batch makes Airtable faster, so this choice favours it. Using 10 would have understated its throughput by 2.5×.
  • Writes parallel, reads sequential — on both sides. Batched writes ran concurrently for each platform. Paging ran sequentially for both, because Airtable's cursor makes it unavoidable. Zite's numeric offsets would allow parallel paging, so its scan figures are conservative.
  • Airtable is given the benefit of the doubt. Its figures above 1,000 records are rate-limit ceilings assuming instantaneous server response — the most generous reading possible. Every head-to-head number at 1,000 records is measured on both sides.
  • Head-to-head runs were clean. Zero throttling and zero errors on both platforms at 1, 100 and 1,000 records. Latency cells are n = 10; throughput reflects the complete operation.
  • The 100,000-record run hit Zite's own limit. It used concurrency 12 and hit 39 rate-limit retries as it saturated 30 req/sec. Those backoff delays are included in the times above, so those Zite numbers are if anything too slow, not too fast.
  • Scope. Bulk create, bulk update, single-record read, paged/filtered/sorted queries, full scan, and filtered count. Not an exhaustive survey of either API. Airtable Free's 1,000-record base cap set the head-to-head ceiling.

Run 4 August 2026 · macOS, single client · Zite tables.zite.com/api/v1 · Airtable api.airtable.com/v0

Both platforms tested from the same machine within the same session. Raw per-request logs retained.

Airtable plan quotas, rate limits and post-quota throttling per Airtable's published documentation on API call limits, August 2026.

Try it on your own data

30 requests a second, 100-record writes, 2,000-record pages and no monthly call meter. Import your Airtable base and run the numbers yourself.