> ## Documentation Index
> Fetch the complete documentation index at: https://agnt.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Airtable

> Give your agents the Airtable Web API — records, comments, base schema, and change webhooks — through agntdata.

## Overview

The Airtable connection lets deployed agents work with Airtable: read and write **records** (including bulk create/update, upsert, and delete); read and post **record comments**; read and manage **base schema** (list bases, read a base's tables and fields, and create bases, tables, and fields); and manage **change webhooks**.

* **Base URL**: `https://api.agntdata.dev/v1/connections/airtable`
* **Airtable auth**: OAuth 2.0 (PKCE) — connect your Airtable account once from the dashboard. agntdata attaches a fresh access token to every call (refreshing it in the background, since Airtable tokens expire and refresh tokens rotate), so you never pass an `Authorization` header yourself.
* **MCP tools**: agents call `connection_airtable_*` tools, e.g. `connection_airtable_list_records`, `connection_airtable_create_records`, `connection_airtable_update_records`, `connection_airtable_get_base_schema`.

<Note>
  **Record paths take `{baseId}`** (starts with `app`) and **`{tableIdOrName}`** (a `tbl` id or the table name). Reads paginate with `pageSize` (max 100) and the `offset` cursor from the previous page, and return `{ records, offset? }`. Writes are batched **up to 10 records per call** as `{ records: [{ fields }, ...] }`; set `typecast: true` to coerce string values, and add `performUpsert: { fieldsToMergeOn: [...] }` to upsert on merge fields. **`PATCH` updates only the fields you pass; `PUT` replaces the record and clears omitted fields.** **Delete tools are irreversible.**
</Note>

## Setup

<Steps>
  <Step title="Connect Airtable">
    In the agntdata dashboard open **Integrations**, pick **Airtable**, and click **Connect**. You'll be redirected to Airtable to authorize and grant access to the bases you want the agent to reach.
  </Step>

  <Step title="Pick Airtable tools">
    In an agent's Tools panel, add the Airtable tools the agent needs — for example `list_records`, `create_records`, `update_records`, and `get_base_schema`. Destructive tools (`delete_records`, `delete_record`, `delete_comment`, `delete_webhook`) ship too; leave them off an agent you don't want deleting things.
  </Step>
</Steps>

## Examples

### List records

```bash theme={null}
curl "https://api.agntdata.dev/v1/connections/airtable/v0/appXXXXXXXX/Tasks?pageSize=100&filterByFormula=%7BStatus%7D%3D%27Todo%27" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY"
```

### Create records

```bash theme={null}
curl -X POST "https://api.agntdata.dev/v1/connections/airtable/v0/appXXXXXXXX/Tasks" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"records":[{"fields":{"Name":"Investigate flaky test","Status":"Todo"}}],"typecast":true}'
```

### Upsert records on a merge field

```bash theme={null}
curl -X PATCH "https://api.agntdata.dev/v1/connections/airtable/v0/appXXXXXXXX/Tasks" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"performUpsert":{"fieldsToMergeOn":["External ID"]},"records":[{"fields":{"External ID":"ext-42","Status":"Done"}}]}'
```

### Read a base schema

```bash theme={null}
curl "https://api.agntdata.dev/v1/connections/airtable/v0/meta/bases/appXXXXXXXX/tables" \
  -H "Authorization: Bearer $AGNTDATA_API_KEY"
```
