Airtable Tables API

Create and update table definitions within a base

Operations 2

POST /meta/bases/{baseId}/tables Airtable Create a Table in a Base #
PATCH /meta/bases/{baseId}/tables/{tableId} Airtable Update a Table #

Documentation

📖
Documentation
https://airtable.com/developers/web/api/introduction
📖
GettingStarted
https://support.airtable.com/docs/getting-started-with-airtables-web-api
📖
Authentication
https://airtable.com/developers/web/api/authentication
📖
Authentication
https://airtable.com/developers/web/guides/personal-access-tokens
📖
Authentication
https://airtable.com/developers/web/guides/oauth-integrations
📖
Documentation
https://airtable.com/developers/web/api/webhooks-overview
📖
APIReference
https://airtable.com/developers/web/api/list-records
📖
APIReference
https://airtable.com/developers/web/api/update-record
📖
RateLimits
https://airtable.com/developers/web/api/rate-limits
📖
Documentation
https://airtable.com/developers/web/api/cursor-pagination
📖
Documentation
https://airtable.com/developers/web/api/field-model
📖
Documentation
https://airtable.com/developers/web/api/list-bases
📖
Documentation
https://airtable.com/developers/web/api/get-base-schema
📖
Documentation
https://airtable.com/developers/web/api/create-base
📖
Documentation
https://airtable.com/developers/web/api/create-table
📖
Documentation
https://airtable.com/developers/web/api/create-field
📖
APIReference
https://airtable.com/developers/web/api/update-table
📖
APIReference
https://airtable.com/developers/web/api/update-field
📖
Documentation
https://airtable.com/developers/web/api/scim-overview
📖
APIReference
https://airtable.com/developers/web/api/model/scim-user-schema
📖
APIReference
https://airtable.com/developers/web/api/create-scim-user
📖
APIReference
https://airtable.com/developers/web/api/get-scim-user
📖
APIReference
https://airtable.com/developers/web/api/put-scim-user
📖
APIReference
https://airtable.com/developers/web/api/delete-scim-user
📖
APIReference
https://airtable.com/developers/web/api/get-scim-group
📖
APIReference
https://airtable.com/developers/web/api/delete-scim-group
📖
GettingStarted
https://support.airtable.com/docs/managing-users-via-idp-sync

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/airtable-tables-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

airtable-tables-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Airtable Metadata Tables API
  description: The Airtable Metadata API provides access to base and schema management operations. You can list bases, retrieve base schemas with table and field definitions, create new bases, tables, and fields, and update table and field configurations programmatically. This API enables developers to introspect and modify the structure of their Airtable data.
  version: 1.0.0
  contact:
    name: Airtable
    url: https://airtable.com/developers
    email: support@airtable.com
  license:
    name: Proprietary
    url: https://airtable.com/tos
  termsOfService: https://airtable.com/tos
servers:
- url: https://api.airtable.com/v0
  description: Airtable API v0 production server
security:
- bearerAuth: []
tags:
- name: Tables
  description: Create and update table definitions within a base
paths:
  /meta/bases/{baseId}/tables:
    post:
      operationId: createTable
      summary: Airtable Create a Table in a Base
      description: Creates a new table within the specified base. The table must include a name and at least one field definition. Optionally include a description for the table.
      tags:
      - Tables
      parameters:
      - $ref: '#/components/parameters/baseId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTableRequest'
      responses:
        '200':
          description: The newly created table with its schema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableSchema'
        '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
  /meta/bases/{baseId}/tables/{tableId}:
    patch:
      operationId: updateTable
      summary: Airtable Update a Table
      description: Updates the name and/or description of an existing table. Only the provided fields will be modified.
      tags:
      - Tables
      parameters:
      - $ref: '#/components/parameters/baseId'
      - $ref: '#/components/parameters/tableId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: The new name for the table.
                description:
                  type: string
                  description: The new description for the table.
      responses:
        '200':
          description: The updated table schema.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableSchema'
        '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
