Keboola Columns API

The Columns API from Keboola — 6 operation(s) for columns.

OpenAPI Specification

keboola-columns-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: AI Service Actions Columns API
  version: 1.0.0
  contact:
    email: devel@keboola.com
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
tags:
- name: Columns
paths:
  /v2/storage/branch/{branchId}/columns/{id}/metadata:
    get:
      tags:
      - Columns
      summary: Get column metadata
      description: Returns metadata for a specific column in a table.
      operationId: get_/v2/storage/branch/{branchId}/columns/{id}/metadata::ColumnMetadataDetailAction
      parameters:
      - name: id
        in: path
        description: Column ID in format bucket.table.column
        required: true
        schema:
          type: string
          pattern: .+
      - name: branchId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Column metadata response
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    key:
                      type: string
                    value:
                      type: string
                    provider:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                  type: object
        '404':
          description: Column not found.
    post:
      tags:
      - Columns
      summary: Create or update column metadata
      description: Creates new metadata records or updates existing ones for the specified column.
      operationId: post_/v2/storage/branch/{branchId}/columns/{id}/metadata::ColumnMetadataCreateOrUpdateAction
      parameters:
      - name: id
        in: path
        description: Column ID in format bucket.table.column
        required: true
        schema:
          type: string
          pattern: .+
      - name: branchId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        description: Metadata payload including provider identifier and metadata items.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMetadataWithProviderRequest'
      responses:
        '201':
          description: Metadata successfully created or updated.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MetadataItemResponse'
        '400':
          description: Returned when validation fails for the metadata payload or column lookup.
        '403':
          description: Returned when the token lacks write privileges or the provider cannot be edited.
        '404':
          description: Returned when the column is not found.
  /v2/storage/columns/{id}/metadata:
    get:
      tags:
      - Columns
      summary: Get column metadata
      description: Returns metadata for a specific column in a table.
      operationId: get_/v2/storage/columns/{id}/metadata::ColumnMetadataDetailAction
      parameters:
      - name: id
        in: path
        description: Column ID in format bucket.table.column
        required: true
        schema:
          type: string
          pattern: .+
      responses:
        '200':
          description: Column metadata response
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    key:
                      type: string
                    value:
                      type: string
                    provider:
                      type: string
                    timestamp:
                      type: string
                      format: date-time
                  type: object
        '404':
          description: Column not found.
    post:
      tags:
      - Columns
      summary: Create or update column metadata
      description: Creates new metadata records or updates existing ones for the specified column.
      operationId: post_/v2/storage/columns/{id}/metadata::ColumnMetadataCreateOrUpdateAction
      parameters:
      - name: id
        in: path
        description: Column ID in format bucket.table.column
        required: true
        schema:
          type: string
          pattern: .+
      requestBody:
        description: Metadata payload including provider identifier and metadata items.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMetadataWithProviderRequest'
      responses:
        '201':
          description: Metadata successfully created or updated.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MetadataItemResponse'
        '400':
          description: Returned when validation fails for the metadata payload or column lookup.
        '403':
          description: Returned when the token lacks write privileges or the provider cannot be edited.
        '404':
          description: Returned when the column is not found.
  /v2/storage/branch/{branchId}/columns/{id}/metadata/{metadataId}:
    delete:
      tags:
      - Columns
      summary: Delete column metadata
      description: Deletes a single metadata entry for a specific column.
      operationId: delete_/v2/storage/branch/{branchId}/columns/{id}/metadata/{metadataId}::ColumnMetadataDeleteAction
      parameters:
      - name: id
        in: path
        description: Column ID in format bucket.table.column
        required: true
        schema:
          type: string
          pattern: .+
      - name: metadataId
        in: path
        description: Numeric identifier of the metadata record to delete.
        required: true
        schema:
          type: integer
          pattern: '[0-9]+'
      - name: branchId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Metadata entry deleted successfully.
        '400':
          description: Invalid request (e.g. malformed metadata ID).
        '403':
          description: 'Forbidden: metadata provider cannot be deleted or insufficient permissions.'
        '404':
          description: Column or metadata entry not found.
  /v2/storage/columns/{id}/metadata/{metadataId}:
    delete:
      tags:
      - Columns
      summary: Delete column metadata
      description: Deletes a single metadata entry for a specific column.
      operationId: delete_/v2/storage/columns/{id}/metadata/{metadataId}::ColumnMetadataDeleteAction
      parameters:
      - name: id
        in: path
        description: Column ID in format bucket.table.column
        required: true
        schema:
          type: string
          pattern: .+
      - name: metadataId
        in: path
        description: Numeric identifier of the metadata record to delete.
        required: true
        schema:
          type: integer
          pattern: '[0-9]+'
      responses:
        '204':
          description: Metadata entry deleted successfully.
        '400':
          description: Invalid request (e.g. malformed metadata ID).
        '403':
          description: 'Forbidden: metadata provider cannot be deleted or insufficient permissions.'
        '404':
          description: Column or metadata entry not found.
  /v2/storage/branch/{branchId}/tables/{id}/columns:
    post:
      tags:
      - Columns
      summary: Create columns in a table
      description: Adds one or more columns to the specified table.
      operationId: post_/v2/storage/branch/{branchId}/tables/{id}/columns::ColumnCreateAction
      parameters:
      - name: branchId
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
          pattern: .+
      - name: X-KBC-Backend
        in: header
        schema:
          schema: BackendConfigurationRequest
          properties:
            context:
              type: string
              nullable: true
              minLength: 1
          type: object
      requestBody:
        description: Request payload for creating columns
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/BigqueryAddColumnToTableRequest'
              - $ref: '#/components/schemas/SnowflakeAddColumnToTableRequest'
              - $ref: '#/components/schemas/ColumnCreateRequest'
      responses:
        '202':
          description: Accepted.
        '400':
          description: Invalid request
  /v2/storage/tables/{id}/columns:
    post:
      tags:
      - Columns
      summary: Create columns in a table
      description: Adds one or more columns to the specified table.
      operationId: post_/v2/storage/tables/{id}/columns::ColumnCreateAction
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          pattern: .+
      - name: X-KBC-Backend
        in: header
        schema:
          schema: BackendConfigurationRequest
          properties:
            context:
              type: string
              nullable: true
              minLength: 1
          type: object
      requestBody:
        description: Request payload for creating columns
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/BigqueryAddColumnToTableRequest'
              - $ref: '#/components/schemas/SnowflakeAddColumnToTableRequest'
              - $ref: '#/components/schemas/ColumnCreateRequest'
      responses:
        '202':
          description: Accepted.
        '400':
          description: Invalid request
