Airtable · Arazzo Workflow

Airtable Paginate All Records

Version 1.0.0

Page through every record in a table using the offset cursor.

1 workflow 1 source API 1 provider
View Spec View on GitHub ApplicationsCollaborationDataDatabasesLow-CodeProductivitySpreadsheetsArazzoWorkflows

Provider

airtable

Workflows

paginate-all-records
Fetch the first page of records, then the next page via the offset.
Requests the first page of records with a page size of one hundred, then uses the offset cursor from that response to retrieve the following page.
2 steps inputs: baseId, tableIdOrName outputs: firstPageRecords, nextOffset, nextPageRecords
1
firstPage
listRecords
Request the first page of records using the maximum page size of one hundred records.
2
nextPage
listRecords
Fetch the next page of records by passing the offset cursor returned by the first page into the offset query parameter.

Source API Descriptions

Arazzo Workflow Specification

airtable-paginate-all-records-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Airtable Paginate All Records
  summary: Page through every record in a table using the offset cursor.
  description: >-
    Walks the full set of records in an Airtable table one page at a time. The
    first step requests a page of up to one hundred records, and the second
    step uses the offset cursor returned in that response to fetch the next
    page. The offset is passed forward via a runtime expression, demonstrating
    the cursor-passing pattern needed to drain an entire table. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: airtableApi
  url: ../openapi/airtable-airtable-api-openapi.yml
  type: openapi
workflows:
- workflowId: paginate-all-records
  summary: Fetch the first page of records, then the next page via the offset.
  description: >-
    Requests the first page of records with a page size of one hundred, then
    uses the offset cursor from that response to retrieve the following page.
  inputs:
    type: object
    required:
    - baseId
    - tableIdOrName
    properties:
      baseId:
        type: string
        description: The Airtable base identifier (e.g. appXXXXXXXXXXXXXX).
      tableIdOrName:
        type: string
        description: The table id or name to page through.
  steps:
  - stepId: firstPage
    description: >-
      Request the first page of records using the maximum page size of one
      hundred records.
    operationId: listRecords
    parameters:
    - name: baseId
      in: path
      value: $inputs.baseId
    - name: tableIdOrName
      in: path
      value: $inputs.tableIdOrName
    - name: pageSize
      in: query
      value: 100
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      records: $response.body#/records
      offset: $response.body#/offset
  - stepId: nextPage
    description: >-
      Fetch the next page of records by passing the offset cursor returned by
      the first page into the offset query parameter.
    operationId: listRecords
    parameters:
    - name: baseId
      in: path
      value: $inputs.baseId
    - name: tableIdOrName
      in: path
      value: $inputs.tableIdOrName
    - name: pageSize
      in: query
      value: 100
    - name: offset
      in: query
      value: $steps.firstPage.outputs.offset
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      records: $response.body#/records
      offset: $response.body#/offset
  outputs:
    firstPageRecords: $steps.firstPage.outputs.records
    nextPageRecords: $steps.nextPage.outputs.records
    nextOffset: $steps.nextPage.outputs.offset