openapi: 3.0.0 info: title: Lightdash AiAgents Query 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: Query description: These routes allow users to execute and manage queries against their data warehouse. This includes metric queries, SQL queries, and retrieving query results. paths: /api/v2/projects/{projectUuid}/query/{queryUuid}: get: operationId: getAsyncQueryResults responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiGetAsyncQueryResultsResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Retrieves paginated results from a previously executed async query using its UUID summary: Get results tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string - description: The UUID of the async query to retrieve results for in: path name: queryUuid required: true schema: type: string - description: Page number for pagination (starts at 1) in: query name: page required: false schema: format: double type: number - description: 'Number of results per page (default: 500, max: 5000)' in: query name: pageSize required: false schema: format: double type: number /api/v2/projects/{projectUuid}/query/{queryUuid}/cancel: post: operationId: cancelAsyncQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccessEmpty' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Cancels a running async query and discards any partial results summary: Cancel query tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string - description: The UUID of the async query to cancel in: path name: queryUuid required: true schema: type: string /api/v2/projects/{projectUuid}/query/{queryUuid}/calculate-total: post: operationId: executeAsyncCalculateTotal responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncMetricQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Calculates totals for a previously-executed query, referenced by its queryUuid. Re-runs the source query's MetricQuery against the warehouse so totals are correct for every metric type (count distinct, average, ratio, etc.) — unlike client-side cell summation, which only works for sum/count. The requested `kind` selects which totals to compute. summary: Calculate totals tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string - description: The UUID of the previously-executed query to compute totals from in: path name: queryUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncCalculateTotalRequestParams' /api/v2/projects/{projectUuid}/query/metric-query: post: operationId: executeAsyncMetricQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncMetricQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Executes a metric query asynchronously against your data warehouse using dimensions, metrics, filters, and sorts summary: Execute metric query tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncMetricQueryRequestParams' /api/v2/projects/{projectUuid}/query/field-values: post: operationId: executeAsyncFieldValueSearch responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncFieldValueSearchResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Searches for unique field values asynchronously, returning a query UUID to poll for results summary: Search field values tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncFieldValueSearchRequestParams' /api/v2/projects/{projectUuid}/query/chart: post: operationId: executeAsyncSavedChartQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncMetricQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Executes a saved chart query asynchronously with optional parameter overrides summary: Execute saved chart tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncSavedChartRequestParams' /api/v2/projects/{projectUuid}/query/dashboard-chart: post: operationId: executeAsyncDashboardChartQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncDashboardChartQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Executes a chart within a dashboard context asynchronously with inherited dashboard filters summary: Execute dashboard chart tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncDashboardChartRequestParams' /api/v2/projects/{projectUuid}/query/underlying-data: post: operationId: executeAsyncUnderlyingDataQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncMetricQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Executes a query to retrieve underlying raw data for drilling down into aggregated values summary: Execute underlying data tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncUnderlyingDataRequestParams' /api/v2/projects/{projectUuid}/query/sql: post: operationId: executeAsyncSqlQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncSqlQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Executes a raw SQL query asynchronously against your data warehouse for custom queries summary: Execute SQL query tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncSqlQueryRequestParams' /api/v2/projects/{projectUuid}/query/sql-chart: post: operationId: executeAsyncSqlChartQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncSqlQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Executes a saved SQL chart query asynchronously with optional chart configurations summary: Execute SQL chart tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncSqlChartRequestParams' /api/v2/projects/{projectUuid}/query/dashboard-sql-chart: post: operationId: executeAsyncDashboardSqlChartQuery responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiExecuteAsyncDashboardSqlChartQueryResults_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Executes a SQL chart within a dashboard context asynchronously with inherited filters summary: Execute dashboard SQL chart tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExecuteAsyncDashboardSqlChartRequestParams' /api/v2/projects/{projectUuid}/query/{queryUuid}/download: post: operationId: downloadResults responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiSuccess_ApiDownloadAsyncQueryResults-or-ApiDownloadAsyncQueryResultsAsCsv-or-ApiDownloadAsyncQueryResultsAsXlsx_' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Downloads query results in various formats with custom formatting options summary: Download results tags: - Query deprecated: true security: [] parameters: - in: path name: projectUuid required: true schema: type: string - description: The UUID of the completed async query to download in: path name: queryUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Omit_DownloadAsyncQueryResultsRequestParams.queryUuid_' /api/v2/projects/{projectUuid}/query/{queryUuid}/schedule-download: post: operationId: scheduleDownloadResults responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ApiJobScheduledResponse' default: description: Error content: application/json: schema: $ref: '#/components/schemas/ApiErrorPayload' description: Downloads query results in various formats with custom formatting options summary: Download results tags: - Query security: [] parameters: - in: path name: projectUuid required: true schema: type: string - description: The UUID of the completed async query to download in: path name: queryUuid required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Omit_DownloadAsyncQueryResultsRequestParams.queryUuid_' components: schemas: DateZoom: properties: xAxisFieldId: type: string granularity: anyOf: - $ref: '#/components/schemas/DateGranularity' - type: string type: object ApiDownloadAsyncQueryResults: properties: fileUrl: type: string required: - fileUrl type: object ApiExecuteAsyncMetricQueryResults: allOf: - $ref: '#/components/schemas/ApiExecuteAsyncQueryResultsCommon' - properties: warnings: items: $ref: '#/components/schemas/QueryWarning' type: array fields: $ref: '#/components/schemas/ItemsMap' metricQuery: $ref: '#/components/schemas/MetricQuery' required: - warnings - fields - metricQuery type: object ApiSuccess_ApiDownloadAsyncQueryResults-or-ApiDownloadAsyncQueryResultsAsCsv-or-ApiDownloadAsyncQueryResultsAsXlsx_: properties: results: anyOf: - $ref: '#/components/schemas/ApiDownloadAsyncQueryResults' - $ref: '#/components/schemas/ApiDownloadAsyncQueryResultsAsCsv' - $ref: '#/components/schemas/ApiDownloadAsyncQueryResultsAsXlsx' status: type: string enum: - ok nullable: false required: - results - status type: object FieldUrl: properties: label: type: string url: type: string required: - label - url type: object ApiExecuteAsyncFieldValueSearchResults: properties: cacheMetadata: $ref: '#/components/schemas/CacheMetadata' queryUuid: type: string required: - cacheMetadata - queryUuid type: object DashboardTileTarget: anyOf: - $ref: '#/components/schemas/DashboardFieldTarget' - type: boolean enum: - false ApiExecuteAsyncQueryResultsCommon: properties: resolvedTimezone: type: string nullable: true usedParametersValues: $ref: '#/components/schemas/ParametersValuesMap' parameterReferences: items: type: string type: array cacheMetadata: $ref: '#/components/schemas/CacheMetadata' queryUuid: type: string required: - resolvedTimezone - usedParametersValues - parameterReferences - cacheMetadata - queryUuid type: object DateGranularity: enum: - Second - Minute - Hour - Day - Week - Month - Quarter - Year type: string ReadyQueryResultsPage: allOf: - $ref: '#/components/schemas/ResultsPaginationMetadata_ResultRow_' - properties: pivotDetails: properties: passthroughDimensions: items: $ref: '#/components/schemas/GroupByColumn' type: array originalColumns: $ref: '#/components/schemas/ResultColumns' sortBy: $ref: '#/components/schemas/SortBy' groupByColumns: items: $ref: '#/components/schemas/GroupByColumn' type: array valuesColumns: items: $ref: '#/components/schemas/PivotValuesColumn' type: array indexColumn: anyOf: - $ref: '#/components/schemas/PivotIndexColum' - items: $ref: '#/components/schemas/PivotIndexColum' type: array totalColumnCount: type: number format: double nullable: true required: - originalColumns - valuesColumns - totalColumnCount type: object nullable: true status: $ref: '#/components/schemas/QueryHistoryStatus.READY' metadata: $ref: '#/components/schemas/QueryResultsMetadata' rows: items: $ref: '#/components/schemas/ResultRow' type: array columns: $ref: '#/components/schemas/ResultColumns' queryUuid: type: string required: - pivotDetails - status - metadata - rows - columns - queryUuid type: object Pick_CompiledDimension.name-or-label-or-table_: properties: {} type: object description: From T, pick a set of properties whose keys are in the union K PivotConfiguration: properties: pivotColumnsOrder: items: $ref: '#/components/schemas/GroupByColumn' type: array description: 'Declared order of the pivot-column dimensions (visible `groupByColumns` plus hidden `sortOnlyDimensions`) as they appear in the chart''s `pivotConfig.columns`. `column_ranking` orders columns by this sequence so a hidden sort-only dim sorts at its DECLARED position — hiding a dim then leaves column order identical to when it was visible, instead of hoisting the hidden dim to the front of the ORDER BY. Passthrough (hidden, non-sort) dims are excluded since they don''t drive sort. When omitted, ordering falls back to hoisting sort-only sort targets to the front (legacy behavior).' passthroughDimensions: items: $ref: '#/components/schemas/GroupByColumn' type: array description: 'Hidden pivot-column dimensions that are NOT sort targets but still need their values carried through the SQL pipeline so that other fields'' `richText` / `image:` templates can reference them via `row...raw`. They participate in `group_by_query` SELECT and GROUP BY (same as sortOnlyDimensions) but do NOT affect `column_ranking` ORDER BY (they don''t drive sort). Without this bucket the dim would be dropped entirely from the query and `row.*.raw` references would silently resolve to undefined.' sortOnlyDimensions: items: $ref: '#/components/schemas/GroupByColumn' type: array description: 'Dimensions referenced by ORDER BY but NOT spread into pivot columns. Used when a user hides a dim that''s part of `pivotConfig.columns` and has a sort entry on it: the dim still ranks column order via the GROUP BY / ORDER BY pipeline, but it doesn''t become a pivot column header level. Mirrors `sortOnlyColumns` (which serves the same purpose for metrics).' sortOnlyColumns: items: $ref: '#/components/schemas/ValuesColumn' type: array description: 'Metrics/table calculations needed for sort anchor CTEs but not for display. These are merged into valuesColumns for SQL generation in PivotQueryBuilder, but excluded from pivotDetails so they don''t appear as chart series.' metricsAsRows: type: boolean description: 'When true, metrics are displayed as rows instead of columns. This affects column limit calculation - when metrics are rows, we don''t need to divide the column limit by the number of metrics. Defaults to false for backward compatibility (SQL runner behavior).' sortBy: $ref: '#/components/schemas/SortBy' groupByColumns: items: $ref: '#/components/schemas/GroupByColumn' type: array valuesColumns: items: $ref: '#/components/schemas/ValuesColumn' type: array indexColumn: anyOf: - $ref: '#/components/schemas/PivotIndexColum' - items: $ref: '#/components/schemas/PivotIndexColum' type: array required: - valuesColumns type: object Metric: properties: fieldType: $ref: '#/components/schemas/FieldType.METRIC' type: $ref: '#/components/schemas/MetricType' name: type: string label: type: string table: type: string tableLabel: type: string sql: type: string description: type: string source: $ref: '#/components/schemas/Source' hidden: type: boolean compact: $ref: '#/components/schemas/CompactOrAlias' round: type: number format: double format: anyOf: - $ref: '#/components/schemas/Format' - type: string separator: $ref: '#/components/schemas/NumberSeparator' description: 'Number separator style for grouping/decimal characters. Composes with `format` (including ECMA-376 expressions) and `formatOptions` — it only controls the separator characters, not the format shape.' groupLabel: type: string deprecated: true groups: items: type: string type: array urls: items: $ref: '#/components/schemas/FieldUrl' type: array index: type: number format: double tags: items: type: string type: array parameterReferences: items: type: string type: array showUnderlyingValues: items: type: string type: array filters: items: $ref: '#/components/schemas/MetricFilterRule' type: array percentile: type: number format: double distinctKeys: items: type: string type: array formatOptions: $ref: '#/components/schemas/CustomFormat' dimensionReference: type: string requiredAttributes: $ref: '#/components/schemas/Record_string.string-or-string-Array_' anyAttributes: $ref: '#/components/schemas/Record_string.string-or-string-Array_' defaultTimeDimension: $ref: '#/components/schemas/DefaultTimeDimension' spotlight: properties: owner: type: string defaultFilter: $ref: '#/components/schemas/MetricFilterRule' defaultSegment: type: string segmentBy: items: type: string type: array filterBy: items: type: string type: array categories: items: type: string type: array visibility: type: string enum: - show - hide required: - visibility type: object drivers: items: type: string type: array aiHint: anyOf: - type: string - items: type: string type: array richText: type: string required: - fieldType - type - name - label - table - tableLabel - sql - hidden type: object additionalProperties: true CommonExecuteQueryRequestParams: properties: parameters: $ref: '#/components/schemas/ParametersValuesMap' usePreAggregateCache: type: boolean invalidateCache: type: boolean context: $ref: '#/components/schemas/QueryExecutionContext' type: object PreAggregateMissReason.NO_PRE_AGGREGATES_DEFINED: enum: - no_pre_aggregates_defined type: string QueryResultsPerformance: properties: queueTimeMs: type: number format: double nullable: true resultsPageExecutionMs: type: number format: double initialQueryExecutionMs: type: number format: double nullable: true required: - queueTimeMs - resultsPageExecutionMs - initialQueryExecutionMs type: object FieldType.METRIC: enum: - metric type: string FilterGroup: anyOf: - $ref: '#/components/schemas/OrFilterGroup' - $ref: '#/components/schemas/AndFilterGroup' 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' Pick_Metric.formatOptions_: properties: formatOptions: $ref: '#/components/schemas/CustomFormat' type: object description: From T, pick a set of properties whose keys are in the union K ResultRow: $ref: '#/components/schemas/Record_string._value-ResultValue__' ItemsMap: $ref: '#/components/schemas/Record_string.Field-or-TableCalculation-or-CustomDimension-or-Metric_' Pick_Dimension.formatOptions_: properties: formatOptions: $ref: '#/components/schemas/CustomFormat' type: object description: From T, pick a set of properties whose keys are in the union K ApiSuccess_ApiExecuteAsyncDashboardSqlChartQueryResults_: properties: results: $ref: '#/components/schemas/ApiExecuteAsyncDashboardSqlChartQueryResults' status: type: string enum: - ok nullable: false required: - results - status type: object ExecuteAsyncFieldValueSearchRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: forceRefresh: type: boolean filters: $ref: '#/components/schemas/AndFilterGroup' limit: type: number format: double search: type: string fieldId: type: string table: type: string required: - search - fieldId - table type: object OrFilterGroup: properties: or: items: $ref: '#/components/schemas/FilterGroupItem' type: array description: Array of filters or nested groups combined with OR logic id: type: string description: Unique identifier for the filter group required: - or - id 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 QueryWarning: properties: tables: items: type: string type: array fields: items: type: string type: array message: type: string required: - message type: object PreAggregateMissReason.NON_ADDITIVE_METRIC: enum: - non_additive_metric type: string QueryHistoryStatus.QUEUED: enum: - queued type: string DimensionOverrides: properties: {} additionalProperties: $ref: '#/components/schemas/Pick_Dimension.formatOptions_' type: object BinType.FIXED_NUMBER: enum: - fixed_number type: string ApiGetAsyncQueryResults: anyOf: - $ref: '#/components/schemas/ReadyQueryResultsPage' - properties: queryUuid: type: string status: anyOf: - $ref: '#/components/schemas/QueryHistoryStatus.PENDING' - $ref: '#/components/schemas/QueryHistoryStatus.QUEUED' - $ref: '#/components/schemas/QueryHistoryStatus.EXECUTING' - $ref: '#/components/schemas/QueryHistoryStatus.CANCELLED' required: - queryUuid - status type: object - properties: erroredAt: type: string format: date-time nullable: true error: type: string nullable: true queryUuid: type: string status: anyOf: - $ref: '#/components/schemas/QueryHistoryStatus.ERROR' - $ref: '#/components/schemas/QueryHistoryStatus.EXPIRED' required: - error - queryUuid - status type: object ResultColumn: properties: type: $ref: '#/components/schemas/DimensionType' reference: type: string required: - type - reference type: object Record_string.Field-or-TableCalculation-or-CustomDimension-or-Metric_: properties: {} additionalProperties: anyOf: - $ref: '#/components/schemas/Field' - $ref: '#/components/schemas/Metric' - $ref: '#/components/schemas/TableCalculation' - $ref: '#/components/schemas/CustomDimension' type: object description: Construct a type with a set of properties K of type T ApiGetAsyncQueryResultsResponse: properties: results: $ref: '#/components/schemas/ApiGetAsyncQueryResults' status: type: string enum: - ok nullable: false required: - results - status type: object DownloadFileType: enum: - csv - image - jsonl - s3_jsonl - xlsx type: string ExecuteAsyncSavedChartRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: pivotResults: type: boolean limit: type: number format: double nullable: true versionUuid: type: string chartUuid: type: string required: - chartUuid type: object TableCalculationTemplateType.PERCENT_OF_PREVIOUS_VALUE: enum: - percent_of_previous_value type: string ResultValue: properties: formatted: type: string raw: {} required: - formatted - raw type: object TableCalculationType: enum: - number - string - date - timestamp - boolean type: string CustomGroupBinDimension: 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_GROUP' customGroups: items: $ref: '#/components/schemas/BinGroup' type: array required: - id - name - table - type - dimensionId - binType - customGroups type: object additionalProperties: true Record_string.DashboardTileTarget_: properties: {} additionalProperties: $ref: '#/components/schemas/DashboardTileTarget' type: object description: Construct a type with a set of properties K of type T PreAggregateMissReason.EXPLORE_RESOLUTION_ERROR: enum: - explore_resolution_error type: string FrameBoundaryType: enum: - unbounded_preceding - preceding - current_row - following - unbounded_following type: string ApiJobScheduledResponse: properties: results: properties: jobId: type: string required: - jobId type: object status: type: string enum: - ok nullable: false required: - results - status type: object FormulaTableCalculation: allOf: - $ref: '#/components/schemas/TableCalculationBase' - properties: formula: type: string description: Spreadsheet-like formula compiled to SQL at query time required: - formula type: object PreAggregateMissReason.METRIC_NOT_IN_PRE_AGGREGATE: enum: - metric_not_in_pre_aggregate type: string DashboardFilterRule: allOf: - $ref: '#/components/schemas/FilterRule_FilterOperator.DashboardFieldTarget.AnyType.AnyType_' - properties: lockedTabUuids: items: type: string type: array description: 'Tab UUIDs where this filter is locked. When the active tab is in this list, viewers see the filter but cannot change it, and URL / embed filter overrides targeting the same field are ignored on that tab. Empty or omitted means the filter is not locked anywhere.' singleValue: type: boolean label: type: string tileTargets: $ref: '#/components/schemas/Record_string.DashboardTileTarget_' type: object FrameType: enum: - rows - range type: string Omit_DownloadAsyncQueryResultsRequestParams.queryUuid_: $ref: '#/components/schemas/Pick_DownloadAsyncQueryResultsRequestParams.Exclude_keyofDownloadAsyncQueryResultsRequestParams.queryUuid__' description: Construct a type with the properties of T except for those in type K. FieldId: type: string SortByDirection: enum: - ASC - DESC type: string Pick_MetricQueryRequest.Exclude_keyofMetricQueryRequest.csvLimit__: properties: dateZoom: $ref: '#/components/schemas/DateZoom' limit: type: number format: double timezone: type: string filters: properties: tableCalculations: {} metrics: {} dimensions: {} type: object exploreName: type: string dimensions: items: type: string type: array metrics: items: type: string type: array sorts: items: $ref: '#/components/schemas/SortField' type: array tableCalculations: items: $ref: '#/components/schemas/TableCalculation' type: array additionalMetrics: items: $ref: '#/components/schemas/AdditionalMetric' type: array customDimensions: items: $ref: '#/components/schemas/CustomDimension' type: array metricOverrides: $ref: '#/components/schemas/MetricOverrides' dimensionOverrides: $ref: '#/components/schemas/DimensionOverrides' pivotDimensions: items: type: string type: array metadata: properties: hasADateDimension: $ref: '#/components/schemas/Pick_CompiledDimension.name-or-label-or-table_' required: - hasADateDimension type: object required: - limit - filters - exploreName - dimensions - metrics - sorts - tableCalculations type: object description: From T, pick a set of properties whose keys are in the union K ExecuteAsyncSqlQueryRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: pivotConfiguration: $ref: '#/components/schemas/PivotConfiguration' limit: type: number format: double sql: type: string required: - sql type: object ExecuteAsyncCalculateTotalRequestParams: properties: invalidateCache: type: boolean subtotalDimensions: items: type: string type: array kind: $ref: '#/components/schemas/CalculateTotalKind' required: - kind type: object ApiExecuteAsyncSqlQueryResults: allOf: - $ref: '#/components/schemas/ApiExecuteAsyncQueryResultsCommon' - properties: {} type: object CacheMetadata: properties: preAggregate: properties: reason: $ref: '#/components/schemas/PreAggregateMatchMiss' name: type: string hit: type: boolean required: - hit type: object cacheHit: type: boolean cacheKey: type: string cacheExpiresAt: type: string format: date-time cacheUpdatedTime: type: string format: date-time required: - cacheHit type: object ExecuteAsyncUnderlyingDataRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: sorts: items: $ref: '#/components/schemas/SortField' type: array limit: type: number format: double nullable: true dateZoom: $ref: '#/components/schemas/DateZoom' filters: $ref: '#/components/schemas/Filters' underlyingDataItemId: type: string underlyingDataSourceQueryUuid: type: string required: - filters - underlyingDataSourceQueryUuid type: object DefaultTimeDimension: properties: interval: $ref: '#/components/schemas/TimeFrames' field: type: string required: - interval - field type: object QueryHistoryStatus.CANCELLED: enum: - cancelled type: string 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 FilterGroupItem: anyOf: - $ref: '#/components/schemas/FilterGroup' - $ref: '#/components/schemas/FilterRule' FieldTarget: properties: fieldId: type: string description: Field ID to filter on required: - fieldId type: object PreAggregateMissReason.GRANULARITY_TOO_FINE: enum: - granularity_too_fine type: string MetricOverrides: properties: {} additionalProperties: $ref: '#/components/schemas/Pick_Metric.formatOptions_' type: object SortBy: items: $ref: '#/components/schemas/VizSortBy' type: array QueryHistoryStatus.ERROR: enum: - error type: string Omit_MetricQueryRequest.csvLimit_: $ref: '#/components/schemas/Pick_MetricQueryRequest.Exclude_keyofMetricQueryRequest.csvLimit__' description: Construct a type with the properties of T except for those in type K. ApiDownloadAsyncQueryResultsAsCsv: properties: truncated: type: boolean fileUrl: type: string required: - truncated - fileUrl type: object Record_string.string-or-string-Array_: properties: {} additionalProperties: anyOf: - type: string - items: type: string type: array type: object description: Construct a type with a set of properties K of type T QueryHistoryStatus.EXPIRED: enum: - expired type: string ExecuteAsyncDashboardSqlChartCommonParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: limit: type: number format: double dashboardSorts: items: $ref: '#/components/schemas/SortField' type: array dashboardFilters: $ref: '#/components/schemas/DashboardFilters' tileUuid: type: string dashboardUuid: type: string required: - dashboardSorts - dashboardFilters - tileUuid - dashboardUuid type: object PreAggregateMissReason.USER_BYPASS: enum: - user_bypass type: string Filters: properties: tableCalculations: $ref: '#/components/schemas/FilterGroup' description: Table calculation filter group metrics: $ref: '#/components/schemas/FilterGroup' description: Metric filter group dimensions: $ref: '#/components/schemas/FilterGroup' description: Dimension filter group type: object PreAggregateMatchMiss: anyOf: - properties: reason: $ref: '#/components/schemas/PreAggregateMissReason.NO_PRE_AGGREGATES_DEFINED' required: - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.DIMENSION_NOT_IN_PRE_AGGREGATE' required: - fieldId - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.METRIC_NOT_IN_PRE_AGGREGATE' required: - fieldId - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.NON_ADDITIVE_METRIC' required: - fieldId - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.CUSTOM_SQL_METRIC' required: - fieldId - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.FILTER_DIMENSION_NOT_IN_PRE_AGGREGATE' required: - fieldId - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.PRE_AGGREGATE_FILTER_NOT_SATISFIED' required: - fieldId - reason type: object - properties: preAggregateTimeDimension: type: string preAggregateGranularity: $ref: '#/components/schemas/TimeFrames' queryGranularity: $ref: '#/components/schemas/TimeFrames' fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.GRANULARITY_TOO_FINE' required: - preAggregateTimeDimension - preAggregateGranularity - queryGranularity - fieldId - reason type: object - properties: reason: $ref: '#/components/schemas/PreAggregateMissReason.CUSTOM_DIMENSION_PRESENT' required: - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.CUSTOM_METRIC_PRESENT' required: - fieldId - reason type: object - properties: fieldId: $ref: '#/components/schemas/FieldId' reason: $ref: '#/components/schemas/PreAggregateMissReason.TABLE_CALCULATION_PRESENT' required: - fieldId - reason type: object - properties: preAggregateName: type: string reason: $ref: '#/components/schemas/PreAggregateMissReason.USER_BYPASS' required: - preAggregateName - reason type: object - properties: reason: $ref: '#/components/schemas/PreAggregateMissReason.EXPLORE_RESOLUTION_ERROR' required: - reason type: object - properties: reason: $ref: '#/components/schemas/PreAggregateMissReason.NO_ACTIVE_MATERIALIZATION' required: - reason type: object 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 BinGroup: properties: values: items: $ref: '#/components/schemas/GroupValueRule' type: array description: Rules that match values into this group name: type: string description: Display name for this group (e.g. "North America") required: - values - name type: object AdditionalMetric: properties: label: type: string description: Display label for the metric type: $ref: '#/components/schemas/MetricType' description: Aggregation type description: type: string description: Description of what the metric measures sql: type: string description: SQL expression (e.g., ${TABLE}.column_name) hidden: type: boolean description: Whether the metric is hidden from users round: type: number format: double description: Number of decimal places compact: $ref: '#/components/schemas/CompactOrAlias' description: Compact format for large numbers format: anyOf: - $ref: '#/components/schemas/Format' - type: string description: Format string (legacy format specification) separator: $ref: '#/components/schemas/NumberSeparator' description: Number separator style for grouping/decimal characters table: type: string description: Table name the metric belongs to name: type: string description: Internal name of the metric index: type: number format: double description: Display order index filters: items: $ref: '#/components/schemas/MetricFilterRule' type: array description: Filters to apply to this metric baseDimensionName: type: string description: Name of the base dimension/column this metric aggregates uuid: type: string nullable: true description: Unique identifier for the metric percentile: type: number format: double description: Percentile value for percentile metrics distinctKeys: items: type: string type: array formatOptions: $ref: '#/components/schemas/CustomFormat' description: Formatting configuration generationType: type: string enum: - periodOverPeriod nullable: false description: 'Optional marker for metrics generated by the system. Currently used for Period-over-Period (PoP) previous-period metrics.' baseMetricId: $ref: '#/components/schemas/FieldId' description: For PoP-generated metrics, the base metric id that this metric is derived from. timeDimensionId: $ref: '#/components/schemas/FieldId' description: For PoP-generated metrics, the time dimension id used for the comparison. granularity: $ref: '#/components/schemas/TimeFrames' description: For PoP-generated metrics, the granularity used for the comparison. periodOffset: type: number format: double description: For PoP-generated metrics, the number of periods to offset by (>= 1). required: - type - sql - table - name type: object additionalProperties: true ApiSuccess_ApiExecuteAsyncSqlQueryResults_: properties: results: $ref: '#/components/schemas/ApiExecuteAsyncSqlQueryResults' status: type: string enum: - ok nullable: false required: - results - status type: object Pick_DownloadAsyncQueryResultsRequestParams.Exclude_keyofDownloadAsyncQueryResultsRequestParams.queryUuid__: properties: type: $ref: '#/components/schemas/DownloadFileType' pivotConfig: $ref: '#/components/schemas/PivotConfig' onlyRaw: type: boolean showTableNames: type: boolean customLabels: $ref: '#/components/schemas/Record_string.string_' columnOrder: items: type: string type: array hiddenFields: items: type: string type: array exportPivotedData: type: boolean attachmentDownloadName: type: string type: object description: From T, pick a set of properties whose keys are in the union K ExecuteAsyncDashboardSqlChartRequestParams: anyOf: - $ref: '#/components/schemas/ExecuteAsyncDashboardSqlChartByUuidRequestParams' - $ref: '#/components/schemas/ExecuteAsyncDashboardSqlChartBySlugRequestParams' Source: properties: content: type: string highlight: properties: end: $ref: '#/components/schemas/SourcePosition' start: $ref: '#/components/schemas/SourcePosition' required: - end - start type: object range: properties: end: $ref: '#/components/schemas/SourcePosition' start: $ref: '#/components/schemas/SourcePosition' required: - end - start type: object path: type: string required: - content - range - path type: object FrameBoundary: properties: offset: type: number format: double description: Offset for PRECEDING/FOLLOWING type: $ref: '#/components/schemas/FrameBoundaryType' description: Boundary type required: - type type: object DimensionType: enum: - string - number - timestamp - date - boolean type: string TableCalculationTemplateType.PERCENT_CHANGE_FROM_PREVIOUS: enum: - percent_change_from_previous type: string Record_string.ResultColumn_: properties: {} additionalProperties: $ref: '#/components/schemas/ResultColumn' type: object description: Construct a type with a set of properties K of type T QueryResultsMetadata: properties: performance: $ref: '#/components/schemas/QueryResultsPerformance' required: - performance type: object MetricQuery: properties: metadata: properties: hasADateDimension: $ref: '#/components/schemas/Pick_CompiledDimension.label-or-name-or-table_' required: - hasADateDimension type: object pivotDimensions: items: $ref: '#/components/schemas/FieldId' type: array description: 'Dimension field IDs used as pivot columns (from chart''s pivotConfig.columns). Used by row_total() to determine non-pivot dimensions for GROUP BY.' timezone: type: string description: Timezone for date/time values (e.g., 'America/Los_Angeles', 'UTC') dimensionOverrides: $ref: '#/components/schemas/DimensionOverrides' description: Override formatting options for existing dimensions metricOverrides: $ref: '#/components/schemas/MetricOverrides' description: Override formatting options for existing metrics customDimensions: items: $ref: '#/components/schemas/CustomDimension' type: array description: Custom dimensions defined inline additionalMetrics: items: $ref: '#/components/schemas/AdditionalMetric' type: array description: Custom metrics defined inline (ad-hoc metrics not in the dbt model) tableCalculations: items: $ref: '#/components/schemas/TableCalculation' type: array description: Custom calculations to perform on query results limit: type: number format: double description: Maximum number of rows to return sorts: items: $ref: '#/components/schemas/SortField' type: array description: Sort configuration for query results filters: $ref: '#/components/schemas/Filters' description: Filter rules to apply to the query metrics: items: $ref: '#/components/schemas/FieldId' type: array description: List of metric field IDs to include dimensions: items: $ref: '#/components/schemas/FieldId' type: array description: List of dimension field IDs to include exploreName: type: string description: The name of the explore to query required: - tableCalculations - limit - sorts - filters - metrics - dimensions - exploreName type: object ApiSuccess_ApiExecuteAsyncMetricQueryResults_: properties: results: $ref: '#/components/schemas/ApiExecuteAsyncMetricQueryResults' status: type: string enum: - ok nullable: false required: - results - status type: object QueryHistoryStatus.EXECUTING: enum: - executing type: string 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 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 NumberSeparator: enum: - default - commaPeriod - spacePeriod - periodComma - noSeparatorPeriod - apostrophePeriod type: string CustomBinDimension: anyOf: - $ref: '#/components/schemas/FixedNumberBinDimension' - $ref: '#/components/schemas/FixedWidthBinDimension' - $ref: '#/components/schemas/CustomRangeBinDimension' - $ref: '#/components/schemas/CustomGroupBinDimension' VizAggregationOptions: enum: - sum - count - avg - min - max - any type: string GroupValueRule: properties: value: type: string matchType: $ref: '#/components/schemas/GroupValueMatchType' required: - value - matchType type: object PivotIndexColum: properties: type: $ref: '#/components/schemas/VizIndexType' reference: type: string required: - type - reference type: object 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 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.WINDOW_FUNCTION: enum: - window_function type: string DashboardFilters: properties: tableCalculations: items: $ref: '#/components/schemas/DashboardFilterRule' type: array metrics: items: $ref: '#/components/schemas/DashboardFilterRule' type: array dimensions: items: $ref: '#/components/schemas/DashboardFilterRule' type: array required: - tableCalculations - metrics - dimensions 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.' TableCalculation: anyOf: - $ref: '#/components/schemas/SqlTableCalculation' - $ref: '#/components/schemas/TemplateTableCalculation' - $ref: '#/components/schemas/FormulaTableCalculation' FieldType: enum: - metric - dimension type: string 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 ApiSuccessEmpty: properties: results: {} status: type: string enum: - ok nullable: false required: - status type: object FilterRule: properties: values: items: $ref: '#/components/schemas/AnyType' type: array description: Values to filter by operator: $ref: '#/components/schemas/FilterOperator' description: Filter operator id: type: string description: Unique identifier for the filter target: $ref: '#/components/schemas/FieldTarget' description: Target field for the filter settings: $ref: '#/components/schemas/AnyType' description: Additional settings for date/time filters disabled: type: boolean description: Whether this filter is disabled required: type: boolean description: Whether this filter is required caseSensitive: type: boolean description: 'Overrides the field/explore case-sensitivity for this rule only. Used by internal features like autocomplete search that must always match case-insensitively regardless of the field''s configured setting.' required: - operator - id - target type: object additionalProperties: true FilterRule_FilterOperator.DashboardFieldTarget.AnyType.AnyType_: properties: values: items: $ref: '#/components/schemas/AnyType' type: array description: Values to filter by operator: $ref: '#/components/schemas/FilterOperator' description: Filter operator id: type: string description: Unique identifier for the filter target: $ref: '#/components/schemas/DashboardFieldTarget' description: Target field for the filter settings: $ref: '#/components/schemas/AnyType' description: Additional settings for date/time filters disabled: type: boolean description: Whether this filter is disabled required: type: boolean description: Whether this filter is required caseSensitive: type: boolean description: 'Overrides the field/explore case-sensitivity for this rule only. Used by internal features like autocomplete search that must always match case-insensitively regardless of the field''s configured setting.' required: - operator - id - target type: object additionalProperties: true PreAggregateMissReason.PRE_AGGREGATE_FILTER_NOT_SATISFIED: enum: - pre_aggregate_filter_not_satisfied type: string PreAggregateMissReason.NO_ACTIVE_MATERIALIZATION: enum: - no_active_materialization type: string ExecuteAsyncDashboardSqlChartByUuidRequestParams: allOf: - $ref: '#/components/schemas/ExecuteAsyncDashboardSqlChartCommonParams' - properties: savedSqlUuid: type: string required: - savedSqlUuid type: object 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 PreAggregateMissReason.CUSTOM_DIMENSION_PRESENT: enum: - custom_dimension_present type: string PreAggregateMissReason.DIMENSION_NOT_IN_PRE_AGGREGATE: enum: - dimension_not_in_pre_aggregate type: string Field: properties: fieldType: $ref: '#/components/schemas/FieldType' type: type: string name: type: string label: type: string table: type: string tableLabel: type: string sql: type: string description: type: string source: $ref: '#/components/schemas/Source' hidden: type: boolean compact: $ref: '#/components/schemas/CompactOrAlias' round: type: number format: double format: anyOf: - $ref: '#/components/schemas/Format' - type: string separator: $ref: '#/components/schemas/NumberSeparator' description: 'Number separator style for grouping/decimal characters. Composes with `format` (including ECMA-376 expressions) and `formatOptions` — it only controls the separator characters, not the format shape.' groupLabel: type: string deprecated: true groups: items: type: string type: array urls: items: $ref: '#/components/schemas/FieldUrl' type: array index: type: number format: double tags: items: type: string type: array parameterReferences: items: type: string type: array required: - fieldType - type - name - label - table - tableLabel - sql - hidden type: object additionalProperties: true QueryHistoryStatus.PENDING: enum: - pending type: string PreAggregateMissReason.CUSTOM_SQL_METRIC: enum: - custom_sql_metric 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 Record_string._value-ResultValue__: properties: {} additionalProperties: properties: value: $ref: '#/components/schemas/ResultValue' required: - value type: object type: object description: Construct a type with a set of properties K of type T BinType.CUSTOM_RANGE: enum: - custom_range type: string ApiSuccess_ApiExecuteAsyncFieldValueSearchResults_: properties: results: $ref: '#/components/schemas/ApiExecuteAsyncFieldValueSearchResults' status: type: string enum: - ok nullable: false required: - results - status type: object GroupValueMatchType: enum: - exact - startsWith - endsWith - includes type: string Compact: enum: - thousands - millions - billions - trillions - kilobytes - megabytes - gigabytes - terabytes - petabytes - kibibytes - mebibytes - gibibytes - tebibytes - pebibytes type: string VizSortBy: properties: pivotValues: items: $ref: '#/components/schemas/PivotSortAnchor' type: array description: Pins the row-sort anchor to a specific pivot column. nullsFirst: type: boolean direction: $ref: '#/components/schemas/SortByDirection' reference: type: string required: - direction - reference type: object PivotValuesColumn: properties: columnIndex: type: number format: double pivotValues: items: properties: formatted: type: string value: {} referenceField: type: string required: - value - referenceField type: object type: array aggregation: $ref: '#/components/schemas/VizAggregationOptions' pivotColumnName: type: string referenceField: type: string required: - pivotValues - aggregation - pivotColumnName - referenceField type: object ApiDownloadAsyncQueryResultsAsXlsx: properties: truncated: type: boolean fileUrl: type: string required: - truncated - fileUrl type: object ParameterValue: anyOf: - type: string - type: number format: double - items: type: string type: array - items: type: number format: double type: array TableCalculationTemplateType.RUNNING_TOTAL: enum: - running_total type: string QueryExecutionContext: enum: - dashboardView - autorefreshedDashboard - exploreView - filterAutocomplete - chartView - chartHistory - sqlChartView - sqlRunner - viewUnderlyingData - alert - scheduledDelivery - csvDownload - gsheets - scheduledGsheetsChart - scheduledGsheetsDashboard - scheduledGsheetsSqlChart - scheduledChart - scheduledDashboard - calculateTotal - calculateSubtotal - embed - ai - mcp.run_metric_query - mcp.run_sql - mcp.search_field_values - api - cli - metricsExplorer - preAggregateMaterialization - dataAppSample type: string CalculateTotalKind: type: string enum: - columnTotal - rowTotal - columnSubtotal description: 'Kinds of totals derivable from an executed pivot query. Follow-up PRs will widen the union to enable the commented-out variants below.' GroupByColumn: properties: reference: type: string required: - reference type: object ParametersValuesMap: $ref: '#/components/schemas/Record_string.ParameterValue_' BinType.CUSTOM_GROUP: enum: - custom_group type: string 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 WindowFunctionType: enum: - row_number - percent_rank - cume_dist - rank - sum - avg - count - min - max type: string ApiExecuteAsyncDashboardChartQueryResults: allOf: - $ref: '#/components/schemas/ApiExecuteAsyncQueryResultsCommon' - properties: dateZoomApplied: type: boolean appliedDashboardFilters: $ref: '#/components/schemas/DashboardFilters' fields: $ref: '#/components/schemas/ItemsMap' metricQuery: $ref: '#/components/schemas/MetricQuery' required: - dateZoomApplied - appliedDashboardFilters - fields - metricQuery type: object 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 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.' 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 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 TableCalculationTemplateType.RANK_IN_COLUMN: enum: - rank_in_column type: string Record_string.ParameterValue_: properties: {} additionalProperties: $ref: '#/components/schemas/ParameterValue' type: object description: Construct a type with a set of properties K of type T ResultColumns: $ref: '#/components/schemas/Record_string.ResultColumn_' TemplateTableCalculation: allOf: - $ref: '#/components/schemas/TableCalculationBase' - properties: template: $ref: '#/components/schemas/TableCalculationTemplate' description: Template-based calculation (alternative to sql) required: - template type: object TableCalculationTemplateType.PERCENT_OF_COLUMN_TOTAL: enum: - percent_of_column_total type: string ApiExecuteAsyncDashboardSqlChartQueryResults: allOf: - $ref: '#/components/schemas/ApiExecuteAsyncQueryResultsCommon' - properties: appliedDashboardFilters: $ref: '#/components/schemas/DashboardFilters' required: - appliedDashboardFilters type: object BinType.FIXED_WIDTH: enum: - fixed_width type: string DashboardFieldTarget: properties: fallbackType: $ref: '#/components/schemas/DimensionType' isSqlColumn: type: boolean tableName: type: string fieldId: type: string required: - tableName - fieldId type: object ApiSuccess_ApiExecuteAsyncDashboardChartQueryResults_: properties: results: $ref: '#/components/schemas/ApiExecuteAsyncDashboardChartQueryResults' status: type: string enum: - ok nullable: false required: - results - status type: object ExecuteAsyncMetricQueryRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: dashboardFilters: $ref: '#/components/schemas/DashboardFilters' pivotConfiguration: $ref: '#/components/schemas/PivotConfiguration' dateZoom: $ref: '#/components/schemas/DateZoom' query: $ref: '#/components/schemas/Omit_MetricQueryRequest.csvLimit_' required: - query type: object PreAggregateMissReason.CUSTOM_METRIC_PRESENT: enum: - custom_metric_present type: string SourcePosition: properties: character: type: number format: double line: type: number format: double required: - character - line type: object ExecuteAsyncSqlChartBySlugRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: limit: type: number format: double slug: type: string required: - slug type: object QueryHistoryStatus.READY: enum: - ready type: string ValuesColumn: properties: aggregation: $ref: '#/components/schemas/VizAggregationOptions' reference: type: string required: - aggregation - reference 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 KnexPaginateArgs: properties: page: type: number format: double pageSize: type: number format: double required: - page - pageSize type: object PreAggregateMissReason.FILTER_DIMENSION_NOT_IN_PRE_AGGREGATE: enum: - filter_dimension_not_in_pre_aggregate type: string CustomDimensionType.BIN: enum: - bin type: string ExecuteAsyncSqlChartByUuidRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: limit: type: number format: double savedSqlUuid: type: string required: - savedSqlUuid type: object ExecuteAsyncSqlChartRequestParams: anyOf: - $ref: '#/components/schemas/ExecuteAsyncSqlChartByUuidRequestParams' - $ref: '#/components/schemas/ExecuteAsyncSqlChartBySlugRequestParams' CustomFormatType: enum: - default - percent - currency - number - id - date - timestamp - bytes_si - bytes_iec - custom type: string ExecuteAsyncDashboardChartRequestParams: allOf: - $ref: '#/components/schemas/CommonExecuteQueryRequestParams' - properties: pivotResults: type: boolean limit: type: number format: double nullable: true dateZoom: $ref: '#/components/schemas/DateZoom' dashboardSorts: items: $ref: '#/components/schemas/SortField' type: array dashboardFilters: $ref: '#/components/schemas/DashboardFilters' dashboardUuid: type: string tileUuid: type: string chartUuid: type: string required: - dashboardSorts - dashboardFilters - dashboardUuid - tileUuid - chartUuid 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 columnTotals: type: boolean visibleMetricFieldIds: items: type: string type: array hiddenMetricFieldIds: items: type: string type: array columnOrder: items: type: string type: array metricsAsRows: type: boolean pivotDimensions: items: type: string type: array required: - metricsAsRows - pivotDimensions type: object VizIndexType: enum: - time - category type: string Record_string.string_: properties: {} additionalProperties: type: string type: object description: Construct a type with a set of properties K of type T PreAggregateMissReason.TABLE_CALCULATION_PRESENT: enum: - table_calculation_present type: string ExecuteAsyncDashboardSqlChartBySlugRequestParams: allOf: - $ref: '#/components/schemas/ExecuteAsyncDashboardSqlChartCommonParams' - properties: slug: type: string required: - slug type: object CustomSqlDimension: 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.SQL' description: Type of custom dimension (bin or sql) sql: type: string description: SQL expression for the custom dimension dimensionType: $ref: '#/components/schemas/DimensionType' description: Data type of the dimension result required: - id - name - table - type - sql - dimensionType type: object additionalProperties: true AndFilterGroup: properties: and: items: $ref: '#/components/schemas/FilterGroupItem' type: array description: Array of filters or nested groups combined with AND logic id: type: string description: Unique identifier for the filter group required: - and - id type: object Format: enum: - km - mi - usd - gbp - eur - jpy - dkk - id - percent type: string CustomDimension: anyOf: - $ref: '#/components/schemas/CustomBinDimension' - $ref: '#/components/schemas/CustomSqlDimension' MetricFilterRule: description: Filter rule for metrics, targeting fields by reference properties: values: items: $ref: '#/components/schemas/AnyType' type: array description: Values to filter by operator: $ref: '#/components/schemas/FilterOperator' description: Filter operator id: type: string description: Unique identifier for the filter target: properties: fieldRef: type: string description: Field reference to filter on (e.g., 'table_name.field_name') required: - fieldRef type: object description: Target field for the filter settings: $ref: '#/components/schemas/AnyType' description: Additional settings for date/time filters disabled: type: boolean description: Whether this filter is disabled required: type: boolean description: Whether this filter is required caseSensitive: type: boolean description: 'Overrides the field/explore case-sensitivity for this rule only. Used by internal features like autocomplete search that must always match case-insensitively regardless of the field''s configured setting.' required: - operator - id - target type: object additionalProperties: true CustomDimensionType.SQL: enum: - sql type: string ResultsPaginationMetadata_ResultRow_: allOf: - allOf: - $ref: '#/components/schemas/KnexPaginateArgs' - properties: totalResults: type: number format: double totalPageCount: type: number format: double required: - totalResults - totalPageCount type: object - properties: previousPage: type: number format: double nextPage: type: number format: double type: object securitySchemes: session_cookie: type: apiKey in: cookie name: connect.sid api_key: type: apiKey in: header name: Authorization description: Value should be 'ApiKey '