Airtable API 5 requests per second per base: writing back Sume results
Airtable allows 5 requests per second per base and a 30-second wait after a 429. How to write Sume job results back without tripping it.

Airtable's Web API is limited to 5 requests per second per base, and after a 429 you must wait 30 seconds before requests succeed again (Airtable rate limits, read 2026-10-02). If many Sume jobs finish together and each webhook handler writes one record, you can hit that ceiling, so queue the write-backs instead of writing from every handler.
What Airtable states
The page gives two ceilings, and a penalty that is longer than most retry loops.
| Limit | Value on the page |
|---|---|
| Per base | 5 requests per second |
| Per user or service account, personal access tokens | 50 requests per second across all traffic |
| After a 429 | Wait 30 seconds before requests succeed |
Why Sume jobs make it worse
A Sume job webhook is sent once the job reaches a terminal state, so jobs submitted together tend to land together. Each delivery has a 10-second timeout per attempt, and a non-2xx response is retried (up to 10 attempts, 30 seconds apart by default, per the webhook docs).
If your handler writes to Airtable inline and gets a 429, the 30-second Airtable penalty outlasts the 10-second Sume timeout. Sume then retries, adding more traffic to a base that is already throttled.
A pattern that stays under 5 per second
- Acknowledge the Sume delivery with a
2xxas soon as you have stored the event. Usejob_idas the key so a retry does not create a second row. - Put the write-back on your own queue and drain it at a rate safely below 5 requests per second for that base.
- On an Airtable
429, pause that base's queue for 30 seconds. Do not resubmit the Sume job; the job already finished and the result is readable at itsresult_url. - Keep polling
status_urlas a backup for deliveries that never arrive, as the Sume docs recommend.
What Sume does not do
Sume does not write to Airtable for you. It delivers the signed event, and the throttling of the Airtable side is yours to control. Batch size on the Sume side is separate: a bulk run queues up to 100 Format runs with a concurrency window, which spaces out when jobs finish, but each item still carries its own webhook.
Check before you ship
Count how many Sume jobs can finish in the same second for one base. If that number can exceed a few, add the queue. If it cannot, a direct write is fine, as long as the job_id check makes retries harmless.
Sources
Related posts
More in Integrations
- Airtable attachment URLs expire in hours: feeding Sume an image
Airtable attachment download URLs expire after at least 2 hours, and Sume accepts only fetchable public HTTPS media URLs. Copy the image to a stable URL first.
- Airtable upsert with fieldsToMergeOn: one row per Sume job id
Airtable's performUpsert merges on 1-3 fields. Merge on a Sume job_id field so webhook retries update one row instead of creating duplicates.
- Amp MCP server: amp mcp remote add with a bearer token file for Sume
Add Sume's hosted MCP to Amp with amp mcp remote add --auth bearer --bearer-token-file, so the Sume API key never appears in a command line.
- Apps Script doPost and the Sume webhook signature: what you can verify
An Apps Script web app doPost documents the body but no headers, and Sume signs in headers. Treat the callback as a hint and re-read the job with your key.
Written by Sume