Airtable API

The Airtable API can be used to integrate your data in Airtable with any external system. The API closely follows REST semantics, uses JSON to encode objects, and relies on standard HTTP codes to signal operation outcomes.

Documentation

Specifications

SDKs

Schemas & Data

Other Resources

OpenAPI Specification

airtable-airtable-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Airtable API
  description: >-
    The Airtable API can be used to integrate your data in Airtable with any
    external system. The API closely follows REST semantics, uses JSON to encode
    objects, and relies on standard HTTP codes to signal operation outcomes. It
    provides full CRUD operations on records, comment management, and webhook
    subscriptions for real-time notifications.
  version: 1.0.0
  contact:
    name: Airtable
    url: https://airtable.com/developers
    email: [email protected]
  license:
    name: Proprietary
    url: https://airtable.com/tos
  termsOfService: https://airtable.com/tos
externalDocs:
  description: Airtable Web API Documentation
  url: https://airtable.com/developers/web/api/introduction
servers:
- url: https://api.airtable.com/v0
  description: Airtable API v0 production server
security:
- bearerAuth: []
tags:
- name: Comments
  description: Manage comments on individual records
- name: Records
  description: Create, read, update, and delete records in a table
- name: Webhooks
  description: Subscribe to real-time change notifications on bases
paths:
  /{baseId}/{tableIdOrName}:
    get:
      operationId: listRecords
      summary: Airtable List Records in a Table
      description: >-
        Returns a paginated list of records in the specified table. Records can
        be filtered using an Airtable formula, sorted by specific fields, and
        limited to specific fields. The maximum page size is 100 records. Use
        the offset parameter from the response to fetch the next page.
      tags:
      - Records
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - name: fields[]
        in: query
        description: Only return data for the specified field names or IDs.
        required: false
        schema:
          type: array
          items:
            type: string
        style: form
        explode: true
      - name: filterByFormula
        in: query
        description: >-
          An Airtable formula used to filter records. The formula is evaluated
          for each record, and if the result is not 0, false, "", NaN, [], or
          #Error!, the record will be included in the response.
        required: false
        schema:
          type: string
      - name: maxRecords
        in: query
        description: The maximum total number of records that will be returned.
        required: false
        schema:
          type: integer
          minimum: 1
      - name: pageSize
        in: query
        description: >-
          The number of records returned in each request. Must be less than or
          equal to 100. Default is 100.
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 100
      - name: sort
        in: query
        description: >-
          A list of sort objects that specifies how the records will be
          ordered. Each sort object must have a field key and an optional
          direction key (asc or desc).
        required: false
        schema:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              direction:
                type: string
                enum:
                - asc
                - desc
        style: deepObject
        explode: true
      - name: view
        in: query
        description: The name or ID of a view in the table. If set, only the records in that view will be returned.
        required: false
        schema:
          type: string
      - name: cellFormat
        in: query
        description: >-
          The format that should be used for cell values. Supported values are
          json (default) and string.
        required: false
        schema:
          type: string
          enum:
          - json
          - string
      - name: timeZone
        in: query
        description: The time zone to use for formatting dates when using string cell format.
        required: false
        schema:
          type: string
      - name: userLocale
        in: query
        description: The user locale to use for formatting dates when using string cell format.
        required: false
        schema:
          type: string
      - name: returnFieldsByFieldId
        in: query
        description: >-
          If true, the response will use field IDs as object keys instead of
          field names.
        required: false
        schema:
          type: boolean
      - name: offset
        in: query
        description: >-
          A pagination cursor returned from a previous request. Pass this
          value to fetch the next page of results.
        required: false
        schema:
          type: string
      responses:
        '200':
          description: A paginated list of records.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createRecords
      summary: Airtable Create Records in a Table
      description: >-
        Creates up to 10 records in the specified table. Each record must
        include a fields object mapping field names (or IDs) to values. If
        typecast is enabled, the API will attempt to convert string values to
        the appropriate cell value.
      tags:
      - Records
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                records:
                  type: array
                  maxItems: 10
                  items:
                    type: object
                    properties:
                      fields:
                        $ref: '#/components/schemas/FieldValues'
                    required:
                    - fields
                typecast:
                  type: boolean
                  description: If true, the API will attempt to convert string values to the appropriate cell value type.
                returnFieldsByFieldId:
                  type: boolean
                  description: If true, the response will use field IDs as keys instead of field names.
              required:
              - records
      responses:
        '200':
          description: The created records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  records:
                    type: array
                    items:
                      $ref: '#/components/schemas/Record'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{baseId}/{tableIdOrName}/{recordId}:
    get:
      operationId: getRecord
      summary: Airtable Retrieve a Single Record
      description: >-
        Retrieves a single record by its ID from the specified table. Returns
        the record's fields, creation time, and ID.
      tags:
      - Records
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      - name: returnFieldsByFieldId
        in: query
        required: false
        schema:
          type: boolean
        description: If true, the response will use field IDs as keys instead of field names.
      responses:
        '200':
          description: The requested record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    patch:
      operationId: updateRecord
      summary: Airtable Update a Record (partial)
      description: >-
        Updates specific fields of an existing record. Only the fields included
        in the request body will be updated; all other fields will remain
        unchanged. Up to 10 records can be updated in a single request when
        using the batch endpoint.
      tags:
      - Records
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fields:
                  $ref: '#/components/schemas/FieldValues'
                typecast:
                  type: boolean
                  description: If true, the API will attempt to convert string values to the appropriate cell value type.
                returnFieldsByFieldId:
                  type: boolean
              required:
              - fields
      responses:
        '200':
          description: The updated record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    put:
      operationId: replaceRecord
      summary: Airtable Update a Record (full Replacement)
      description: >-
        Replaces all fields of an existing record. Fields that are not included
        in the request body will be cleared. This is a destructive update that
        overwrites the entire record.
      tags:
      - Records
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                fields:
                  $ref: '#/components/schemas/FieldValues'
                typecast:
                  type: boolean
                returnFieldsByFieldId:
                  type: boolean
              required:
              - fields
      responses:
        '200':
          description: The replaced record.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Record'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteRecord
      summary: Airtable Delete a Record
      description: >-
        Deletes a single record from the specified table. The record is
        permanently removed and cannot be recovered through the API.
      tags:
      - Records
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      responses:
        '200':
          description: Confirmation of deletion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RecordDeleted'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{baseId}/{tableIdOrName}/{recordId}/comments:
    get:
      operationId: listComments
      summary: Airtable List Comments on a Record
      description: >-
        Returns a paginated list of comments on the specified record. Comments
        are returned in reverse chronological order.
      tags:
      - Comments
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      - name: offset
        in: query
        required: false
        description: Pagination cursor from a previous response to fetch the next page.
        schema:
          type: string
      - name: pageSize
        in: query
        required: false
        description: The number of comments to return per page.
        schema:
          type: integer
          minimum: 1
          maximum: 100
      responses:
        '200':
          description: A paginated list of comments.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommentList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createComment
      summary: Airtable Create a Comment on a Record
      description: >-
        Creates a new comment on the specified record. Comments can include
        user mentions using the @[usrXXXXXXXX] syntax. Requires OAuth
        authentication with the comment:write scope.
      tags:
      - Comments
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  description: The text content of the comment. Supports @[usrXXXXXXXX] syntax for mentions.
              required:
              - text
      responses:
        '200':
          description: The created comment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /{baseId}/{tableIdOrName}/{recordId}/comments/{commentId}:
    patch:
      operationId: updateComment
      summary: Airtable Update a Comment
      description: >-
        Updates the text of an existing comment on a record. Only the author
        of the comment can update it.
      tags:
      - Comments
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      - name: commentId
        in: path
        required: true
        description: The unique identifier of the comment.
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                text:
                  type: string
                  description: The updated text content of the comment.
              required:
              - text
      responses:
        '200':
          description: The updated comment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    delete:
      operationId: deleteComment
      summary: Airtable Delete a Comment
      description: >-
        Deletes a comment from a record. Only the author of the comment can
        delete it.
      tags:
      - Comments
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableIdOrName'
      - $ref: '#/components/parameters/recordId'
      - name: commentId
        in: path
        required: true
        description: The unique identifier of the comment.
        schema:
          type: string
      responses:
        '200':
          description: Confirmation that the comment was deleted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    description: The ID of the deleted comment.
                  deleted:
                    type: boolean
                    description: Always true when the deletion succeeds.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /bases/{baseId}/webhooks:
    get:
      operationId: listWebhooks
      summary: Airtable List Webhooks for a Base
      description: >-
        Returns a list of all webhooks registered for the specified base.
        Includes webhook configuration, status, and expiration information.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/baseIdPath'
      responses:
        '200':
          description: A list of webhooks.
          content:
            application/json:
              schema:
                type: object
                properties:
                  webhooks:
                    type: array
                    items:
                      $ref: '#/components/schemas/Webhook'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createWebhook
      summary: Airtable Create a Webhook for a Base
      description: >-
        Creates a new webhook subscription for the specified base. Webhooks
        expire after 7 days and must be refreshed. The response includes a
        MAC secret used to verify webhook notification payloads. Requires
        OAuth authentication with the webhook:manage scope.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/baseIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookCreateRequest'
      responses:
        '200':
          description: The created webhook with MAC secret.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookCreateResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /bases/{baseId}/webhooks/{webhookId}:
    delete:
      operationId: deleteWebhook
      summary: Airtable Delete a Webhook
      description: >-
        Deletes an existing webhook subscription. The webhook will no longer
        send notifications after deletion.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/baseIdPath'
      - name: webhookId
        in: path
        required: true
        description: The unique identifier of the webhook.
        schema:
          type: string
      responses:
        '200':
          description: Confirmation that the webhook was deleted.
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /bases/{baseId}/webhooks/{webhookId}/refresh:
    post:
      operationId: refreshWebhook
      summary: Airtable Refresh a Webhook
      description: >-
        Extends the expiration time of an existing webhook. Webhooks expire
        after 7 days of inactivity and must be periodically refreshed to
        remain active.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/baseIdPath'
      - name: webhookId
        in: path
        required: true
        description: The unique identifier of the webhook.
        schema:
          type: string
      responses:
        '200':
          description: The refreshed webhook with new expiration time.
          content:
            application/json:
              schema:
                type: object
                properties:
                  expirationTime:
                    type: string
                    format: date-time
                    description: The new expiration time for the webhook.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /bases/{baseId}/webhooks/{webhookId}/payloads:
    get:
      operationId: listWebhookPayloads
      summary: Airtable List Webhook Payloads
      description: >-
        Returns a list of payloads that have been generated for the specified
        webhook. Payloads are returned in chronological order and can be
        paginated using a cursor.
      tags:
      - Webhooks
      parameters:
      - $ref: '#/components/parameters/baseIdPath'
      - name: webhookId
        in: path
        required: true
        description: The unique identifier of the webhook.
        schema:
          type: string
      - name: cursor
        in: query
        required: false
        description: A cursor for pagination. Pass the cursor from the previous response to get the next page.
        schema:
          type: string
      responses:
        '200':
          description: A list of webhook payloads.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookPayloadList'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Airtable uses Bearer token authentication. Provide a personal access
        token or OAuth access token in the Authorization header.
  parameters:
    baseId:
      name: baseId
      in: path
      required: true
      description: The unique identifier of the base (starts with 'app').
      schema:
        type: string
        pattern: ^app[a-zA-Z0-9]+$
    baseIdPath:
      name: baseId
      in: path
      required: true
      description: The unique identifier of the base (starts with 'app').
      schema:
        type: string
        pattern: ^app[a-zA-Z0-9]+$
    tableIdOrName:
      name: tableIdOrName
      in: path
      required: true
      description: The name or unique identifier (starts with 'tbl') of the table.
      schema:
        type: string
    recordId:
      name: recordId
      in: path
      required: true
      description: The unique identifier of the record (starts with 'rec').
      schema:
        type: string
        pattern: ^rec[a-zA-Z0-9]+$
  schemas:
    Record:
      type: object
      description: An Airtable record representing a single row in a table.
      properties:
        id:
          type: string
          description: The unique identifier of the record (starts with 'rec').
          example: recABC123def456
        createdTime:
          type: string
          format: date-time
          description: The time when the record was created in ISO 8601 format.
        fields:
          $ref: '#/components/schemas/FieldValues'
      required:
      - id
      - createdTime
      - fields
    FieldValues:
      type: object
      description: >-
        A mapping of field names (or field IDs when returnFieldsByFieldId is
        true) to their cell values. The structure depends on the field types
        defined in the table schema.
      additionalProperties: true
    RecordList:
      type: object
      description: A paginated list of records from a table.
      properties:
        records:
          type: array
          items:
            $ref: '#/components/schemas/Record'
        offset:
          type: string
          description: >-
            A pagination cursor. If present, pass this value in the offset
            query parameter to fetch the next page of results.
      required:
      - records
    RecordDeleted:
      type: object
      description: Confirmation that a record was deleted.
      properties:
        id:
          type: string
          description: The ID of the deleted record.
        deleted:
          type: boolean
          description: Always true when the deletion succeeds.
      required:
      - id
      - deleted
    Comment:
      type: object
      description: A comment on an Airtable record.
      properties:
        id:
          type: string
          description: The unique identifier of the comment.
        author:
          type: object
          description: The user who created the comment.
          properties:
            id:
              type: string
              description: The user ID of the comment author.
            email:
              type: string
              format: email
              description: The email address of the comment author.
            name:
              type: string
              description: The display name of the comment author.
        text:
          type: string
          description: The text content of the comment.
        createdTime:
          type: string
          format: date-time
          description: The time when the comment was created.
        lastUpdatedTime:
          type: string
          format: date-time
          description: The time when the comment was last updated.
      required:
      - id
      - text
      - createdTime
    CommentList:
      type: object
      description: A paginated list of comments on a record.
      properties:
        comments:
          type: array
          items:
            $ref: '#/components/schemas/Comment'
        offset:
          type: string
          description: Pagination cursor for the next page of results.
      required:
      - comments
    Webhook:
      type: object
      description: A webhook subscription on an Airtable base.
      properties:
        id:
          type: string
          description: The unique identifier of the webhook.
        type:
          type: string
          description: The type of the webhook (e.g., client).
        isHookEnabled:
          type: boolean
          description: Whether the webhook is currently active.
        notificationUrl:
          type: string
          format: uri
          description: The URL that receives webhook notifications.
        cursorForNextPayload:
          type: integer
          description: The cursor position for the next unread payload.
        areNotificationsEnabled:
          type: boolean
          description: Whether notifications are currently being sent.
        createdTime:
          type: string
          format: date-time
          description: The time when the webhook was created.
        expirationTime:
          type: string
          format: date-time
          description: The time when the webhook will expire if not refreshed.
        specification:
          $ref: '#/components/schemas/WebhookSpecification'
      required:
      - id
      - type
    WebhookSpecification:
      type: object
      description: The specification defining what changes the webhook monitors.
      properties:
        options:
          type: object
          properties:
            filters:
              type: object
              description: Filters to narrow down which changes trigger the webhook.
              properties:
                sourceOptions:
                  type: object
                  properties:
                    formSubmission:
                      type: object
                      properties:
                        tableId:
                          type: string
                        viewId:
                          type: string
                    formPageSubmission:
                      type: object
                      properties:
                        pageId:
                          type: string
                dataTypes:
                  type: array
                  description: The types of data changes to monitor.
                  items:
                    type: string
                    enum:
                    - tableData
                    - tableFields
                    - tableMetadata
                recordChangeScope:
                  type: string
                  description: The scope of record changes to monitor.
                watchDataInFieldIds:
                  type: array
                  description: Specific field IDs to watch for changes.
                  items:
                    type: string
                watchSchemasOfFieldIds:
                  type: array
                  description: Specific field IDs whose schema changes to watch.
                  items:
                    type: string
    WebhookCreateRequest:
      type: object
      description: Request body for creating a new webhook.
      properties:
        notificationUrl:
          type: string
          format: uri
          description: The URL that will receive POST notifications when changes occur.
  

# --- truncated at 32 KB (36 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/airtable/refs/heads/main/openapi/airtable-airtable-api-openapi.yml