Airtable Shares API

The Airtable Shares API allows enterprise administrators to list, manage, and delete share links across an organization. It provides programmatic control over base sharing and access management.

OpenAPI Specification

airtable-shares-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Airtable Shares API
  description: >-
    The Airtable Shares API allows enterprise administrators to list, manage,
    and delete share links across an organization. It provides programmatic
    control over base sharing and access management, enabling enforcement of
    sharing policies at scale.
  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 Shares API Documentation
  url: https://airtable.com/developers/web/api/list-shares
servers:
- url: https://api.airtable.com/v0
  description: Airtable API v0 production server
security:
- bearerAuth: []
tags:
- name: Shares
  description: Manage share links for bases within the enterprise
paths:
  /meta/bases/{baseId}/shares:
    get:
      operationId: listShares
      summary: Airtable List Share Links for a Base
      description: >-
        Returns a list of all active share links for the specified base. Each
        share includes its type, state, and the user who created it. This
        endpoint is available to enterprise administrators.
      tags:
      - Shares
      parameters:
      - $ref: '#/components/parameters/baseId'
      responses:
        '200':
          description: A list of share links for the base.
          content:
            application/json:
              schema:
                type: object
                properties:
                  shares:
                    type: array
                    items:
                      $ref: '#/components/schemas/Share'
        '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
  /meta/bases/{baseId}/shares/{shareId}:
    patch:
      operationId: manageShare
      summary: Airtable Manage a Share Link
      description: >-
        Updates the configuration of an existing share link for a base. Can
        be used to enable or disable the share link, or update its access
        settings.
      tags:
      - Shares
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/shareId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                state:
                  type: string
                  description: The desired state of the share link.
                  enum:
                  - enabled
                  - disabled
                isPasswordEnabled:
                  type: boolean
                  description: Whether password protection is enabled for the share link.
                password:
                  type: string
                  description: The password to set for the share link. Only applicable when isPasswordEnabled is true.
      responses:
        '200':
          description: The updated share link.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Share'
        '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: deleteShare
      summary: Airtable Delete a Share Link
      description: >-
        Permanently deletes a share link for a base. Anyone who previously
        had access through this share link will immediately lose access.
      tags:
      - Shares
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/shareId'
      responses:
        '200':
          description: Confirmation that the share link 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
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Requires an enterprise admin-level personal access token or service
        account token.
  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]+$
    shareId:
      name: shareId
      in: path
      required: true
      description: The unique identifier of the share link (starts with 'shr').
      schema:
        type: string
        pattern: ^shr[a-zA-Z0-9]+$
  schemas:
    Share:
      type: object
      description: A share link that provides external access to a base or view.
      properties:
        shareId:
          type: string
          description: The unique identifier of the share link.
          example: shrABC123def456
        type:
          type: string
          description: The type of share link.
          enum:
          - view
          - base
          - form
        state:
          type: string
          description: The current state of the share link.
          enum:
          - enabled
          - disabled
        createdByUserId:
          type: string
          description: The ID of the user who created the share link.
        createdTime:
          type: string
          format: date-time
          description: The time when the share link was created.
        baseId:
          type: string
          description: The ID of the base this share link provides access to.
        viewId:
          type: string
          description: The ID of the view this share link provides access to (for view-type shares).
        isPasswordEnabled:
          type: boolean
          description: Whether the share link is password-protected.
        effectivePermissionLevel:
          type: string
          description: The effective permission level granted by this share.
          enum:
          - read
          - comment
          - edit
      required:
      - shareId
      - type
      - state
    Error:
      type: object
      description: An error response from the Airtable API.
      properties:
        error:
          type: object
          properties:
            type:
              type: string
            message:
              type: string
          required:
          - type
          - message
  responses:
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The authenticated user does not have enterprise admin permission.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    UnprocessableEntity:
      description: The request body contains invalid data.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    TooManyRequests:
      description: Rate limit exceeded.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'