← ClaudeAtlas

airtablelisted

Airtable REST API via curl. Records CRUD, filters, upserts.
LiHongwei-cn/lihongwei-cn · ★ 5 · AI & Automation · score 80
Install: claude install-skill LiHongwei-cn/lihongwei-cn
# Airtable — Bases, Tables & Records Work with Airtable's REST API directly via `curl` using the `terminal` tool. No MCP server, no OAuth flow, no Python SDK — just `curl` and a personal access token. ## Prerequisites 1. Create a **Personal Access Token (PAT)** at https://airtable.com/create/tokens (tokens start with `pat...`). 2. Grant these scopes (minimum): - `data.records:read` — read rows - `data.records:write` — create / update / delete rows - `schema.bases:read` — list bases and tables 3. **Important:** in the same token UI, add each base you want to access to the token's **Access** list. PATs are scoped per-base — a valid token on the wrong base returns `403`. 4. Store the token in `~/.hermes/.env` (or via `hermes setup`): ``` AIRTABLE_API_KEY=pat_your_token_here ``` > Note: legacy `key...` API keys were deprecated Feb 2024. Only PATs and OAuth tokens work now. ## API Basics - **Endpoint:** `https://api.airtable.com/v0` - **Auth header:** `Authorization: Bearer $AIRTABLE_API_KEY` - **All requests** use JSON (`Content-Type: application/json` for any POST/PATCH/PUT body). - **Object IDs:** bases `app...`, tables `tbl...`, records `rec...`, fields `fld...`. IDs never change; names can. Prefer IDs in automations. - **Rate limit:** 5 requests/sec/base. `429` → back off. Burst on a single base will be throttled. Base curl pattern: ```bash curl -s "https://api.airtable.com/v0/$BASE_ID/$TABLE?maxRecords=5" \ -H "Authorization: Bearer $AIRTABLE_API_K