openapi: 3.1.0 info: title: Airtable Audit Logs Bases 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: 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: Bases description: List and create bases, retrieve base schemas paths: /meta/bases: get: operationId: listBases summary: Airtable List All Bases description: Returns a paginated list of all bases that the authenticated user has access to. Each base includes its ID, name, and permission level. Use the offset parameter from the response to paginate through all available bases. tags: - Bases parameters: - name: offset in: query required: false description: Pagination cursor from a previous response to fetch the next page. schema: type: string responses: '200': description: A paginated list of bases. content: application/json: schema: $ref: '#/components/schemas/BaseList' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createBase summary: Airtable Create a New Base description: Creates a new base in the specified workspace. The request must include the workspace ID, base name, and at least one table definition with fields. Returns the newly created base with its schema. tags: - Bases requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateBaseRequest' responses: '200': description: The newly created base with its schema. content: application/json: schema: $ref: '#/components/schemas/BaseSchema' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': $ref: '#/components/responses/UnprocessableEntity' '429': $ref: '#/components/responses/TooManyRequests' x-microcks-operation: delay: 0 dispatcher: FALLBACK /meta/bases/{baseId}/tables: get: operationId: getBaseSchema summary: Airtable Get Base Schema description: Returns the schema of the specified base, including all tables, their fields (with type and configuration), and views. This endpoint provides a complete structural overview of the base. tags: - Bases parameters: - $ref: '#/components/parameters/baseId' - name: include in: query required: false description: Additional information to include in the response. Pass visibleFieldIds to include visible field IDs for each view. schema: type: array items: type: string enum: - visibleFieldIds style: form explode: true responses: '200': description: The base schema with tables, fields, and views. content: application/json: schema: type: object properties: tables: type: array items: $ref: '#/components/schemas/TableSchema' '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/whoami: get: operationId: whoami summary: Airtable Get Current User and Scopes description: Returns the ID and scopes of the currently authenticated user or service account. Useful for verifying authentication and checking available permissions. tags: - Bases responses: '200': description: The current user ID and authorized scopes. content: application/json: schema: type: object properties: id: type: string description: The ID of the authenticated user or service account. scopes: type: array description: The list of scopes authorized for this token. items: type: string '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: responses: Unauthorized: description: Authentication credentials are missing or invalid. 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' 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' UnprocessableEntity: description: The request body contains invalid data. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: 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 CreateBaseRequest: type: object description: Request body for creating a new base. properties: name: type: string description: The name of the new base. workspaceId: type: string description: The ID of the workspace where the base will be created (starts with 'wsp'). tables: type: array description: The initial table definitions for the base. minItems: 1 items: type: object properties: name: type: string description: The name of the table. description: type: string description: The description of the table. fields: type: array description: The field definitions for the table. minItems: 1 items: $ref: '#/components/schemas/CreateFieldRequest' required: - name - fields required: - name - workspaceId - tables BaseList: type: object description: A paginated list of bases accessible to the authenticated user. properties: bases: type: array items: $ref: '#/components/schemas/BaseSummary' offset: type: string description: Pagination cursor for the next page of results. required: - bases 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 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 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 BaseSchema: type: object description: The full schema of a base including all tables. properties: id: type: string description: The unique identifier of the base. name: type: string description: The name of the base. tables: type: array items: $ref: '#/components/schemas/TableSchema' required: - id - tables 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 BaseSummary: type: object description: Summary information about an Airtable base. properties: id: type: string description: The unique identifier of the base (starts with 'app'). example: appABC123def456 name: type: string description: The name of the base. permissionLevel: type: string description: The permission level the authenticated user has on this base. enum: - none - read - comment - edit - create required: - id - name - permissionLevel 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]+$ 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. externalDocs: description: Airtable Web API Documentation url: https://airtable.com/developers/web/api/introduction