Lightdash Integrations API

The Integrations API from Lightdash — 10 operation(s) for integrations.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

lightdash-integrations-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Lightdash AiAgents Integrations API
  version: 0.3156.1
  description: 'Open API documentation for all public Lightdash API endpoints. # Authentication Before you get started, you might need to create a Personal Access Token to authenticate via the API. You can create a token by following this guide: https://docs.lightdash.com/references/personal_tokens

    '
  license:
    name: MIT
  contact:
    name: Lightdash Support
    email: support@lightdash.com
    url: https://docs.lightdash.com/help-and-contact/contact/contact_info/
servers:
- url: /
tags:
- name: Integrations
paths:
  /api/v1/slack/channels:
    get:
      operationId: getSlackChannels
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSlackChannelsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Get slack channels
      summary: Get Slack channels
      tags:
      - Integrations
      security: []
      parameters:
      - in: query
        name: search
        required: false
        schema:
          type: string
      - in: query
        name: excludeArchived
        required: false
        schema:
          type: boolean
      - in: query
        name: excludeDms
        required: false
        schema:
          type: boolean
      - in: query
        name: excludeGroups
        required: false
        schema:
          type: boolean
      - in: query
        name: forceRefresh
        required: false
        schema:
          type: boolean
      - in: query
        name: includeChannelIds
        required: false
        schema:
          type: string
  /api/v1/slack/channels/{channelId}:
    get:
      operationId: getSlackChannelById
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSlackChannelResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: 'Look up a single Slack channel by ID. Used for on-demand fetching when

        user pastes a channel ID not in the cache.'
      summary: Lookup channel
      tags:
      - Integrations
      security: []
      parameters:
      - description: Slack channel ID (e.g., C01234567)
        in: path
        name: channelId
        required: true
        schema:
          type: string
  /api/v1/slack/custom-settings:
    put:
      operationId: UpdateCustomSettings
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSlackCustomSettingsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Update slack notification channel to send notifications to scheduled jobs fail
      summary: Update Slack custom settings
      tags:
      - Integrations
      security: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlackAppCustomSettings'
  /api/v1/slack/is-authenticated:
    get:
      operationId: IsSlackOpenIdLinked
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSuccessEmpty'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Check if the user has an OpenID identity for Slack
      summary: Check Slack OpenID link status
      tags:
      - Integrations
      security: []
      parameters: []
  /api/v1/slack:
    get:
      operationId: getSlackInstallation
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSlackGetInstallationResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Get Slack installation details for the organization
      summary: Get Slack installation
      tags:
      - Integrations
      security: []
      parameters: []
    delete:
      operationId: deleteSlackInstall
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSuccessEmpty'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Delete the Slack installation for the organization
      summary: Delete Slack installation
      tags:
      - Integrations
      security: []
      parameters: []
  /api/v1/slack/image/{nanoId}:
    get:
      operationId: getSlackImage
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: string
                format: byte
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Get a Slack image by nanoId
      summary: Get Slack image
      tags:
      - Integrations
      security: []
      parameters: []
  /api/v1/slack/preview/{id}:
    get:
      operationId: getSlackPreview
      responses:
        '302':
          description: Redirect
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: 'Get a Slack unfurl preview image via redirect to a fresh signed URL.

        Falls back to a placeholder image if the preview is not found.'
      summary: Get Slack preview
      tags:
      - Integrations
      security: []
      parameters:
      - in: path
        name: id
        required: true
        schema:
          type: string
  /api/v1/slack/install:
    get:
      operationId: installSlack
      responses:
        '200':
          description: Success
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Start the Slack installation flow
      summary: Install Slack
      tags:
      - Integrations
      security: []
      parameters: []
  /api/v1/gdrive/get-access-token:
    get:
      operationId: getAccessToken
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiGdriveAccessTokenResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Get access token for google drive
      summary: Get Google Drive access token
      tags:
      - Integrations
      security: []
      parameters: []
  /api/v1/gdrive/upload-gsheet:
    post:
      operationId: uploadGsheet
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiJobScheduledResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Upload results from query to Google Sheet
      summary: Upload to Google Sheet
      tags:
      - Integrations
      security: []
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadMetricGsheet'
components:
  schemas:
    CustomFormat:
      properties:
        type:
          $ref: '#/components/schemas/CustomFormatType'
          description: Format type
        round:
          type: number
          format: double
          description: Number of decimal places
        separator:
          $ref: '#/components/schemas/NumberSeparator'
          description: Number separator style
        currency:
          type: string
          description: Currency code (e.g., USD, GBP, EUR)
        compact:
          $ref: '#/components/schemas/CompactOrAlias'
          description: Compact format for large numbers (K, M, B, T) or byte units
        prefix:
          type: string
          description: Prefix to prepend to formatted values
        suffix:
          type: string
          description: Suffix to append to formatted values
        timeInterval:
          $ref: '#/components/schemas/TimeFrames'
          description: Time interval for date formatting
        custom:
          type: string
          description: Custom format string
      required:
      - type
      type: object
      additionalProperties: true
    SortField:
      properties:
        pivotValues:
          items:
            $ref: '#/components/schemas/PivotSortAnchor'
          type: array
          description: Pins the row-sort anchor to a specific pivot column. Ignored for non-pivoted results.
        nullsFirst:
          type: boolean
          description: Sort null values first
        descending:
          type: boolean
          description: Sort in descending order
        fieldId:
          type: string
          description: Field ID to sort by
      required:
      - descending
      - fieldId
      type: object
    WindowFunctionType:
      enum:
      - row_number
      - percent_rank
      - cume_dist
      - rank
      - sum
      - avg
      - count
      - min
      - max
      type: string
    MetricType:
      enum:
      - percentile
      - average
      - count
      - count_distinct
      - sum
      - sum_distinct
      - average_distinct
      - min
      - max
      - percent_of_previous
      - percent_of_total
      - running_total
      - number
      - median
      - string
      - date
      - timestamp
      - boolean
      type: string
    ApiSuccess_SlackSettings-or-undefined_:
      properties:
        results:
          $ref: '#/components/schemas/SlackSettings'
        status:
          type: string
          enum:
          - ok
          nullable: false
      required:
      - status
      type: object
    CustomBinDimension:
      anyOf:
      - $ref: '#/components/schemas/FixedNumberBinDimension'
      - $ref: '#/components/schemas/FixedWidthBinDimension'
      - $ref: '#/components/schemas/CustomRangeBinDimension'
      - $ref: '#/components/schemas/CustomGroupBinDimension'
    CustomRangeBinDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.BIN'
          description: Type of custom dimension (bin or sql)
        dimensionId:
          $ref: '#/components/schemas/FieldId'
          description: Field ID of the parent dimension to bin
        binType:
          $ref: '#/components/schemas/BinType.CUSTOM_RANGE'
        customRange:
          items:
            $ref: '#/components/schemas/BinRange'
          type: array
      required:
      - id
      - name
      - table
      - type
      - dimensionId
      - binType
      - customRange
      type: object
      additionalProperties: true
    NumberSeparator:
      enum:
      - default
      - commaPeriod
      - spacePeriod
      - periodComma
      - noSeparatorPeriod
      - apostrophePeriod
      type: string
    PivotSortAnchor:
      properties:
        value:
          anyOf:
          - type: string
          - type: number
            format: double
          - type: boolean
          nullable: true
        reference:
          type: string
      required:
      - value
      - reference
      type: object
      description: 'Coordinates of a single pivot column, used to anchor a row sort to that

        specific column when results are pivoted.'
    FrameType:
      enum:
      - rows
      - range
      type: string
    TableCalculationBase:
      properties:
        type:
          $ref: '#/components/schemas/TableCalculationType'
          description: Data type of the calculation result
        format:
          $ref: '#/components/schemas/CustomFormat'
          description: Formatting options for the calculation
        displayName:
          type: string
          description: Display name shown in the UI
        name:
          type: string
          description: Internal name of the table calculation
        index:
          type: number
          format: double
          description: Display order index
      required:
      - displayName
      - name
      type: object
    FiltersResponse:
      properties:
        tableCalculations:
          $ref: '#/components/schemas/FilterGroupResponse'
        metrics:
          $ref: '#/components/schemas/FilterGroupResponse'
        dimensions:
          $ref: '#/components/schemas/FilterGroupResponse'
      type: object
    TableCalculationTemplate:
      anyOf:
      - properties:
          partitionBy:
            items:
              type: string
            type: array
          orderBy:
            items:
              properties:
                order:
                  type: string
                  enum:
                  - asc
                  - desc
                  - null
                  nullable: true
                fieldId:
                  type: string
              required:
              - order
              - fieldId
              type: object
            type: array
            description: Fields to order by for window functions
          fieldId:
            type: string
            description: Field ID to apply the template to
          type:
            $ref: '#/components/schemas/TableCalculationTemplateType.PERCENT_CHANGE_FROM_PREVIOUS'
            description: Type of template calculation
        required:
        - orderBy
        - fieldId
        - type
        type: object
      - properties:
          partitionBy:
            items:
              type: string
            type: array
          orderBy:
            items:
              properties:
                order:
                  type: string
                  enum:
                  - asc
                  - desc
                  - null
                  nullable: true
                fieldId:
                  type: string
              required:
              - order
              - fieldId
              type: object
            type: array
            description: Fields to order by for window functions
          fieldId:
            type: string
            description: Field ID to apply the template to
          type:
            $ref: '#/components/schemas/TableCalculationTemplateType.PERCENT_OF_PREVIOUS_VALUE'
            description: Type of template calculation
        required:
        - orderBy
        - fieldId
        - type
        type: object
      - properties:
          partitionBy:
            items:
              type: string
            type: array
            description: Fields to partition by
          fieldId:
            type: string
            description: Field ID to apply the template to
          type:
            $ref: '#/components/schemas/TableCalculationTemplateType.PERCENT_OF_COLUMN_TOTAL'
            description: Type of template calculation
        required:
        - fieldId
        - type
        type: object
      - properties:
          fieldId:
            type: string
            description: Field ID to apply the template to
          type:
            $ref: '#/components/schemas/TableCalculationTemplateType.RANK_IN_COLUMN'
            description: Type of template calculation
        required:
        - fieldId
        - type
        type: object
      - properties:
          fieldId:
            type: string
            description: Field ID to apply the template to
          type:
            $ref: '#/components/schemas/TableCalculationTemplateType.RUNNING_TOTAL'
            description: Type of template calculation
        required:
        - fieldId
        - type
        type: object
      - properties:
          frame:
            $ref: '#/components/schemas/FrameClause'
            description: Frame clause for window functions
          partitionBy:
            items:
              type: string
            type: array
            description: Fields to partition by for window functions
          orderBy:
            items:
              properties:
                order:
                  type: string
                  enum:
                  - asc
                  - desc
                  - null
                  nullable: true
                fieldId:
                  type: string
              required:
              - order
              - fieldId
              type: object
            type: array
            description: Fields to order by for window functions
          fieldId:
            type: string
            nullable: true
            description: Field ID to apply the template to
          windowFunction:
            $ref: '#/components/schemas/WindowFunctionType'
            description: Window function type
          type:
            $ref: '#/components/schemas/TableCalculationTemplateType.WINDOW_FUNCTION'
            description: Type of template calculation
        required:
        - partitionBy
        - orderBy
        - fieldId
        - windowFunction
        - type
        type: object
    FilterGroupResponse:
      anyOf:
      - properties:
          or:
            items:
              $ref: '#/components/schemas/AnyType'
            type: array
          id:
            type: string
        required:
        - or
        - id
        type: object
      - properties:
          and:
            items:
              $ref: '#/components/schemas/AnyType'
            type: array
          id:
            type: string
        required:
        - and
        - id
        type: object
    UploadMetricGsheet:
      properties:
        pivotConfig:
          $ref: '#/components/schemas/PivotConfig'
        hiddenFields:
          items:
            type: string
          type: array
        customLabels:
          $ref: '#/components/schemas/CustomLabel'
        columnOrder:
          items:
            type: string
          type: array
        showTableNames:
          type: boolean
        metricQuery:
          $ref: '#/components/schemas/MetricQueryResponse'
        exploreId:
          type: string
        projectUuid:
          type: string
      required:
      - columnOrder
      - showTableNames
      - metricQuery
      - exploreId
      - projectUuid
      type: object
    FieldId:
      type: string
    GroupValueRule:
      properties:
        value:
          type: string
        matchType:
          $ref: '#/components/schemas/GroupValueMatchType'
      required:
      - value
      - matchType
      type: object
    CustomLabel:
      properties: {}
      additionalProperties:
        type: string
      type: object
    TableCalculationTemplateType.RANK_IN_COLUMN:
      enum:
      - rank_in_column
      type: string
    FrameClause:
      properties:
        end:
          $ref: '#/components/schemas/FrameBoundary'
          description: End boundary of the frame
        start:
          $ref: '#/components/schemas/FrameBoundary'
          description: Start boundary of the frame
        frameType:
          $ref: '#/components/schemas/FrameType'
          description: Type of frame (ROWS or RANGE)
      required:
      - end
      - frameType
      type: object
    TemplateTableCalculation:
      allOf:
      - $ref: '#/components/schemas/TableCalculationBase'
      - properties:
          template:
            $ref: '#/components/schemas/TableCalculationTemplate'
            description: Template-based calculation (alternative to sql)
        required:
        - template
        type: object
    ApiSlackCustomSettingsResponse:
      $ref: '#/components/schemas/ApiSuccessEmpty'
    Pick_CompiledDimension.label-or-name-or-table_:
      properties:
        name:
          type: string
        label:
          type: string
        table:
          type: string
      required:
      - name
      - label
      - table
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    TableCalculationTemplateType.PERCENT_OF_COLUMN_TOTAL:
      enum:
      - percent_of_column_total
      type: string
    TableCalculationTemplateType.WINDOW_FUNCTION:
      enum:
      - window_function
      type: string
    ApiSuccess_SlackChannel-Array-or-undefined_:
      properties:
        results:
          items:
            $ref: '#/components/schemas/SlackChannel'
          type: array
        status:
          type: string
          enum:
          - ok
          nullable: false
      required:
      - status
      type: object
    BinType.FIXED_WIDTH:
      enum:
      - fixed_width
      type: string
    ApiSlackChannelsResponse:
      $ref: '#/components/schemas/ApiSuccess_SlackChannel-Array-or-undefined_'
    FormulaTableCalculation:
      allOf:
      - $ref: '#/components/schemas/TableCalculationBase'
      - properties:
          formula:
            type: string
            description: Spreadsheet-like formula compiled to SQL at query time
        required:
        - formula
        type: object
    AnyType:
      description: 'This AnyType is an alias for any

        The goal is to make it easier to identify any type in the codebase

        without having to eslint-disable all the time

        These are only used on legacy `any` types, don''t use it for new types.

        This is added on a separate file to avoid circular dependencies.'
    BinRange:
      properties:
        to:
          type: number
          format: double
          description: End value for this bin range (undefined for the last range)
        from:
          type: number
          format: double
          description: Start value for this bin range (undefined for the first range)
      type: object
    ApiSuccessEmpty:
      properties:
        results: {}
        status:
          type: string
          enum:
          - ok
          nullable: false
      required:
      - status
      type: object
    TableCalculation:
      anyOf:
      - $ref: '#/components/schemas/SqlTableCalculation'
      - $ref: '#/components/schemas/TemplateTableCalculation'
      - $ref: '#/components/schemas/FormulaTableCalculation'
    TimeFrames:
      enum:
      - RAW
      - YEAR
      - QUARTER
      - MONTH
      - WEEK
      - DAY
      - HOUR
      - MINUTE
      - SECOND
      - MILLISECOND
      - DAY_OF_WEEK_INDEX
      - DAY_OF_MONTH_NUM
      - DAY_OF_YEAR_NUM
      - WEEK_NUM
      - MONTH_NUM
      - QUARTER_NUM
      - YEAR_NUM
      - DAY_OF_WEEK_NAME
      - MONTH_NAME
      - QUARTER_NAME
      - HOUR_OF_DAY_NUM
      - MINUTE_OF_HOUR_NUM
      type: string
    ApiSlackChannelResponse:
      $ref: '#/components/schemas/ApiSuccess_SlackChannel-or-null_'
    ApiErrorPayload:
      properties:
        error:
          properties:
            data:
              $ref: '#/components/schemas/AnyType'
              description: Optional data containing details of the error
            message:
              type: string
              description: A friendly message summarising the error
            name:
              type: string
              description: Unique name for the type of error
            statusCode:
              type: number
              format: integer
              description: HTTP status code
          required:
          - name
          - statusCode
          type: object
        status:
          type: string
          enum:
          - error
          nullable: false
      required:
      - error
      - status
      type: object
      description: 'The Error object is returned from the api any time there is an error.

        The message contains'
    SlackSettings:
      properties:
        unfurlsEnabled:
          type: boolean
        aiMultiAgentProjectUuids:
          items:
            type: string
          type: array
          nullable: true
        aiMultiAgentChannelId:
          type: string
        aiRequireOAuth:
          type: boolean
        hasRequiredScopes:
          type: boolean
        aiThreadAccessConsent:
          type: boolean
        slackChannelProjectMappings:
          items:
            $ref: '#/components/schemas/SlackChannelProjectMapping'
          type: array
        appProfilePhotoUrl:
          type: string
        notificationChannel:
          type: string
        scopes:
          items:
            type: string
          type: array
        token:
          type: string
        createdAt:
          type: string
          format: date-time
        appName:
          type: string
        slackTeamName:
          type: string
        organizationUuid:
          type: string
      required:
      - hasRequiredScopes
      - scopes
      - createdAt
      - slackTeamName
      - organizationUuid
      type: object
    FilterOperator:
      enum:
      - isNull
      - notNull
      - equals
      - notEquals
      - startsWith
      - endsWith
      - include
      - doesNotInclude
      - lessThan
      - lessThanOrEqual
      - greaterThan
      - greaterThanOrEqual
      - inThePast
      - notInThePast
      - inTheNext
      - inTheCurrent
      - notInTheCurrent
      - inBetween
      - notInBetween
      - inPeriodToDate
      type: string
    SqlTableCalculation:
      allOf:
      - $ref: '#/components/schemas/TableCalculationBase'
      - properties:
          sql:
            type: string
            description: SQL expression for the calculation (can reference fields with ${table.field})
        required:
        - sql
        type: object
    ApiSuccess_SlackChannel-or-null_:
      properties:
        results:
          allOf:
          - $ref: '#/components/schemas/SlackChannel'
          nullable: true
        status:
          type: string
          enum:
          - ok
          nullable: false
      required:
      - results
      - status
      type: object
    ApiGdriveAccessTokenResponse:
      properties:
        results:
          type: string
        status:
          type: string
          enum:
          - ok
          nullable: false
      required:
      - results
      - status
      type: object
    FixedWidthBinDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.BIN'
          description: Type of custom dimension (bin or sql)
        dimensionId:
          $ref: '#/components/schemas/FieldId'
          description: Field ID of the parent dimension to bin
        binType:
          $ref: '#/components/schemas/BinType.FIXED_WIDTH'
        binWidth:
          type: number
          format: double
      required:
      - id
      - name
      - table
      - type
      - dimensionId
      - binType
      - binWidth
      type: object
      additionalProperties: true
    CustomDimensionType.BIN:
      enum:
      - bin
      type: string
    CustomFormatType:
      enum:
      - default
      - percent
      - currency
      - number
      - id
      - date
      - timestamp
      - bytes_si
      - bytes_iec
      - custom
      type: string
    FixedNumberBinDimension:
      properties:
        id:
          type: string
          description: Unique identifier for the custom dimension
        name:
          type: string
          description: Display name for the custom dimension
        table:
          type: string
          description: Table this custom dimension belongs to
        type:
          $ref: '#/components/schemas/CustomDimensionType.BIN'
          description: Type of custom dimension (bin or sql)
        dimensionId:
          $ref: '#/components/schemas/FieldId'
          description: Field ID of the parent dimension to bin
        binType:
          $ref: '#/components/schemas/BinType.FIXED_NUMBER'
        binNumber:
          type: number
          format: double
      required:
      - id
      - name
      - table
      - type
      - dimensionId
      - binType
      - binNumber
      type: object
      additionalProperties: true
    BinType.CUSTOM_RANGE:
      enum:
      - custom_range
      type: string
    SlackChannelProjectMapping:
      properties:
        availableTags:
          items:
            type: string
          type: array
          nullable: true
        slackChannelId:
          type: string
        projectUuid:
          type: string
      required:
      - availableTags
      - slackChannelId
      - projectUuid
      type: object
    ApiSlackGetInstallationResponse:
      $ref: '#/components/schemas/ApiSuccess_SlackSettings-or-undefined_'
    CompactOrAlias:
      anyOf:
      - $ref: '#/components/schemas/Compact'
      - type: string
        enum:
        - K
        - thousand
        - M
        - million
        - B
        - billion
        - T
        - trillion
        - KB
        - kilobyte
        - MB
        - megabyte
        - GB
        - gigabyte
        - TB
        - terabyte
        - PB
        - petabyte
        - KiB
        - kibibyte
        - MiB
        - mebibyte
        - GiB
        - gibibyte
        - TiB
        - tebibyte
        - PiB
        - pebibyte
    MetricQueryResponse:
      properties:
        metadata:
          properties:
            hasADateDimension:
              $ref: '#/components/schemas/Pick_CompiledDimension.label-or-name-or-table_'
          required:
          - hasADateDimension
          type: object
        customDimensions:
          items:
            $ref: '#/components/schemas/CustomDimension'
          type: array
        additionalMetrics:
          items:
            $ref: '#/components/schemas/AdditionalMetric'
          type: array
        tableCalculations:
          items:
            $ref: '#/components/schemas/TableCalculation'
          type: array
        limit:
          type: number
          format: double
        sorts:
          items:
            $ref: '#/components/schemas/SortField'
          type: array
        filters:
          $ref: '#/components/schemas/FiltersResponse'
        metrics:
          items:
            $ref: '#/components/schemas/FieldId'
          type: array
        dimensions:
          items:
            $ref: '#/components/schemas/FieldId'
          type: array
        exploreName:
          type: string
      required:
      - tableCalculations
      - limit
      - sorts
      - filters
      - metrics
      - dimensions
      - exploreName
      type: object
    PivotConfig:
      properties:
        hiddenDimensionFieldIds:
          items:
            type: string
          type: array
          description: 'Dimensions (row-index or pivot-column-header) hidden from the rendered

            pivot and from exports. The dimension still participates in the

            underlying query and can drive sort order; it just doesn''t render and

            is filtered out of CSV/XLSX. Mirrors `hiddenMetricFieldIds` for the

            dimension side.'
        rowTotals:
          type: boolean
        colu

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightdash/refs/heads/main/openapi/lightdash-integrations-api-openapi.yml