components:
  schemas:
    Error:
      type: object
      description: An error response from the Airtable API.
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              description: The type of error.
            message:
              type: string
              description: A human-readable description of the error.
          required:
          - type
          - message
    FieldSchema:
      type: object
      description: The schema definition of a field within a table.
      properties:
        id:
          type: string
          description: The unique identifier of the field (starts with 'fld').
          example: fldABC123def456
        name:
          type: string
          description: The name of the field.
        type:
          type: string
          description: The type of the field.
          enum:
          - singleLineText
          - email
          - url
          - multilineText
          - number
          - percent
          - currency
          - singleSelect
          - multipleSelects
          - singleCollaborator
          - multipleCollaborators
          - multipleRecordLinks
          - date
          - dateTime
          - phoneNumber
          - multipleAttachments
          - checkbox
          - formula
          - createdTime
          - rollup
          - count
          - lookup
          - multipleLookupValues
          - autoNumber
          - barcode
          - rating
          - richText
          - duration
          - lastModifiedTime
          - button
          - createdBy
          - lastModifiedBy
          - externalSyncSource
          - aiText
        description:
          type: string
          description: The description of the field.
        options:
          type: object
          description: Configuration options for the field. The structure depends on the field type.
          additionalProperties: true
      required:
      - id
      - name
      - type
    ViewSchema:
      type: object
      description: The schema definition of a view within a table.
      properties:
        id:
          type: string
          description: The unique identifier of the view (starts with 'viw').
          example: viwABC123def456
        name:
          type: string
          description: The name of the view.
        type:
          type: string
          description: The type of the view.
          enum:
          - grid
          - form
          - calendar
          - gallery
          - kanban
          - timeline
          - block
        personalForUserId:
          type: string
          description: If set, this is a personal view only visible to the specified user.
        visibleFieldIds:
          type: array
          description: The IDs of fields visible in this view. Only included if visibleFieldIds is requested via the include parameter.
          items:
            type: string
      required:
      - id
      - name
      - type
    CreateFieldRequest:
      type: object
      description: Request body for creating a new field.
      properties:
        name:
          type: string
          description: The name of the field.
        type:
          type: string
          description: The type of the field. Some types like formula and autoNumber cannot be created via the API.
        description:
          type: string
          description: A description of the field.
        options:
          type: object
          description: Configuration options for the field. Required for some field types like singleSelect and multipleSelects.
          additionalProperties: true
      required:
      - name
      - type
    CreateTableRequest:
      type: object
      description: Request body for creating a new table within a base.
      properties:
        name:
          type: string
          description: The name of the new table.
        description:
          type: string
          description: The description of the new table.
        fields:
          type: array
          description: The field definitions for the table. At least one field is required.
          minItems: 1
          items:
            $ref: '#/components/schemas/CreateFieldRequest'
      required:
      - name
      - fields
    TableSchema:
      type: object
      description: The schema definition of a table within a base.
      properties:
        id:
          type: string
          description: The unique identifier of the table (starts with 'tbl').
          example: tblABC123def456
        name:
          type: string
          description: The name of the table.
        description:
          type: string
          description: The description of the table.
        primaryFieldId:
          type: string
          description: The ID of the primary field for this table.
        fields:
          type: array
          description: The list of field definitions in the table.
          items:
            $ref: '#/components/schemas/FieldSchema'
        views:
          type: array
          description: The list of view definitions in the table.
          items:
            $ref: '#/components/schemas/ViewSchema'
      required:
      - id
      - name
      - fields
      - views
  responses:
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: The authenticated user does not have permission to perform this action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication credentials are missing or invalid.
      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. The API allows 5 requests per second per base.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  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]+$
    tableId:
      name: tableId
      in: path
      required: true
      description: The unique identifier of the table (starts with 'tbl').
      schema:
        type: string
        pattern: ^tbl[a-zA-Z0-9]+$
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Airtable uses Bearer token authentication. Provide a personal access token or OAuth access token with schema.bases:read or schema.bases:write scopes.
externalDocs:
  description: Airtable Metadata API Documentation
  url: https://airtable.com/developers/web/api/list-bases