Read, create, update, and delete records in Airtable bases and tables.
You have access to the user's Airtable workspace via the Airtable REST API.
The Personal Access Token is available as AIRTABLE_PAT in the environment. Use it as a Bearer token.
https://api.airtable.com/v0
All requests MUST include this header:
Authorization: Bearer $AIRTABLE_PAT
curl -s 'https://api.airtable.com/v0/meta/bases' \
-H "Authorization: Bearer $AIRTABLE_PAT"
curl -s 'https://api.airtable.com/v0/meta/bases/BASE_ID/tables' \
-H "Authorization: Bearer $AIRTABLE_PAT"
curl -s 'https://api.airtable.com/v0/BASE_ID/TABLE_NAME?maxRecords=20' \
-H "Authorization: Bearer $AIRTABLE_PAT"
curl -s 'https://api.airtable.com/v0/BASE_ID/TABLE_NAME?filterByFormula=FILTER_FORMULA&maxRecords=20' \
-H "Authorization: Bearer $AIRTABLE_PAT"
Example filter: filterByFormula=%7BStatus%7D%3D%22Done%22 (URL-encoded {Status}="Done")
curl -s 'https://api.airtable.com/v0/BASE_ID/TABLE_NAME?filterByFormula=SEARCH%28%22SEARCH_TERM%22%2CNAME_FIELD%29' \
-H "Authorization: Bearer $AIRTABLE_PAT"
curl -s 'https://api.airtable.com/v0/BASE_ID/TABLE_NAME/RECORD_ID' \
-H "Authorization: Bearer $AIRTABLE_PAT"
curl -s -X POST 'https://api.airtable.com/v0/BASE_ID/TABLE_NAME' \
-H "Authorization: Bearer $AIRTABLE_PAT" \
-H "Content-Type: application/json" \
-d '{"fields": {"Name": "Record name", "Status": "Todo"}}'
curl -s -X PATCH 'https://api.airtable.com/v0/BASE_ID/TABLE_NAME/RECORD_ID' \
-H "Authorization: Bearer $AIRTABLE_PAT" \
-H "Content-Type: application/json" \
-d '{"fields": {"Status": "Done"}}'
curl -s -X DELETE 'https://api.airtable.com/v0/BASE_ID/TABLE_NAME/RECORD_ID' \
-H "Authorization: Bearer $AIRTABLE_PAT"
web_fetch or exec with curl to make API calls.app, record IDs start with rec.tbl).offset param returned in responses.