3.8k★by mrgoodb
airtable – OpenClaw Skill
airtable is an OpenClaw Skills integration for writing workflows. Create, read, update, and delete records in Airtable bases. Use when you need to manage data in Airtable spreadsheets/databases, sync data, or automate workflows with Airtable as a data store.
Skill Snapshot
| name | airtable |
| description | Create, read, update, and delete records in Airtable bases. Use when you need to manage data in Airtable spreadsheets/databases, sync data, or automate workflows with Airtable as a data store. OpenClaw Skills integration. |
| owner | mrgoodb |
| repository | mrgoodb/airtable |
| language | Markdown |
| license | MIT |
| topics | |
| security | L1 |
| install | openclaw add @mrgoodb/airtable |
| last updated | Feb 7, 2026 |
Maintainer

name: airtable description: Create, read, update, and delete records in Airtable bases. Use when you need to manage data in Airtable spreadsheets/databases, sync data, or automate workflows with Airtable as a data store.
Airtable API
Manage Airtable bases, tables, and records via REST API.
Setup
- Get API key: https://airtable.com/create/tokens
- Create token with scopes:
data.records:read,data.records:write - Store token:
mkdir -p ~/.config/airtable
echo "patXXXXXXXXXXXXXX" > ~/.config/airtable/api_key
- Find Base ID: Open base → Help → API documentation (starts with
app)
List Records
AIRTABLE_KEY=$(cat ~/.config/airtable/api_key)
BASE_ID="appXXXXXXXXXXXXXX"
TABLE_NAME="Table%20Name" # URL-encoded
curl -s "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" | jq '.records'
Get Single Record
RECORD_ID="recXXXXXXXXXXXXXX"
curl -s "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}/${RECORD_ID}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" | jq
Create Record
curl -s -X POST "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" \
-H "Content-Type: application/json" \
-d '{
"records": [{
"fields": {
"Name": "New Item",
"Status": "Todo",
"Notes": "Created via API"
}
}]
}' | jq
Create Multiple Records
curl -s -X POST "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" \
-H "Content-Type: application/json" \
-d '{
"records": [
{"fields": {"Name": "Item 1", "Status": "Todo"}},
{"fields": {"Name": "Item 2", "Status": "Done"}}
]
}'
Max 10 records per request.
Update Record
curl -s -X PATCH "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}/${RECORD_ID}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" \
-H "Content-Type: application/json" \
-d '{
"fields": {
"Status": "Done",
"Notes": "Updated via API"
}
}' | jq
PATCH = partial update, PUT = replace all fields
Delete Record
curl -s -X DELETE "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}/${RECORD_ID}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" | jq
Filter Records
# filterByFormula parameter (URL-encoded)
FORMULA="Status%3D%27Todo%27" # Status='Todo'
curl -s "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}?filterByFormula=${FORMULA}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" | jq '.records'
Common formulas:
{Status}='Done'- Exact matchFIND('keyword', {Notes})- Contains text{Date} >= TODAY()- Date comparisonAND({Status}='Active', {Priority}='High')- Multiple conditions
Sort Records
curl -s "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}?sort%5B0%5D%5Bfield%5D=Created&sort%5B0%5D%5Bdirection%5D=desc" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" | jq '.records'
Pagination
# First page
RESPONSE=$(curl -s "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}?pageSize=100" \
-H "Authorization: Bearer ${AIRTABLE_KEY}")
OFFSET=$(echo $RESPONSE | jq -r '.offset // empty')
# Next page (if offset exists)
if [ -n "$OFFSET" ]; then
curl -s "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}?pageSize=100&offset=${OFFSET}" \
-H "Authorization: Bearer ${AIRTABLE_KEY}"
fi
Select Specific Fields
curl -s "https://api.airtable.com/v0/${BASE_ID}/${TABLE_NAME}?fields%5B%5D=Name&fields%5B%5D=Status" \
-H "Authorization: Bearer ${AIRTABLE_KEY}" | jq '.records'
Field Types
- Text:
"value" - Number:
123 - Checkbox:
true/false - Date:
"2024-01-15" - Single Select:
"Option Name" - Multi Select:
["Option 1", "Option 2"] - Linked Record:
["recXXX", "recYYY"] - Attachment:
[{"url": "https://..."}]
Rate Limits
- 5 requests per second per base
- Use batch operations (10 records max) to reduce calls
No README available.
Permissions & Security
Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.
Requirements
- OpenClaw CLI installed and configured.
- Language: Markdown
- License: MIT
- Topics:
FAQ
How do I install airtable?
Run openclaw add @mrgoodb/airtable in your terminal. This installs airtable into your OpenClaw Skills catalog.
Does this skill run locally or in the cloud?
OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.
Where can I verify the source code?
The source repository is available at https://github.com/openclaw/skills/tree/main/skills/mrgoodb/airtable. Review commits and README documentation before installing.
