Logo

Airtable

Authentication Type: API Key Description: Manage records and bases in Airtable with full CRUD operations, search with formula filtering, and base schema inspection.


Authentication

To authenticate with Airtable, you'll need a Personal Access Token:

  1. Go to Airtable Token Creation
  2. Click Create new token and give it a descriptive name
  3. Add the scopes you need:
    • data.records:read -- required for reading records
    • data.records:write -- required for creating, updating, and deleting records
    • schema.bases:read -- required for listing bases and reading schemas
  4. Select which bases the token can access (all bases, or specific ones)
  5. Click Create token and copy the value

You'll need to provide:

  • apiKey string: Your Airtable Personal Access Token

Security tip: Create separate tokens for read-only and read-write access. Use the minimum scopes required for your use case, and restrict access to only the bases you need.


Records

Create Record

Create a new record (row) in an Airtable table. Field names must match the column names in your table exactly.

Operation Type: Mutation (Write)

Parameters:

  • baseId string (required): The ID of the Airtable base (e.g., appABC123def456)
  • tableId string (required): The ID or name of the table (e.g., tblXYZ789 or Contacts)
  • fields object (required): Key-value pairs of field names to values. Keys are the field names, values are the data to set.
  • typecast boolean (nullable): If true, Airtable will attempt to convert string values to the appropriate cell type (e.g., turning "42" into a number). Default false.

Returns:

  • id string: The ID of the newly created record
  • createdTime string: ISO 8601 timestamp of when the record was created
  • fields object: The field values of the created record

Example Usage:

{
  "baseId": "appABC123def456",
  "tableId": "Contacts",
  "fields": {
    "Name": "Jane Smith",
    "Email": "jane@example.com",
    "Company": "Acme Corp",
    "Status": "Active"
  },
  "typecast": false
}

Get Record

Retrieve a single record from an Airtable table by its record ID.

Operation Type: Query (Read)

Parameters:

  • baseId string (required): The ID of the Airtable base
  • tableId string (required): The ID or name of the table
  • recordId string (required): The ID of the record to retrieve (e.g., recABC123)

Returns:

  • id string: The record ID
  • createdTime string: ISO 8601 timestamp of when the record was created
  • fields object: The field values of the record

Example Usage:

{
  "baseId": "appABC123def456",
  "tableId": "Contacts",
  "recordId": "recXYZ789abc012"
}

Search Records

Search for records in an Airtable table with optional filtering, sorting, field selection, and pagination.

Operation Type: Query (Read)

Parameters:

  • baseId string (required): The ID of the Airtable base
  • tableId string (required): The ID or name of the table
  • filterByFormula string (nullable): An Airtable formula to filter records. Only records where the formula evaluates to true are returned.
  • fields array of strings (nullable): List of field names to include in the response. If omitted, all fields are returned.
  • sort array of objects (nullable): List of sort criteria. Each object has:
    • field string: The field name to sort by
    • direction string: Sort direction (asc or desc)
  • maxRecords number (nullable): Maximum number of records to return (default 100)
  • view string (nullable): The name or ID of a view to use. When specified, only records visible in that view are returned, and the view's filters and sorts are applied.

Returns:

  • records array of objects: List of matching records
    • id string: The record ID
    • createdTime string: ISO 8601 timestamp of when the record was created
    • fields object: The field values of the record

Example Usage:

{
  "baseId": "appABC123def456",
  "tableId": "Contacts",
  "filterByFormula": "AND({Status} = 'Active', {Company} = 'Acme Corp')",
  "fields": ["Name", "Email", "Company"],
  "sort": [{ "field": "Name", "direction": "asc" }],
  "maxRecords": 50
}

Update Record

Update an existing record in an Airtable table. Only the fields you specify will be updated; other fields remain unchanged.

Operation Type: Mutation (Write)

Parameters:

  • baseId string (required): The ID of the Airtable base
  • tableId string (required): The ID or name of the table
  • recordId string (required): The ID of the record to update
  • fields object (required): Key-value pairs of field names to new values. Only specified fields are updated.
  • typecast boolean (nullable): If true, Airtable will attempt to convert string values to the appropriate cell type. Default false.

Returns:

  • id string: The record ID
  • createdTime string: ISO 8601 timestamp of when the record was created
  • fields object: The full field values of the updated record

Example Usage:

{
  "baseId": "appABC123def456",
  "tableId": "Contacts",
  "recordId": "recXYZ789abc012",
  "fields": {
    "Status": "Churned",
    "Notes": "Account closed on 2025-03-15"
  }
}

Delete Record

Delete a record from an Airtable table. This action is permanent and cannot be undone.

Operation Type: Mutation (Write)

Parameters:

  • baseId string (required): The ID of the Airtable base
  • tableId string (required): The ID or name of the table
  • recordId string (required): The ID of the record to delete

Returns:

  • id string: The ID of the deleted record
  • deleted boolean: true if the record was successfully deleted

Example Usage:

{
  "baseId": "appABC123def456",
  "tableId": "Contacts",
  "recordId": "recXYZ789abc012"
}

Bases

List Bases

List all Airtable bases that your token has access to. Use this to discover base IDs for use with other operations.

Operation Type: Query (Read)

Parameters:

None.

Returns:

  • bases array of objects: List of accessible bases
    • id string: The base ID (e.g., appABC123def456)
    • name string: The human-readable name of the base
    • permissionLevel string: Your permission level for this base (e.g., create, edit, comment, read)

Example Usage:

{}

Get Base Schema

Retrieve the schema of an Airtable base, including all tables and their field definitions. Use this to discover table IDs, field names, and field types before querying or writing records.

Operation Type: Query (Read)

Parameters:

  • baseId string (required): The ID of the Airtable base

Returns:

  • tables array of objects: List of tables in the base
    • id string: The table ID (e.g., tblXYZ789)
    • name string: The table name
    • description string (nullable): Description of the table
    • fields array of objects: List of fields in the table
      • id string: The field ID
      • name string: The field name
      • type string: The field type (e.g., singleLineText, number, singleSelect, multipleAttachments)
      • description string (nullable): Description of the field

Example Usage:

{
  "baseId": "appABC123def456"
}

Common Use Cases

CRM & Contact Management:

  • Search for contacts by status, company, or custom fields using formula filters
  • Create new contact records when leads come in from other tools
  • Update deal stages and contact statuses as they progress through your pipeline
  • Sync contact data between Airtable and other systems

Project & Task Tracking:

  • Query open tasks filtered by assignee, due date, or priority
  • Update task statuses and add notes as work progresses
  • Create new tasks or issues from external triggers (e.g., support tickets, form submissions)
  • List all tables in a project base to understand its structure before building automations

Inventory & Asset Management:

  • Search for products by category, stock level, or supplier
  • Update inventory quantities after orders are fulfilled
  • Create records for new assets and track their lifecycle
  • Use schema inspection to discover field types and build dynamic integrations

Data Operations & Integration:

  • List all accessible bases to discover available data sources
  • Inspect base schemas to understand table structures before building workflows
  • Bulk-read records with formula filtering for reporting and analytics
  • Use typecast to flexibly import data from external systems without strict type matching