Skip to main content

Airtable full reference

This is the full reference documentation for the Airtable agent connector.

Supported entities and actions

The Airtable connector supports the following entities and actions.

EntityActions
BasesList, Search
TablesList, Search
RecordsList, Get

Bases

Bases List

Returns a list of all bases the user has access to

Python SDK

await airtable.bases.list()

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "bases",
"action": "list"
}'

Parameters

Parameter NameTypeRequiredDescription
offsetstringNoPagination offset from previous response
Response Schema

Records

Field NameTypeDescription
idstring
namestring | null
permissionLevelstring | null

Search and filter bases records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

Python SDK

await airtable.bases.search(
query={"filter": {"eq": {"id": "<str>"}}}
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "bases",
"action": "search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'

Parameters

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's next_cursor
fieldsarrayNoField paths to include in results

Searchable Fields

Field NameTypeDescription
idstringUnique identifier for the base
namestringName of the base
permissionLevelstringPermission level for the base
Response Schema
Field NameTypeDescription
hitsarrayList of matching records
hits[].idstringRecord identifier
hits[].scorenumberRelevance score
hits[].dataobjectRecord data containing the searchable fields listed above
hits[].data.idstringUnique identifier for the base
hits[].data.namestringName of the base
hits[].data.permissionLevelstringPermission level for the base
next_cursorstring | nullCursor for next page of results
took_msnumberQuery execution time in milliseconds

Tables

Tables List

Returns a list of all tables in the specified base with their schema information

Python SDK

await airtable.tables.list(
base_id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tables",
"action": "list",
"params": {
"base_id": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
base_idstringYesThe ID of the base
Response Schema

Records

Field NameTypeDescription
idstring
namestring | null
primaryFieldIdstring | null
fieldsarray | null
fields[].idstring | null
fields[].namestring | null
fields[].typestring | null
fields[].optionsobject | null
viewsarray | null
views[].idstring | null
views[].namestring | null
views[].typestring | null

Search and filter tables records powered by Airbyte's data sync. This often provides additional fields and operators beyond what the API natively supports, making it easier to narrow down results before performing further operations. Only available in hosted mode.

Python SDK

await airtable.tables.search(
query={"filter": {"eq": {"id": "<str>"}}}
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "tables",
"action": "search",
"params": {
"query": {"filter": {"eq": {"id": "<str>"}}}
}
}'

Parameters

Parameter NameTypeRequiredDescription
queryobjectYesFilter and sort conditions. Supports operators: eq, neq, gt, gte, lt, lte, in, like, fuzzy, keyword, not, and, or
query.filterobjectNoFilter conditions
query.sortarrayNoSort conditions
limitintegerNoMaximum results to return (default 1000)
cursorstringNoPagination cursor from previous response's next_cursor
fieldsarrayNoField paths to include in results

Searchable Fields

Field NameTypeDescription
idstringUnique identifier for the table
namestringName of the table
primaryFieldIdstringID of the primary field
fieldsarrayList of fields in the table
viewsarrayList of views in the table
Response Schema
Field NameTypeDescription
hitsarrayList of matching records
hits[].idstringRecord identifier
hits[].scorenumberRelevance score
hits[].dataobjectRecord data containing the searchable fields listed above
hits[].data.idstringUnique identifier for the table
hits[].data.namestringName of the table
hits[].data.primaryFieldIdstringID of the primary field
hits[].data.fieldsarrayList of fields in the table
hits[].data.viewsarrayList of views in the table
next_cursorstring | nullCursor for next page of results
took_msnumberQuery execution time in milliseconds

Records

Records List

Returns a paginated list of records from the specified table

Python SDK

await airtable.records.list(
base_id="<str>",
table_id_or_name="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "records",
"action": "list",
"params": {
"base_id": "<str>",
"table_id_or_name": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
base_idstringYesThe ID of the base
table_id_or_namestringYesThe ID or name of the table
offsetstringNoPagination offset from previous response
pageSizeintegerNoNumber of records per page (max 100)
viewstringNoName or ID of a view to filter records
filterByFormulastringNoAirtable formula to filter records
sortstringNoSort configuration as JSON array
Response Schema

Records

Field NameTypeDescription
idstring
createdTimestring | null
fieldsobject | null

Records Get

Returns a single record by ID from the specified table

Python SDK

await airtable.records.get(
base_id="<str>",
table_id_or_name="<str>",
record_id="<str>"
)

API

curl --location 'https://api.airbyte.ai/api/v1/connectors/sources/{your_source_id}/execute' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {your_auth_token}' \
--data '{
"entity": "records",
"action": "get",
"params": {
"base_id": "<str>",
"table_id_or_name": "<str>",
"record_id": "<str>"
}
}'

Parameters

Parameter NameTypeRequiredDescription
base_idstringYesThe ID of the base
table_id_or_namestringYesThe ID or name of the table
record_idstringYesThe ID of the record
Response Schema

Records

Field NameTypeDescription
idstring
createdTimestring | null
fieldsobject | null