Airtable logo

Airtable

Overview

Airtable uses a Personal Access Token (PAT) for API authentication. Legacy API keys were deprecated on 2024-02-01 and no longer work — every connection needs a PAT. The token is free to create on any Airtable plan, but the monthly API call quota depends on your plan: Free is 1,000 calls/month (typically not enough for production sync), Team is 100,000/month, and Business and Enterprise are unlimited.

Setup guide

Create the token

  1. Sign in at airtable.com and open the Personal Access Tokens page.
  2. Click Create new token.
  3. Name it ingest (or similar).
  4. Add the scopes: data.records:read, schema.bases:read, and webhook:manage. Read-only scopes are sufficient — Ingest never writes back.
  5. Under Access, choose the workspaces and bases you want Ingest to read. You can grant access to all current and future bases in a workspace, or a specific list.
  6. Click Create token and copy the value immediately. Airtable only shows the token once.

Add it to Ingest

In the Ingest UI under Connectors → Airtable, paste the token. Ingest stores it in AWS Secrets Manager under the key token.

Mind the limits

Airtable enforces a hard rate limit of 5 requests per second per base, with no paid upgrade available. Across all bases on a single token the cap is 50 req/sec. The Ingest runtime is conservative — it dispatches 2 req/sec by default and uses AIMD backoff when it sees a 429. Note that Airtable's 429 response does not include a Retry-After header, so the runtime backs off purely on its own divisor.

Errors with status 401 (bad/expired token), 403 (scope missing or paid feature), 404 (base or table moved/deleted), or 422 (malformed request) are treated as fatal — the request stops without retry.

Pick endpoints

Most Airtable customers want records (the rows of every table) plus base_schema (the table/field metadata that lets you join records to human-readable column names). The cascade looks like:

  • bases — every base the token can see (root)
  • base_schema — tables, fields, and views inside each base (per-base)
  • records — the actual cell data, one row per record (per-table)
  • webhooks — registered webhook subscriptions (optional, per-base)
  • whoami — token introspection; useful for debugging scope issues

base_collaborators, workspace_collaborators, and base_shares are Business+ paid-tier endpoints and require an upgraded workspace. comments is omitted from the v1 catalog because it fans out one request per record across every table — the design will be revisited once the runtime supports per-record incremental cursors.

Supported streams

5 endpoints are available out of the box. Each endpoint syncs into its own Iceberg table in Snowflake.

EndpointDescriptionReference
base_schema
base_schema
bases
bases
records
records
webhooks
webhooks
whoami
whoami

Authentication

Auth type
Bearer Token
Sent as header
Authorization
Provider docs
airtable.com

Performance & limits

Rate limit
5 req/sec per base (no upgrade available); 50 req/sec per token. Monthly call caps vary by plan — Free 1,000/mo, Team 100,000/mo, Business and Enterprise unlimited.
Automatic backoff
Ingest throttles requests to the published rate limit and retries with exponential backoff on transient errors. You don't need to handle 429s, retries, or pagination yourself.

Resources