Corsair
PluginsAirtable

Airtable API Endpoints

Complete reference for all Airtable API endpoints

The Airtable plugin provides access to Airtable's API for managing bases, records, and webhooks.

New to Corsair? Learn about core concepts like API access, authentication, and error handling.

Full Implementation: For the complete, up-to-date list, see the Airtable plugin source code.

Bases

getMany

bases.getMany

List all accessible bases.

const bases = await corsair.airtable.api.bases.getMany({});

getSchema

bases.getSchema

Get the schema (tables, fields, views) of a base.

const schema = await corsair.airtable.api.bases.getSchema({
    baseId: "appXXXXXXXXXXXXXX", 
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID (starts with app)

Records

get

records.get

Get a single record by ID.

const record = await corsair.airtable.api.records.get({
    baseId: "appXXXXXXXXXXXXXX", 
    tableIdOrName: "Tasks",
    recordId: "recXXXXXXXXXXXXXX",
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID
tableIdOrNamestringYesTable ID or name
recordIdstringYesRecord ID (starts with rec)

records.search

Search and list records with optional filters.

const records = await corsair.airtable.api.records.search({
    baseId: "appXXXXXXXXXXXXXX", 
    tableIdOrName: "Tasks",
    filterByFormula: "{Status} = 'In Progress'",
    maxRecords: 50,
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID
tableIdOrNamestringYesTable ID or name
filterByFormulastringNoAirtable formula to filter records
maxRecordsnumberNoMax records to return
sortobject[]NoSort configuration
viewstringNoView name or ID

create

records.create

Create a record in a table.

const record = await corsair.airtable.api.records.create({
    baseId: "appXXXXXXXXXXXXXX", 
    tableIdOrName: "Tasks",
    fields: {
        Name: "Write documentation",
        Status: "In Progress",
        Priority: "High",
    },
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID
tableIdOrNamestringYesTable ID or name
fieldsobjectYesRecord field values

update

records.update

Update fields on an existing record.

await corsair.airtable.api.records.update({
    baseId: "appXXXXXXXXXXXXXX", 
    tableIdOrName: "Tasks",
    recordId: "recXXXXXXXXXXXXXX",
    fields: {
        Status: "Done",
    },
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID
tableIdOrNamestringYesTable ID or name
recordIdstringYesRecord ID
fieldsobjectYesFields to update

createOrUpdate

records.createOrUpdate

Create or update a record using upsert.

const record = await corsair.airtable.api.records.createOrUpdate({
    baseId: "appXXXXXXXXXXXXXX", 
    tableIdOrName: "Tasks",
    fields: {
        Name: "Write documentation",
        Status: "In Progress",
    },
    fieldsToMergeOn: ["Name"],
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID
tableIdOrNamestringYesTable ID or name
fieldsobjectYesRecord field values
fieldsToMergeOnstring[]YesFields used to match existing records

delete

records.delete

Delete a record from a table.

await corsair.airtable.api.records.delete({
    baseId: "appXXXXXXXXXXXXXX", 
    tableIdOrName: "Tasks",
    recordId: "recXXXXXXXXXXXXXX",
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID
tableIdOrNamestringYesTable ID or name
recordIdstringYesRecord ID to delete

Webhooks

getPayloads

webhooks.getPayloads

Get pending webhook payloads for a base.

const payloads = await corsair.airtable.api.webhooks.getPayloads({
    baseId: "appXXXXXXXXXXXXXX", 
    webhookId: "webhook-id",
    cursor: 1,
});

Parameters:

NameTypeRequiredDescription
baseIdstringYesAirtable base ID
webhookIdstringYesWebhook ID
cursornumberNoCursor for pagination