Airtable
Read and write records in your Airtable bases.
- Status: Available
- Shelf: Data and docs
- How you connect: API key
- Regions: global (not available to Kazakhstan-only workspaces)
- The service’s own API reference: https://airtable.com/developers/web/api/introduction
Apps read and write records in your Airtable bases with a personal access token. Airtable is
reached through the HTTP API connector with a preset: the gate calls only api.airtable.com/v0,
with GET, POST and PATCH. The token is sealed to the gate and apps never see it.
Status: Available through the HTTP API preset. The preset follows Airtable's Web API reference (checked 2026-10-16). It has not been run against a live base.
Connect it#
- In Airtable, open the Builder hub → Personal access tokens (airtable.com/create/tokens) and create a token.
- Give it only the scopes the apps need, for example
data.records:readanddata.records:write, and add only the bases they use. The token's scopes are the real fence: the gate's method list is the second one. - Copy the token. It starts with
pat, and Airtable shows it once. - Qaldy → Connectors → Airtable → Connect Airtable → paste the token → Seal and connect.
Test connection calls GET /v0/meta/whoami, which answers for any valid token.
What the gate allows#
| Host | api.airtable.com, base path /v0 (pinned, every resolved address public) |
| Methods | GET, POST, PATCH (no PUT, no DELETE: an app can add and change records, not wipe them) |
| Paths | everything under /v0 |
| Key | Authorization: Bearer <token>, added by the gate |
Use it from an app#
{ "id": "http", "actions": ["request"], "scope": "conn_k3v9…" }const api = ctx.connectors.http('conn_k3v9…')
const list = await api.get('/<base id>/<table name>', { query: { maxRecords: 10 } })
await api.post('/<base id>/<table name>', {
json: { records: [{ fields: { Name: 'Aigerim', Status: 'New' } }] },
})When it breaks#
| You see | Why | Do |
|---|---|---|
401 AUTHENTICATION_REQUIRED | The token was revoked or mistyped | Replace the token |
403 INVALID_PERMISSIONS_OR_MODEL_NOT_FOUND | The token lacks the scope or the base | Edit the token's scopes and bases in Airtable |
422 | A field name or type doesn't match the table | Check the table's fields |