Airtable — Unified Skill
Everything needed to work with Airtable: 6 methods, each with different strengths.
As of April 2026. API keys deprecated Feb 2024 — use PATs only.
1. Method Decision Tree
I need to read/write records
→ MCP available? → Use MCP (preferred — handles auth, pagination, batching)
→ No MCP? → Public REST API with PAT
I need schema info (tables, fields, types)
→ MCP describe_table (detailLevel: full)
I need field configurations (formula text, rollup aggregation, lookup source)
→ MCP describe_table may include it (base-size dependent)
→ If not: Omni AI — ask it to list calculated field configs
I need to create/modify formulas, rollups, lookups, counts, or buttons
→ Public Meta API refuses these — pick ONE of two paths:
• Omni AI (natural language, in-browser) — default for human-driven,
one-off work. Safe, supported, no maintenance.
• Internal Web API (scripted) — for bulk / reproducible /
CI-driven work. See reference.md → "Internal API — Calculated
Field Creation". Undocumented endpoint, may break without notice.
I need to build or modify interfaces
→ Omni AI (creates full pages + AI-generated custom elements)
→ API has zero interface-building capability
I need to create automations
→ Omni AI or Airtable UI — no API for automation creation
I need interface page layout, visibility conditions, element structure
→ Internal Web API: readDraft
I need to query data as the interface sees it (with interface filters)
→ Internal Web API: readQueries
I need to export automation definitions
→ Internal Web API: application/read + workflow/read
I need to enumerate automations in a base (lightweight inventory)
→ Internal Web API: /v0.3/application/{baseId}/listWorkflows
→ Faster than parsing application/read?includeAllData=true
I need run history / find runaway automations / per-workflow run rate
→ Internal Web API: /v0.3/workflow/{wflId}/listExecutions
→ Page size 20, paginate via offset
→ For rate: fetch latest 20, divide 19 / (newest_ts - oldest_ts)
I need to disable / enable an automation (off → on toggle)
→ Internal Web API: POST /v0.3/workflow/{wflId}/unregister to disable
→ Internal Web API: POST /v0.3/workflowDeployment/{NEW_wfd_id}/create to enable
→ Requires secretSocketId + x-airtable-page-load-id from active browser session
(generated values fail — must be from live websocket)
→ See reference.md → "Disable / enable an automation"
I need to run logic inside Airtable
→ Scripting Extension (standalone) or Automation Script (triggered)
I need real-time change notifications
→ Public REST API: Webhooks
I need to build a formula
→ See Section 8: Formulas
I need to manage Personal Access Tokens (list / create / regenerate / rename / revoke)
→ Internal Web API: /v0.3/user/{userId}/...
→ See reference.md → "Internal API — Personal Access Token Management"
→ Public REST API has no PAT-management endpoints
I need to enumerate workspaces + which bases live in each
→ Internal Web API: GET /v0.3/user/{userId}/listApplicationsAndPageBundlesForDisplay
→ Response.data.workspaceRecordById[wsid].visibleApplicationOrder = ordered list of appIds in that workspace
→ Response.data.applicationRecordById[appId].name = base name
→ Public Meta API list_bases returns bases but NO workspace mapping
→ See reference.md → "Internal API — Workspace + Application Management"
I need to move a base between workspaces (e.g. relieve a workspace's automation-run quota)
→ Internal Web API: POST /v0.3/workspace/{srcWorkspaceId}/moveApplication
→ Headless replay fails — endpoint needs live secretSocketId + x-airtable-page-load-id from the SPA's active session
→ Use AppleScript → Chrome (Profile 4) → execute fetch() inside an open airtable.com tab. The browser supplies cookies + socket binding automatically.
→ Full pattern in reference.md → "Internal API — Workspace + Application Management" → "Move from headless"
→ Public REST API has no move endpoint
2. MCP (Preferred for Records)
MCP wraps the REST API with structured tools. Always prefer when available.
Tools
| Tool | Purpose | Safe? |
|---|---|---|
list_bases | List all accessible bases | Read |
list_tables | Tables in a base (3 detail levels) | Read |
describe_table | Full field schema | Read |
list_records | Read with filters | Read |
get_record | Single record | Read |
search_records | Full-text search | Read |
create_record | Create record | Write |
update_records | Update records | Write |
delete_records | Delete records | Destructive |
create_table / create_field / update_field / update_table | Schema changes | Write |
list_comments / create_comment | Record comments | Read / Write |
upload_attachment | Attach file | Write |
Detail Level Optimization
| Level | Returns | When |
|---|---|---|
tableIdentifiersOnly | Table IDs + names | Listing tables |
identifiersOnly | + field + view IDs/names | Field references |
full | + field types, descriptions, configs | Schema docs, type verification |
Tip: For large bases, use tableIdentifiersOnly first, then describe_table full on specific tables.
3. Omni AI
Airtable's built-in AI assistant (bottom-right of base UI). Can do things no API can.
Capabilities (from official Airtable docs)
| Capability | Omni | REST API |
|---|---|---|
| Create/modify formula fields | Yes | Yes via Internal Web API (Meta API refuses) |
| Create/modify rollup / lookup / count fields | Yes | Yes via Internal Web API (Meta API refuses) |
| Build interfaces (full pages + AI-generated custom elements) | Yes | No |
| Create automations | Yes | No |
| Create complete apps (tables + interfaces + automations) | Yes | No |
| Web research (Field Agents — auto-run on data change) | Yes | No |
| Document analysis (Field Agents) | Yes | No |
| Data analysis / insights | Yes | No |
| Read/write records | Yes | Yes |
AI-Generated Interface Elements
Beyond standard elements — Omni can generate custom bespoke elements: 3D viewers, heatmaps, relationship diagrams, geographic visualizations, infinite canvas tools.
Field Agents
AI-powered fields that auto-run when data changes — analyze documents, search the web, generate images, translate content, extract insights.
Access
- Via browser: open base → Omni chat (bottom-right)
- Via Chrome MCP / Claude Desktop: navigate to base → Omni chat → submit prompt
- Manual fallback: user pastes prompt, copies response back
Cost
App building: free. Data analysis questions: 10 credits per response. Model choice: OpenAI, Anthropic, Meta, others.
When to use Omni over API
- Need to read field configurations that MCP doesn't return (formula text, rollup aggregation functions, lookup source details)
- Need to create or modify calculated fields
- Need to build or modify interfaces
- Need to set up automations
4. Public REST API
Base URL: https://api.airtable.com/v0/{baseId}/{tableIdOrName}
Auth: Authorization: Bearer <PAT>
Only non-obvious specifics here:
Key Parameters (List Records)
fields[], filterByFormula, maxRecords, pageSize (max 100), sort[0][field], sort[0][direction], view, offset, returnFieldsByFieldId, recordMetadata[]=commentCount.
Pagination: Response includes offset if more records. No offset = last page.
Batch Limits
- Create/Update/Delete: max 10 records per request
typecast: true— auto-creates select options, converts types. Without it, invalid values return 422.- PATCH updates specified fields only. PUT clears everything not specified — almost always use PATCH.
Upsert
{
"performUpsert": {"fieldsToMergeOn": ["Email"]},
"records": [{"fields": {"Email": "user@example.com", "Name": "U