components:
  schemas:
    SnowflakeAddColumnToTableRequest:
      description: Request for adding a column to a Snowflake table.
      required:
      - name
      - definition
      properties:
        name:
          description: Name of the column to add.
          type: string
        definition:
          description: Column definition for Snowflake.
          required:
          - type
          properties:
            type:
              description: Snowflake column type. Must be one of allowed types.
              type: string
            length:
              description: Optional length for the column.
              type: integer
              nullable: true
            nullable:
              description: Whether the column is nullable.
              type: boolean
              nullable: true
            default:
              description: Default value for the column.
              type: string
              nullable: true
          type: object
      type: object
    BigqueryAddColumnToTableRequest:
      description: Request for adding a column to a BigQuery table.
      required:
      - name
      - definition
      properties:
        name:
          description: Name of the column to add.
          type: string
        definition:
          description: Column definition for BigQuery.
          required:
          - type
          properties:
            type:
              description: BigQuery column type. Must be one of allowed types.
              type: string
            length:
              description: Optional length for the column.
              type: integer
              nullable: true
            nullable:
              description: Whether the column is nullable.
              type: boolean
              nullable: true
            description:
              description: Optional column description stored as table metadata.
              type: string
              nullable: true
          type: object
      type: object
    CreateMetadataWithProviderRequest:
      required:
      - provider
      - metadata
      properties:
        provider:
          description: Metadata provider identifier
          type: string
        metadata:
          description: List of metadata items
          type: array
          items:
            properties:
              key:
                description: Metadata key
                type: string
              value:
                description: Metadata value
                type: string
                nullable: true
            type: object
      type: object
    MetadataItemResponse:
      description: Single metadata record.
      required:
      - id
      - key
      - value
      - provider
      - timestamp
      properties:
        id:
          description: Metadata record identifier
          type: integer
        key:
          description: Metadata key
          type: string
        value:
          description: Metadata value
          type: string
          nullable: true
        provider:
          description: Metadata provider identifier
          type: string
        timestamp:
          description: Metadata timestamp
          type: string
          format: date-time
      type: object
    ColumnCreateRequest:
      description: Request for adding a column to a table.
      required:
      - name
      properties:
        name:
          description: Name of the column to add.
          type: string
        definition:
          description: Column definition. For untyped tables only "description" is allowed.
          properties:
            description:
              description: Column description.
              type: string
              nullable: true
          type: object
          nullable: true
      type: object
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-StorageApi-Token