Skip to main content
Every airtable.api.* operation is listed below with parameter shapes and return types from the plugin Zod schemas.
New to Corsair? See API access, authentication, and error handling.

Bases

getMany

bases.getMany List all accessible bases Risk: read
await corsair.airtable.api.bases.getMany({});
Input
NameTypeRequiredDescription
offsetstringNo
Output
NameTypeRequiredDescription
basesobject[]Yes
offsetstringNo
{
  id: string,
  name: string,
  permissionLevel: string
}[]

getSchema

bases.getSchema Get the schema (tables, fields, views) of a base Risk: read
await corsair.airtable.api.bases.getSchema({});
Input
NameTypeRequiredDescription
baseIdstringYes
includevisibleFieldIds | fieldIdsInSynced[]No
Output
NameTypeRequiredDescription
tablesobject[]Yes
{
  id: string,
  name: string,
  primaryFieldId: string,
  description?: string,
  fields: {
    id: string,
    type: string,
    name: string,
    description?: string,
    options?: {
    }
  }[],
  views: {
    id: string,
    type: string,
    name: string,
    personalForCreator?: boolean
  }[]
}[]

Records

create

records.create Create a record in a table Risk: write
await corsair.airtable.api.records.create({});
Input
NameTypeRequiredDescription
baseIdstringYes
tableIdOrNamestringYes
fieldsobjectYes
typecastbooleanNo
{
}
Output
NameTypeRequiredDescription
recordsobject[]Yes
{
  id: string,
  createdTime: string,
  fields: {
  }
}[]

createOrUpdate

records.createOrUpdate Create or update a record using upsert Risk: write
await corsair.airtable.api.records.createOrUpdate({});
Input
NameTypeRequiredDescription
baseIdstringYes
tableIdOrNamestringYes
fieldsobjectYes
fieldsToMergeOnstring[]Yes
typecastbooleanNo
{
}
Output
NameTypeRequiredDescription
recordsobject[]Yes
{
  id: string,
  createdTime: string,
  fields: {
  }
}[]

delete

records.delete Delete a record from a table [DESTRUCTIVE] Risk: destructive
await corsair.airtable.api.records.delete({});
Input
NameTypeRequiredDescription
baseIdstringYes
tableIdOrNamestringYes
recordIdstringYes
Output
NameTypeRequiredDescription
idstringYes
deletedbooleanYes

get

records.get Get a single record by ID Risk: read
await corsair.airtable.api.records.get({});
Input
NameTypeRequiredDescription
baseIdstringYes
tableIdOrNamestringYes
recordIdstringYes
returnFieldsByFieldIdbooleanNo
Output
NameTypeRequiredDescription
idstringYes
createdTimestringYes
fieldsobjectYes
{
}

records.search Search and list records with optional filters Risk: read
await corsair.airtable.api.records.search({});
Input
NameTypeRequiredDescription
baseIdstringYes
tableIdOrNamestringYes
fieldsstring[]No
filterByFormulastringNo
maxRecordsnumberNo
pageSizenumberNo
sortobject[]No
viewstringNo
cellFormatjson | stringNo
timeZonestringNo
userLocalestringNo
returnFieldsByFieldIdbooleanNo
offsetstringNo
{
  field: string,
  direction?: asc | desc
}[]
Output
NameTypeRequiredDescription
recordsobject[]Yes
offsetstringNo
{
  id: string,
  createdTime: string,
  fields: {
  }
}[]

update

records.update Update fields on an existing record Risk: write
await corsair.airtable.api.records.update({});
Input
NameTypeRequiredDescription
baseIdstringYes
tableIdOrNamestringYes
recordIdstringYes
fieldsobjectYes
typecastbooleanNo
{
}
Output
NameTypeRequiredDescription
recordsobject[]Yes
{
  id: string,
  createdTime: string,
  fields: {
  }
}[]