---
title: "Update Dashboard"
method: PUT
path: "/api/v2/dashboards/{id}"
tags: ["Dashboards"]
---

# Update Dashboard

`PUT /api/v2/dashboards/{id}`

Updates an existing dashboard

## Path parameters

- `id` string, required

## Request body

- UpdateDashboardRequest
  - `name` string, required — Dashboard name.
  - `tiles` TileInput[], required — Full list of tiles for the dashboard. Existing tiles are matched by ID; tiles with an ID that does not match an existing tile will be assigned a new generated ID.
    - `name` string, required — Display name for the tile
    - `x` integer, required — Horizontal position in the grid (0-based)
    - `y` integer, required — Vertical position in the grid (0-based)
    - `w` integer, required — Width in grid units
    - `h` integer, required — Height in grid units
    - `config` union — Tile chart configuration. displayType is the primary discriminant and determines which variant group applies. For displayTypes that support both builder and Raw SQL modes (line, stacked_bar, table, number, pie), configType is the secondary discriminant: omit it for the builder variant or set it to "sql" for the Raw SQL variant. The search and markdown displayTypes only have a builder variant.
      - union — Line chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
        - LineBuilderChartConfig — Builder configuration for a line time-series chart.
          - `displayType` 'line', required — Display type discriminator. Must be "line" for line charts.
          - `sourceId` string, required — ID of the data source to query.
          - `select` SelectItem[], required — One or more aggregated values to plot. When asRatio is true, exactly two select items are required.
            - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
            - `valueExpression` string — Expression for the column or value to aggregate. Must be omitted when aggFn is "count"; required for all other aggFn values.
            - `alias` string — Display alias for this select item in chart legends.
            - `level` 0.5 | 0.9 | 0.95 | 0.99 — Percentile level; only valid when aggFn is "quantile".
            - `where` string — SQL or Lucene filter condition applied before aggregation.
            - `whereLanguage` 'sql' | 'lucene' — Query language for the where clause.
            - `metricName` string — Name of the metric to aggregate; only applicable when the source is a metrics source.
            - `metricType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
            - `periodAggFn` 'delta' — Optional period aggregation function for Gauge metrics (e.g., compute the delta over the period).
          - `groupBy` string — Field expression to group results by (creates separate lines per group value).
          - `asRatio` boolean — Plot select[0] / select[1] as a ratio. Requires exactly two select items.
          - `alignDateRangeToGranularity` boolean — Expand date range boundaries to the query granularity interval.
          - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `compareToPreviousPeriod` boolean — Overlay the equivalent previous time period for comparison.
        - LineRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
          - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
          - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
          - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
          - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `displayType` 'line', required — Display as a line time-series chart.
          - `compareToPreviousPeriod` boolean — Overlay the equivalent previous time period for comparison.
          - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
          - `alignDateRangeToGranularity` boolean — Expand date range boundaries to the query granularity interval.
      - union — Stacked-bar chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
        - BarBuilderChartConfig — Builder configuration for a stacked-bar time-series chart.
          - `displayType` 'stacked_bar', required — Display type discriminator. Must be "stacked_bar" for stacked-bar charts.
          - `sourceId` string, required — ID of the data source to query.
          - `select` SelectItem[], required — One or more aggregated values to plot. When asRatio is true, exactly two select items are required.
            - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
            - `valueExpression` string — Expression for the column or value to aggregate. Must be omitted when aggFn is "count"; required for all other aggFn values.
            - `alias` string — Display alias for this select item in chart legends.
            - `level` 0.5 | 0.9 | 0.95 | 0.99 — Percentile level; only valid when aggFn is "quantile".
            - `where` string — SQL or Lucene filter condition applied before aggregation.
            - `whereLanguage` 'sql' | 'lucene' — Query language for the where clause.
            - `metricName` string — Name of the metric to aggregate; only applicable when the source is a metrics source.
            - `metricType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
            - `periodAggFn` 'delta' — Optional period aggregation function for Gauge metrics (e.g., compute the delta over the period).
          - `groupBy` string — Field expression to group results by (creates separate bars segments per group value).
          - `asRatio` boolean — Plot select[0] / select[1] as a ratio. Requires exactly two select items.
          - `alignDateRangeToGranularity` boolean — Align the date range boundaries to the query granularity interval.
          - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
        - BarRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
          - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
          - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
          - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
          - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `displayType` 'stacked_bar', required — Display as a stacked-bar time-series chart.
          - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
          - `alignDateRangeToGranularity` boolean — Expand date range boundaries to the query granularity interval.
      - union — Table chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
        - TableBuilderChartConfig — Builder configuration for a table aggregation chart.
          - `displayType` 'table', required — Display type discriminator. Must be "table" for table charts.
          - `sourceId` string, required — ID of the data source to query.
          - `select` SelectItem[], required — One or more aggregated values to display as table columns. When asRatio is true, exactly two select items are required.
            - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
            - `valueExpression` string — Expression for the column or value to aggregate. Must be omitted when aggFn is "count"; required for all other aggFn values.
            - `alias` string — Display alias for this select item in chart legends.
            - `level` 0.5 | 0.9 | 0.95 | 0.99 — Percentile level; only valid when aggFn is "quantile".
            - `where` string — SQL or Lucene filter condition applied before aggregation.
            - `whereLanguage` 'sql' | 'lucene' — Query language for the where clause.
            - `metricName` string — Name of the metric to aggregate; only applicable when the source is a metrics source.
            - `metricType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
            - `periodAggFn` 'delta' — Optional period aggregation function for Gauge metrics (e.g., compute the delta over the period).
          - `groupBy` string — Field expression to group results by (one row per group value).
          - `having` string — Post-aggregation SQL HAVING condition.
          - `orderBy` string — SQL ORDER BY expression for sorting table rows.
          - `asRatio` boolean — Display select[0] / select[1] as a ratio. Requires exactly two select items.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
        - TableRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
          - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
          - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
          - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
          - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `displayType` 'table', required — Display as a table chart.
      - union — Single big-number chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
        - NumberBuilderChartConfig — Builder configuration for a single big-number chart.
          - `displayType` 'number', required — Display type discriminator. Must be "number" for single big-number charts.
          - `sourceId` string, required — ID of the data source to query.
          - `select` SelectItem[], required — Exactly one aggregated value to display as a single number.
            - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
            - `valueExpression` string — Expression for the column or value to aggregate. Must be omitted when aggFn is "count"; required for all other aggFn values.
            - `alias` string — Display alias for this select item in chart legends.
            - `level` 0.5 | 0.9 | 0.95 | 0.99 — Percentile level; only valid when aggFn is "quantile".
            - `where` string — SQL or Lucene filter condition applied before aggregation.
            - `whereLanguage` 'sql' | 'lucene' — Query language for the where clause.
            - `metricName` string — Name of the metric to aggregate; only applicable when the source is a metrics source.
            - `metricType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
            - `periodAggFn` 'delta' — Optional period aggregation function for Gauge metrics (e.g., compute the delta over the period).
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
        - NumberRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
          - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
          - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
          - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
          - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `displayType` 'number', required — Display as a single big-number chart.
      - union — Pie chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
        - PieBuilderChartConfig — Builder configuration for a pie chart tile. Each slice represents one group value.
          - `displayType` 'pie', required — Display type discriminator. Must be "pie" for pie charts.
          - `sourceId` string, required — ID of the data source to query.
          - `select` SelectItem[], required — Exactly one aggregated value used to size each pie slice.
            - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
            - `valueExpression` string — Expression for the column or value to aggregate. Must be omitted when aggFn is "count"; required for all other aggFn values.
            - `alias` string — Display alias for this select item in chart legends.
            - `level` 0.5 | 0.9 | 0.95 | 0.99 — Percentile level; only valid when aggFn is "quantile".
            - `where` string — SQL or Lucene filter condition applied before aggregation.
            - `whereLanguage` 'sql' | 'lucene' — Query language for the where clause.
            - `metricName` string — Name of the metric to aggregate; only applicable when the source is a metrics source.
            - `metricType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
            - `periodAggFn` 'delta' — Optional period aggregation function for Gauge metrics (e.g., compute the delta over the period).
          - `groupBy` string — Field expression to group results by (one slice per group value).
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
        - PieRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
          - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
          - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
          - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
          - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `displayType` 'pie', required — Display as a pie chart.
      - SearchChartConfig — Configuration for a raw-event search / log viewer tile.
        - `displayType` 'search', required — Display type discriminator. Must be "search" for search/log viewer tiles.
        - `sourceId` string, required — ID of the data source to query.
        - `select` string, required — Comma-separated list of expressions to display.
        - `where` string — Filter condition for the search (syntax depends on whereLanguage).
        - `whereLanguage` 'sql' | 'lucene', required — Query language for the where clause.
      - MarkdownChartConfig — Configuration for a freeform Markdown text tile.
        - `displayType` 'markdown', required — Display type discriminator. Must be "markdown" for markdown text tiles.
        - `markdown` string — Markdown content to render inside the tile.
    - `id` string — Optional tile ID. Omit to generate a new ID.
    - `asRatio` boolean — Display two series as a ratio (series[0] / series[1]). Only applicable when providing "series". Deprecated in favor of "config.asRatio".
    - `series` DashboardChartSeries[] — Data series to display in this tile (all must be the same type). Deprecated; use "config" instead.
      - union
        - TimeChartSeries
          - `type` 'time', required — Series type discriminator. Must be "time" for time-series charts.
          - `sourceId` string, required — ID of the data source to query
          - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
          - `level` number — Percentile level for quantile aggregations (e.g., 0.95 for p95)
          - `field` string — Column or expression to aggregate (required for most aggregation functions except count)
          - `alias` string — Display name for the series in the chart
          - `where` string, required — Filter query for the data (syntax depends on whereLanguage)
          - `whereLanguage` 'sql' | 'lucene', required — Query language for the where clause.
          - `groupBy` string[], required — Fields to group results by (creates separate series for each group)
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `metricDataType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
          - `metricName` string — Metric name for metrics data sources
          - `displayType` 'stacked_bar' | 'line' — Visual representation type for the time series.
        - TableChartSeries
          - `type` 'table', required — Series type discriminator. Must be "table" for table charts.
          - `sourceId` string, required — ID of the data source to query
          - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
          - `level` number — Percentile level for quantile aggregations (e.g., 0.95 for p95)
          - `field` string — Column or expression to aggregate (required for most aggregation functions except count)
          - `alias` string — Display name for the series
          - `where` string, required — Filter query for the data (syntax depends on whereLanguage)
          - `whereLanguage` 'sql' | 'lucene', required — Query language for the where clause.
          - `groupBy` string[], required — Fields to group results by (creates separate rows for each group)
          - `sortOrder` 'desc' | 'asc' — Sort order for table rows.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `metricDataType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
          - `metricName` string — Metric name for metrics data sources
        - NumberChartSeries
          - `type` 'number', required — Series type discriminator. Must be "number" for single-value number charts.
          - `sourceId` string, required — ID of the data source to query
          - `aggFn` 'avg' | 'count' | 'count_distinct' | 'last_value' | 'max' | 'min' | 'quantile' | 'sum' | 'any' | 'none', required — Aggregation function to apply to the field or metric value.
          - `level` number — Percentile level for quantile aggregations (e.g., 0.95 for p95)
          - `field` string — Column or expression to aggregate (required for most aggregation functions except count)
          - `alias` string — Display name for the series in the chart
          - `where` string, required — Filter query for the data (syntax depends on whereLanguage)
          - `whereLanguage` 'sql' | 'lucene', required — Query language for the where clause.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' — Output format type (currency, percent, byte, time, number, data_rate, throughput).
            - `mantissa` integer — Number of decimal places.
            - `thousandSeparated` boolean — Whether to use thousand separators.
            - `average` boolean — Whether to show as average.
            - `decimalBytes` boolean — Use decimal bytes (1000) vs binary bytes (1024).
            - `factor` number — Multiplication factor.
            - `currencySymbol` string — Currency symbol for currency format.
            - `numericUnit` 'bytes_iec' | 'bytes_si' | 'bits_iec' | 'bits_si' | 'kibibytes' | 'kilobytes' | 'mebibytes' | 'megabytes' | 'gibibytes' | 'gigabytes' | 'tebibytes' | 'terabytes' | 'pebibytes' | 'petabytes' | 'packets_sec' | 'bytes_sec_iec' | 'bytes_sec_si' | 'bits_sec_iec' | 'bits_sec_si' | 'kibibytes_sec' | 'kibibits_sec' | 'kilobytes_sec' | 'kilobits_sec' | 'mebibytes_sec' | 'mebibits_sec' | 'megabytes_sec' | 'megabits_sec' | 'gibibytes_sec' | 'gibibits_sec' | 'gigabytes_sec' | 'gigabits_sec' | 'tebibytes_sec' | 'tebibits_sec' | 'terabytes_sec' | 'terabits_sec' | 'pebibytes_sec' | 'pebibits_sec' | 'petabytes_sec' | 'petabits_sec' | 'cps' | 'ops' | 'rps' | 'reads_sec' | 'wps' | 'iops' | 'cpm' | 'opm' | 'rpm_reads' | 'wpm' — Numeric unit for data, data rate, or throughput formats.
            - `unit` string — Custom unit label.
          - `metricDataType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric data type, only for metrics data sources.
          - `metricName` string — Metric name for metrics data sources.
        - SearchChartSeries
          - `type` 'search', required — Series type discriminator. Must be "search" for search/log viewer charts.
          - `sourceId` string, required — ID of the data source to query
          - `fields` string[], required — List of field names to display in the search results table
          - `where` string, required — Filter query for the data (syntax depends on whereLanguage)
          - `whereLanguage` 'sql' | 'lucene', required — Query language for the where clause.
        - MarkdownChartSeries
          - `type` 'markdown', required — Series type discriminator. Must be "markdown" for markdown text widgets.
          - `content` string, required — Markdown content to render inside the widget.
  - `tags` string[] — Tags for organizing and filtering dashboards.
  - `filters` Filter[] — Dashboard filter keys on the dashboard, applied across all tiles
    - `type` 'QUERY_EXPRESSION', required — Filter type. Must be "QUERY_EXPRESSION".
    - `name` string, required — Display name for the dashboard filter key
    - `expression` string, required — Key expression used when applying this dashboard filter key
    - `sourceId` string, required — Source ID this dashboard filter key applies to
    - `sourceMetricType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric type when source is metrics
    - `where` string — Optional WHERE condition to scope which rows this filter key reads values from
    - `whereLanguage` 'sql' | 'lucene' — Language of the where condition
    - `id` string, required — Unique dashboard filter key ID
  - `savedQuery` string, nullable — Optional default dashboard query to persist on the dashboard.
  - `savedQueryLanguage` 'sql' | 'lucene' — Query language for the where clause.
  - `savedFilterValues` SavedFilterValue[] — Optional default dashboard filter values to persist on the dashboard.
    - `type` 'sql' — Filter type. Currently only "sql" is supported.
    - `condition` string, required — SQL filter condition. For example use expressions in the form "column IN ('value')".

## Response `200`

Successfully updated dashboard

- DashboardResponseEnvelope
  - `data` DashboardResponse — Dashboard with tiles and configuration
    - `id` string — Dashboard ID
    - `name` string — Dashboard name
    - `tiles` TileOutput[] — List of tiles/charts in the dashboard
      - `name` string, required — Display name for the tile
      - `x` integer, required — Horizontal position in the grid (0-based)
      - `y` integer, required — Vertical position in the grid (0-based)
      - `w` integer, required — Width in grid units
      - `h` integer, required — Height in grid units
      - `config` union — Tile chart configuration. displayType is the primary discriminant and determines which variant group applies. For displayTypes that support both builder and Raw SQL modes (line, stacked_bar, table, number, pie), configType is the secondary discriminant: omit it for the builder variant or set it to "sql" for the Raw SQL variant. The search and markdown displayTypes only have a builder variant.
        - union — Line chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
          - LineBuilderChartConfig — Builder configuration for a line time-series chart.
            - `displayType` 'line', required — Display type discriminator. Must be "line" for line charts.
            - `sourceId` string, required — ID of the data source to query.
            - `select` SelectItem[], required — One or more aggregated values to plot. When asRatio is true, exactly two select items are required.
              - …
            - `groupBy` string — Field expression to group results by (creates separate lines per group value).
            - `asRatio` boolean — Plot select[0] / select[1] as a ratio. Requires exactly two select items.
            - `alignDateRangeToGranularity` boolean — Expand date range boundaries to the query granularity interval.
            - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
            - `numberFormat` NumberFormat
              - …
            - `compareToPreviousPeriod` boolean — Overlay the equivalent previous time period for comparison.
          - LineRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
            - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
            - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
            - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
            - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
            - `numberFormat` NumberFormat
              - …
            - `displayType` 'line', required — Display as a line time-series chart.
            - `compareToPreviousPeriod` boolean — Overlay the equivalent previous time period for comparison.
            - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
            - `alignDateRangeToGranularity` boolean — Expand date range boundaries to the query granularity interval.
        - union — Stacked-bar chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
          - BarBuilderChartConfig — Builder configuration for a stacked-bar time-series chart.
            - `displayType` 'stacked_bar', required — Display type discriminator. Must be "stacked_bar" for stacked-bar charts.
            - `sourceId` string, required — ID of the data source to query.
            - `select` SelectItem[], required — One or more aggregated values to plot. When asRatio is true, exactly two select items are required.
              - …
            - `groupBy` string — Field expression to group results by (creates separate bars segments per group value).
            - `asRatio` boolean — Plot select[0] / select[1] as a ratio. Requires exactly two select items.
            - `alignDateRangeToGranularity` boolean — Align the date range boundaries to the query granularity interval.
            - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
            - `numberFormat` NumberFormat
              - …
          - BarRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
            - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
            - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
            - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
            - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
            - `numberFormat` NumberFormat
              - …
            - `displayType` 'stacked_bar', required — Display as a stacked-bar time-series chart.
            - `fillNulls` boolean — Fill missing time buckets with zero instead of leaving gaps.
            - `alignDateRangeToGranularity` boolean — Expand date range boundaries to the query granularity interval.
        - union — Table chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
          - TableBuilderChartConfig — Builder configuration for a table aggregation chart.
            - `displayType` 'table', required — Display type discriminator. Must be "table" for table charts.
            - `sourceId` string, required — ID of the data source to query.
            - `select` SelectItem[], required — One or more aggregated values to display as table columns. When asRatio is true, exactly two select items are required.
              - …
            - `groupBy` string — Field expression to group results by (one row per group value).
            - `having` string — Post-aggregation SQL HAVING condition.
            - `orderBy` string — SQL ORDER BY expression for sorting table rows.
            - `asRatio` boolean — Display select[0] / select[1] as a ratio. Requires exactly two select items.
            - `numberFormat` NumberFormat
              - …
          - TableRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
            - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
            - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
            - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
            - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
            - `numberFormat` NumberFormat
              - …
            - `displayType` 'table', required — Display as a table chart.
        - union — Single big-number chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
          - NumberBuilderChartConfig — Builder configuration for a single big-number chart.
            - `displayType` 'number', required — Display type discriminator. Must be "number" for single big-number charts.
            - `sourceId` string, required — ID of the data source to query.
            - `select` SelectItem[], required — Exactly one aggregated value to display as a single number.
              - …
            - `numberFormat` NumberFormat
              - …
          - NumberRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
            - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
            - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
            - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
            - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
            - `numberFormat` NumberFormat
              - …
            - `displayType` 'number', required — Display as a single big-number chart.
        - union — Pie chart. Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
          - PieBuilderChartConfig — Builder configuration for a pie chart tile. Each slice represents one group value.
            - `displayType` 'pie', required — Display type discriminator. Must be "pie" for pie charts.
            - `sourceId` string, required — ID of the data source to query.
            - `select` SelectItem[], required — Exactly one aggregated value used to size each pie slice.
              - …
            - `groupBy` string — Field expression to group results by (one slice per group value).
            - `numberFormat` NumberFormat
              - …
          - PieRawSqlChartConfig — Shared fields for Raw SQL chart configs. Set configType to "sql" and provide connectionId + sqlTemplate instead of sourceId + select.
            - `configType` 'sql', required — Must be "sql" to use the Raw SQL chart config variant.
            - `connectionId` string, required — ID of the ClickHouse connection to execute the query against.
            - `sqlTemplate` string, required — SQL query template to execute. Supports HyperDX template variables.
            - `sourceId` string — Optional ID of the data source associated with this Raw SQL chart. Used for applying dashboard filters.
            - `numberFormat` NumberFormat
              - …
            - `displayType` 'pie', required — Display as a pie chart.
        - SearchChartConfig — Configuration for a raw-event search / log viewer tile.
          - `displayType` 'search', required — Display type discriminator. Must be "search" for search/log viewer tiles.
          - `sourceId` string, required — ID of the data source to query.
          - `select` string, required — Comma-separated list of expressions to display.
          - `where` string — Filter condition for the search (syntax depends on whereLanguage).
          - `whereLanguage` 'sql' | 'lucene', required — Query language for the where clause.
        - MarkdownChartConfig — Configuration for a freeform Markdown text tile.
          - `displayType` 'markdown', required — Display type discriminator. Must be "markdown" for markdown text tiles.
          - `markdown` string — Markdown content to render inside the tile.
      - `id` string, required — Unique tile ID assigned by the server.
    - `tags` string[] — Tags for organizing and filtering dashboards
    - `filters` Filter[] — Dashboard filter keys added to the dashboard and applied to all tiles
      - `type` 'QUERY_EXPRESSION', required — Filter type. Must be "QUERY_EXPRESSION".
      - `name` string, required — Display name for the dashboard filter key
      - `expression` string, required — Key expression used when applying this dashboard filter key
      - `sourceId` string, required — Source ID this dashboard filter key applies to
      - `sourceMetricType` 'sum' | 'gauge' | 'histogram' | 'summary' | 'exponential histogram' — Metric type when source is metrics
      - `where` string — Optional WHERE condition to scope which rows this filter key reads values from
      - `whereLanguage` 'sql' | 'lucene' — Language of the where condition
      - `id` string, required — Unique dashboard filter key ID
    - `savedQuery` string, nullable — Optional default dashboard query restored when loading the dashboard.
    - `savedQueryLanguage` 'sql' | 'lucene' — Query language for the where clause.
    - `savedFilterValues` SavedFilterValue[] — Optional default dashboard filter values restored when loading the dashboard.
      - `type` 'sql' — Filter type. Currently only "sql" is supported.
      - `condition` string, required — SQL filter condition. For example use expressions in the form "column IN ('value')".

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `404` — Dashboard not found
- `500` — Server error or validation failure

## Changes

- **2026-04-02** `daae69185f05` — 20 warning, 49 info
  - added the new `data_rate` enum value to the `data/allOf[#/components/schemas/Dashboard]/tiles/items/allOf[#/components/schemas/TileBase]/config/oneOf[#/components/schemas/BarChartConfig]/oneOf[#/components/schemas/BarBuilderChartConfig]/numberFormat/output` response property for the response status `200`
  - added the new `data_rate` enum value to the `data/allOf[#/components/schemas/Dashboard]/tiles/items/allOf[#/components/schemas/TileBase]/config/oneOf[#/components/schemas/BarChartConfig]/oneOf[#/components/schemas/BarRawSqlChartConfig]/allOf[#/components/schemas/RawSqlChartConfigBase]/numberFormat/output` response property for the response status `200`
  - added the new `data_rate` enum value to the `data/allOf[#/components/schemas/Dashboard]/tiles/items/allOf[#/components/schemas/TileBase]/config/oneOf[#/components/schemas/LineChartConfig]/oneOf[#/components/schemas/LineBuilderChartConfig]/numberFormat/output` response property for the response status `200`
  - added the new `data_rate` enum value to the `data/allOf[#/components/schemas/Dashboard]/tiles/items/allOf[#/components/schemas/TileBase]/config/oneOf[#/components/schemas/LineChartConfig]/oneOf[#/components/schemas/LineRawSqlChartConfig]/allOf[#/components/schemas/RawSqlChartConfigBase]/numberFormat/output` response property for the response status `200`
  - …65 more
- …earlier changes not shown

[Full history](https://skmtc.dev/hyperdxio/apis/hyperdx-external-api/changes/api/v2/dashboards/:id/put.md)

---

[API](https://skmtc.dev/hyperdxio/apis/hyperdx-external-api.md) · [All operations](https://skmtc.dev/hyperdxio/apis/hyperdx-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hyperdxio/hyperdx-external-api/revisions/36a5514b1745/schema)
