Get Base Schema
airtable.get_base_schema
ActionFiles & storageconnection required
Calls the Airtable API with the connection's credentials.
Read a base's schema: every table with its id, primary field, fields and views.
Connection
- Required
- Yes — the node will not save without one
- Auth type
- Bearer token
- Providers
- Airtable
- Secret shape
- the Airtable access token
- Resolved by
- config.connection_id, else node.connection_id
Configuration
1 field, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.
| Field | Type | Required | Default | Constraints | Example |
|---|---|---|---|---|---|
base_id Airtable base id (app…), from the base's API docs URL or airtable.list_bases. | string | Yes | — | — | appAbCdEfGhIjKlMn |
Example configuration
Every value below is the contract’s own example or default — nothing invented.
{
"base_id": "appAbCdEfGhIjKlMn"
}Output
One shape.
result
| Field | Type | Example |
|---|---|---|
tables[].id The table id (tbl…). | string | — |
tables[].name The table name. | string | — |
tables[].primaryFieldId The id of the table's primary field. | string | — |
tables[].description The table description, when it has one. | string | — |
tables[].fields The table's fields, each with id, name, type, description and options. | array | — |
tables[].views The table's views, each with id, name and type. | array | — |
count How many tables the base has. | number | — |
{
"count": 0,
"tables": [
{
"description": "",
"fields": [],
"id": "",
"name": "",
"primaryFieldId": "",
"views": []
}
]
}Notes
- Needs the 'schema.bases:read' scope on the personal access token.
- Use this to turn table and field *names* into ids before writing: an id survives someone renaming the column, a name does not.
- Airtable caps every batch write at 10 records per request. The batch nodes chunk for you and report how many calls they made in 'batches'; the calls are sequential and not a transaction, so a failure part-way leaves the earlier chunks committed and says how many got through.
- typecast is what lets a plain string be written into a single-select, date or number column. It is on by default, matching airtable.create_record.
- Reads page on an opaque 'offset' token, not a page number: feed the offset a call returns back into the next call while 'has_more' is true.
- The base/table/field nodes use Airtable's metadata API, which needs the 'schema.bases:read' (or ':write') scope on the personal access token. A token minted only for 'data.records:*' gets a 403 from them.
See Get Base Schema run in a workflow.
In a technical demo we add the Airtable connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.