airtable

Manage Airtable bases, tables, and records via REST API curl commands.

Updated Jun 5, 2026
One-click install
npx skills add https://github.com/xu1713/openhorse --skill airtable-xu1713
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: airtable
Source: https://github.com/xu1713/openhorse/tree/main/openhorse/openhorse/skills/productivity/airtable
Command: npx skills add https://github.com/xu1713/openhorse --skill airtable-xu1713

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Working with Airtable data programmatically often requires SDKs, OAuth flows, or MCP servers. This Skill lets you perform full CRUD operations on Airtable records directly through curl with a personal access token, covering filtering, sorting, upserts, batch operations, and pagination without extra tooling. ## Core Features & Use Cases - Records CRUD and Upserts: Create, read, update (PATCH), delete, and upsert records by merge fields, with batch support for up to 10 records per request. - Filtering and Querying: Use filterByFormula, sorting, field selection, and named views with proper URL encoding handled via Python stdlib. - Schema Inspection: List accessible bases and table schemas before mutating data to confirm field names, IDs, and select options. - Use Case: Sync a list of customer emails into an Airtable CRM table idempotently using performUpsert on the Email field, then filter records by status to generate a follow-up list. ## Quick Start Ask the assistant to list the tables in your Airtable base and show the first ten records from a specific table using your AIRTABLE_API_KEY.

Frequently Asked Questions about airtable

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create or update Airtable records via the API?

Send a POST request to /v0/{baseId}/{table} with a JSON body containing a fields object to create records, or use PATCH on a record ID to merge updates. For idempotent syncs, use performUpsert with fieldsToMergeOn to match existing records by a key field like Email.

How do I filter Airtable records with filterByFormula?

Pass a URL-encoded Airtable formula in the filterByFormula query parameter, such as {Status}='Todo' or AND({Status}='Todo', {Priority}='High'). Always encode the formula with a tool like Python's urllib.parse.quote rather than hand-escaping characters.

What Airtable API token do I need and what scopes?

Create a Personal Access Token at airtable.com/create/tokens with data.records:read, data.records:write, and schema.bases:read scopes. You must also add each base to the token's Access list, since PATs are scoped per base and legacy key... API keys were deprecated in February 2024.

Why does the Airtable API return 403 on one base but not another?

A 403 on a specific base means the token's Access list does not include that base, not an authentication failure. Open the token settings at airtable.com/create/tokens and add the missing base to the token's access scope.

What are the Airtable API rate limits and pagination limits?

The API allows 5 requests per second per base and returns at most 100 records per page. When a response includes an offset field, pass it back on the next request and loop until the field is absent; back off when you receive a 429 status.

Should I use PATCH or PUT to update Airtable records?

Use PATCH for updates because it merges only the supplied fields and preserves everything else. PUT replaces the entire record and clears any field you did not include, which can silently delete data.