Alation Data Catalog API

REST API for managing data sources, schemas, tables, columns, and custom field values in the Alation data catalog. Supports metadata retrieval and batch updates for catalog objects.

Documentation

Specifications

Examples

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-schema/alation-alation-data-catalog-data-source-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-schema/alation-alation-data-catalog-schema-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-schema/alation-alation-data-catalog-table-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-schema/alation-alation-data-catalog-column-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-schema/alation-alation-data-catalog-custom-field-value-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-structure/alation-alation-data-catalog-data-source-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-structure/alation-alation-data-catalog-schema-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-structure/alation-alation-data-catalog-table-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-structure/alation-alation-data-catalog-column-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/alation/refs/heads/main/json-structure/alation-alation-data-catalog-custom-field-value-structure.json

OpenAPI Specification

alation-data-catalog-openapi.yaml Raw ↑
openapi: 3.0.3
info:
  title: Alation Data Catalog API
  description: >-
    REST API for managing data sources, schemas, tables, and catalog objects
    in the Alation data intelligence platform. Supports metadata retrieval,
    custom field updates, and catalog object management.
  version: 1.0.0
  contact:
    name: Alation Developer Support
    url: https://developer.alation.com
servers:
  - url: https://{instance}/integration/v2
    description: Alation instance
    variables:
      instance:
        default: your-alation-instance.com
        description: Your Alation instance hostname
security:
  - BearerToken: []
tags:
  - name: Data Sources
    description: Manage data source connections
  - name: Schemas
    description: Retrieve schema metadata
  - name: Tables
    description: Retrieve table metadata
  - name: Columns
    description: Retrieve column metadata
  - name: Custom Fields
    description: Manage custom field values
paths:
  /datasource/:
    get:
      operationId: listDataSources
      summary: List data sources
      description: Returns a list of all data sources configured in the Alation catalog.
      tags:
        - Data Sources
      parameters:
        - name: limit
          in: query
          description: Number of results to return
          schema:
            type: integer
            default: 100
            maximum: 500
        - name: skip
          in: query
          description: Number of results to skip for pagination
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of data sources
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSourceList'
        '401':
          description: Unauthorized
  /datasource/{id}/:
    get:
      operationId: getDataSource
      summary: Get a data source
      description: Returns details for a specific data source by ID.
      tags:
        - Data Sources
      parameters:
        - name: id
          in: path
          required: true
          description: Data source ID
          schema:
            type: integer
      responses:
        '200':
          description: Data source details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataSource'
        '404':
          description: Data source not found
  /schema/:
    get:
      operationId: listSchemas
      summary: List schemas
      description: Returns schemas for a given data source.
      tags:
        - Schemas
      parameters:
        - name: ds_id
          in: query
          required: true
          description: Data source ID to filter schemas
          schema:
            type: integer
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
        - name: skip
          in: query
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of schemas
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchemaList'
  /schema/{id}/:
    get:
      operationId: getSchema
      summary: Get a schema
      description: Returns details for a specific schema.
      tags:
        - Schemas
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Schema details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Schema'
  /table/:
    get:
      operationId: listTables
      summary: List tables
      description: Returns tables for a given schema or data source.
      tags:
        - Tables
      parameters:
        - name: schema_id
          in: query
          description: Schema ID to filter tables
          schema:
            type: integer
        - name: ds_id
          in: query
          description: Data source ID to filter tables
          schema:
            type: integer
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
        - name: skip
          in: query
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of tables
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TableList'
  /table/{id}/:
    get:
      operationId: getTable
      summary: Get a table
      description: Returns metadata for a specific table.
      tags:
        - Tables
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: Table details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Table'
  /attribute/:
    get:
      operationId: listColumns
      summary: List columns
      description: Returns columns for a given table.
      tags:
        - Columns
      parameters:
        - name: table_id
          in: query
          required: true
          description: Table ID to filter columns
          schema:
            type: integer
        - name: limit
          in: query
          schema:
            type: integer
            default: 100
        - name: skip
          in: query
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: List of columns
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ColumnList'
  /custom_field_value/:
    get:
      operationId: listCustomFieldValues
      summary: List custom field values
      description: Returns custom field values for catalog objects.
      tags:
        - Custom Fields
      parameters:
        - name: object_type
          in: query
          description: Type of catalog object (table, column, datasource, etc.)
          schema:
            type: string
        - name: object_id
          in: query
          description: ID of the catalog object
          schema:
            type: integer
      responses:
        '200':
          description: Custom field values
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomFieldValueList'
    put:
      operationId: updateCustomFieldValues
      summary: Update custom field values
      description: Batch update custom field values for catalog objects.
      tags:
        - Custom Fields
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomFieldValueUpdateList'
      responses:
        '200':
          description: Updated successfully
        '400':
          description: Invalid request
components:
  securitySchemes:
    BearerToken:
      type: http
      scheme: bearer
      description: API access token obtained from /integration/v1/createRefreshToken/
  schemas:
    DataSource:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier
        title:
          type: string
          description: Display title
        description:
          type: string
          description: Data source description
        dbtype:
          type: string
          description: Database type (postgresql, mysql, snowflake, etc.)
        host:
          type: string
          description: Database host
        port:
          type: integer
          description: Database port
        db_username:
          type: string
          description: Database username
        is_virtual:
          type: boolean
          description: Whether this is a virtual data source
        url:
          type: string
          format: uri
          description: Alation catalog URL for this data source
    DataSourceList:
      type: array
      items:
        $ref: '#/components/schemas/DataSource'
    Schema:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        title:
          type: string
        description:
          type: string
        ds_id:
          type: integer
          description: Parent data source ID
        url:
          type: string
          format: uri
    SchemaList:
      type: array
      items:
        $ref: '#/components/schemas/Schema'
    Table:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        title:
          type: string
        description:
          type: string
        schema_id:
          type: integer
        ds_id:
          type: integer
        table_type:
          type: string
          enum: [TABLE, VIEW, EXTERNAL]
        url:
          type: string
          format: uri
    TableList:
      type: array
      items:
        $ref: '#/components/schemas/Table'
    Column:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        title:
          type: string
        description:
          type: string
        data_type:
          type: string
        table_id:
          type: integer
        ds_id:
          type: integer
        is_nullable:
          type: boolean
        is_primary_key:
          type: boolean
    ColumnList:
      type: array
      items:
        $ref: '#/components/schemas/Column'
    CustomFieldValue:
      type: object
      properties:
        field_id:
          type: integer
        field_name:
          type: string
        object_type:
          type: string
        object_id:
          type: integer
        value:
          description: Field value (string, array, or object depending on field type)
    CustomFieldValueList:
      type: array
      items:
        $ref: '#/components/schemas/CustomFieldValue'
    CustomFieldValueUpdateList:
      type: array
      items:
        type: object
        properties:
          field_id:
            type: integer
          object_type:
            type: string
          object_id:
            type: integer
          value:
            description: New field value