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.

FieldTypeRequiredDefaultConstraintsExample
base_id
Airtable base id (app…), from the base's API docs URL or airtable.list_bases.
stringYes——appAbCdEfGhIjKlMn

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "base_id": "appAbCdEfGhIjKlMn"
}

Output

One shape.

result

FieldTypeExample
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.