# Airtable Read and write records in your Airtable bases. URL: https://docs.qaldy.com/connectors/airtable/ - **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 1. In Airtable, open the **Builder hub → Personal access tokens** ([airtable.com/create/tokens](https://airtable.com/create/tokens)) and create a token. 2. Give it **only the scopes the apps need**, for example `data.records:read` and `data.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. 3. Copy the token. It starts with `pat`, and Airtable shows it once. 4. 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 `, added by the gate | ## Use it from an app ```json { "id": "http", "actions": ["request"], "scope": "conn_k3v9…" } ``` ```ts const api = ctx.connectors.http('conn_k3v9…') const list = await api.get('//', { query: { maxRecords: 10 } }) await api.post('//
', { 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 |