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

# Get Dashboard

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

Retrieves a specific dashboard by ID

## Path parameters

- `id` string, required

## Response `200`

Successfully retrieved 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, bar), configType is the secondary discriminant: omit it for the builder variant or set it to "sql" for the Raw SQL variant. The heatmap, search, event_patterns, 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.
            - `fitYAxisToData` boolean — Set the y-axis lower bound to the minimum of the displayed data instead of zero, making small fluctuations between series easier to see.
            - `numberFormat` NumberFormat
              - …
            - `compareToPreviousPeriod` boolean — Overlay the equivalent previous time period for comparison.
            - `seriesLimit` integer — Maximum number of series rendered (top-N by value). Omit to use the default render cap, set 0 for unlimited, or a positive N to keep the top N series.
            - `formulas` Formula[] — Derived series computed from the select items via letter-ref arithmetic ("A" = select[0], "B" = select[1], ...). Metric, log, and trace sources only. Cannot be combined with asRatio.
              - …
            - `showOperandSeries` boolean — Only meaningful with formulas. When false, only the formula series are returned; the raw operand series are hidden.
          - 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.
            - `fitYAxisToData` boolean — Set the y-axis lower bound to the minimum of the displayed data instead of zero, making small fluctuations between series easier to see.
        - 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
              - …
            - `seriesLimit` integer — Maximum number of series rendered (top-N by value). Omit to use the default render cap, set 0 for unlimited, or a positive N to keep the top N series.
            - `formulas` Formula[] — Derived series computed from the select items via letter-ref arithmetic ("A" = select[0], "B" = select[1], ...). Metric, log, and trace sources only. Cannot be combined with asRatio.
              - …
            - `showOperandSeries` boolean — Only meaningful with formulas. When false, only the formula series are returned; the raw operand series are hidden.
          - 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
              - …
            - `groupByColumnsOnLeft` boolean — When true, render Group By columns to the left of series columns in the table. Defaults to false (Group By columns on the right).
            - `onClick` union — Link-out configuration applied when a user clicks a row of a table tile. Only table tiles (builder or raw SQL) currently support onClick. When target.mode is "id", the referenced source (type=search) or dashboard (type=dashboard) must already exist for the team.
              - …
            - `formulas` Formula[] — Derived columns computed from the select items via letter-ref arithmetic ("A" = select[0], "B" = select[1], ...). Metric, log, and trace sources only. Cannot be combined with asRatio.
              - …
            - `showOperandSeries` boolean — Only meaningful with formulas. When false, only the formula columns are returned; the raw operand columns are hidden.
          - 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.
            - `onClick` union — Link-out configuration applied when a user clicks a row of a table tile. Only table tiles (builder or raw SQL) currently support onClick. When target.mode is "id", the referenced source (type=search) or dashboard (type=dashboard) must already exist for the team.
              - …
        - 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 — unless "formulas" is set, in which case the select items are the formula's operands and the (single) formula value is displayed instead.
              - …
            - `formulas` Formula[] — A single derived value computed from the select items via letter-ref arithmetic ("A" = select[0], "B" = select[1], ...). Metric, log, and trace sources only. Number tiles display the formula value and always hide the operand series.
              - …
            - `numberFormat` NumberFormat
              - …
            - `color` 'chart-blue' | 'chart-orange' | 'chart-red' | 'chart-cyan' | 'chart-green' | 'chart-pink' | 'chart-purple' | 'chart-light-blue' | 'chart-brown' | 'chart-gray' | 'chart-success' | 'chart-warning' | 'chart-error' — Palette token used to color a number tile. Tokens reflow across light and dark themes, so raw hex values are not accepted.
            - `colorRules` NumberTileColorCondition[] — Ordered conditional color rules evaluated against the displayed value (last match wins). Falls back to color, then the default text color when no rule matches.
              - …
            - `backgroundChart` BackgroundChart — Optional background trend sparkline drawn behind a number tile's value, derived from a time-bucketed version of the tile's query. Builder number tiles only (raw SQL number tiles have no time dimension to bucket).
              - …
          - 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.
            - `color` 'chart-blue' | 'chart-orange' | 'chart-red' | 'chart-cyan' | 'chart-green' | 'chart-pink' | 'chart-purple' | 'chart-light-blue' | 'chart-brown' | 'chart-gray' | 'chart-success' | 'chart-warning' | 'chart-error' — Palette token used to color a number tile. Tokens reflow across light and dark themes, so raw hex values are not accepted.
        - 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).
            - `orderBy` string — Optional custom SQL ORDER BY expression (raw SQL). Overrides the default value-descending ordering and, when combined with "limit", controls which slices are kept.
            - `numberFormat` NumberFormat
              - …
            - `limit` integer — Maximum number of slices (SQL LIMIT). Without a custom "orderBy" the query keeps the groups with the largest aggregated values; with an "orderBy" it keeps the first slices in that order. Omit or set 0 to fetch all groups.
          - 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.
        - union — Categorical bar chart (one bar per group value; not a time series). Omit configType for the builder variant (requires sourceId and select). Set configType to "sql" for the Raw SQL variant (requires connectionId and sqlTemplate).
          - CategoricalBarBuilderChartConfig — Builder configuration for a categorical bar chart tile. Each bar represents one group value. Distinct from stacked_bar, which is a time-series chart.
            - `displayType` 'bar', required — Display type discriminator. Must be "bar" for categorical bar charts.
            - `sourceId` string, required — ID of the data source to query.
            - `select` SelectItem[], required — Exactly one aggregated value used to size each bar.
              - …
            - `groupBy` string — Field expression to group results by (one bar per group value).
            - `orderBy` string — Optional custom SQL ORDER BY expression (raw SQL). Overrides the default value-descending ordering and, when combined with "limit", controls which bars are kept.
            - `numberFormat` NumberFormat
              - …
            - `limit` integer — Maximum number of bars (SQL LIMIT). Without a custom "orderBy" the query keeps the groups with the largest aggregated values; with an "orderBy" it keeps the first bars in that order. Omit or set 0 to fetch all groups.
          - CategoricalBarRawSqlChartConfig — 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` 'bar', required — Display as a categorical bar chart.
        - HeatmapChartConfig — Builder configuration for a heatmap tile. Heatmap is builder-only (no Raw SQL variant) and currently supports trace sources. The row-level filter lives at the chart-config level (where / whereLanguage), matching the HeatmapSeriesEditor in the UI.
          - `displayType` 'heatmap', required — Display type discriminator. Must be "heatmap" for heatmap tiles.
          - `sourceId` string, required — ID of the data source to query.
          - `select` HeatmapSelectItem[], required — Exactly one heatmap select item.
            - `valueExpression` string, required — SQL expression for the value being bucketed on the y-axis. Must be non-empty.
            - `countExpression` string — SQL expression for the count contributing to each bucket. Defaults to "count()" in the editor when omitted.
            - `heatmapScaleType` 'log' | 'linear' — Scale type used to bucket values on the y-axis.
          - `where` string — Row-level filter (syntax depends on whereLanguage).
          - `whereLanguage` 'sql' | 'lucene' — Query language for the where clause.
          - `numberFormat` NumberFormat
            - `output` 'currency' | 'percent' | 'byte' | 'time' | 'number' | 'data_rate' | 'throughput' | 'duration' — Output format type (currency, percent, byte, time, number, data_rate, throughput, duration).
            - `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.
        - 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.
        - EventPatternsChartConfig — Configuration for an event pattern mining tile. Clusters log or trace events by recurring message shapes.
          - `displayType` 'event_patterns', required — Display type discriminator. Must be "event_patterns" for pattern mining tiles.
          - `sourceId` string, required — ID of the data source to mine patterns from.
          - `select` string — Column or expression to mine patterns from. Leave empty to use the source default (Body for logs, SpanName for traces).
          - `where` string — Filter condition for the pattern mining query (syntax depends on whereLanguage).
          - `whereLanguage` 'sql' | 'lucene' — 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.
      - `containerId` string — References a DashboardContainer by id. Tiles without containerId render in the default ungrouped area.
      - `tabId` string — References a tab inside the tile's container by id. Requires containerId to be set, and the container to declare a matching tab.
      - `id` string, required — Unique tile ID assigned by the server.
    - `tags` string[] — Tags for organizing and filtering dashboards
    - `filters` Filter[] — Dropdown filters added to the dashboard. Each one broadcasts its selected value as a condition, acts as a variable which can be referenced in tile queries, or both.
      - `type` 'QUERY_EXPRESSION', required — Filter type. Must be "QUERY_EXPRESSION".
      - `name` string, required — Display name for the dashboard filter key
      - `expression` string, required — SQL expression used when querying values for this filter, and when applying this dashboard filter to tiles.
      - `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
      - `appliesToSourceIds` string[] — Optional list of source IDs this filter applies to. Omit or provide an empty array to apply the filter to ALL tiles regardless of source. A non-empty array restricts the filter to only tiles whose source ID is in the list; tiles using other sources are not affected by the selected filter value(s). Scopes the broadcast condition only, so a non-empty array is rejected when isBroadcastEnabled is false, and is omitted from responses for such a filter.
      - `isBroadcastEnabled` boolean — Whether the selected value is applied as a filter condition on every builder tile this filter applies to (see appliesToSourceIds), and every raw sql tile using the $__filters macro. Omitting the field means enabled.
      - `isVariableEnabled` boolean — Whether the selected value is exposed to tile queries as a dashboard variable named by variableName. Tiles may reference it as `$variableName` or using the (preferred) `$__filter($<variableName>)` and `$__conditionalAll(<condition>, $<variableName>)` macros.
      - `variableName` string — Token tiles reference this filter's selected value by, as `$variableName`. Must start with a letter and may contain only letters, numbers, and underscores. Defaults to the display name with whitespace replaced by underscores and remaining illegal characters removed, so a variable-enabled filter whose name derives nothing usable must send this field explicitly. Variable names must be unique across a dashboard's variable-enabled filters. Names the variable only, so the field is rejected when isVariableEnabled is not true, and is omitted from responses for such a filter.
      - `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.
      - union — A single saved dashboard filter selection. Either a rendered SQL condition, or a selection addressed by the name of the dashboard variable it belongs to.
        - SqlSavedFilterValue
          - `type` 'sql' — Filter type.
          - `condition` string, required — SQL filter condition. For example use expressions in the form "column IN ('value')".
        - VariableSavedFilterValue
          - `type` 'variable', required — Filter type.
          - `name` string, required — The variableName of the dashboard variable this selection belongs to. Only allowed for variable-enabled filters.
          - `values` string[], required — Selected values
    - `containers` DashboardContainer[] — Optional grouping containers. Each tile may join a container via tile.containerId, and a tab inside it via tile.tabId.
      - `id` string, required — Unique identifier for the container within the dashboard.
      - `title` string, required — Display title for the container.
      - `collapsed` boolean, required — Persisted default collapse state. Per-viewer state lives in the URL.
      - `collapsible` boolean — Whether the user can collapse the group.
      - `bordered` boolean — Whether to show a visual border around the group.
      - `tabs` DashboardContainerTab[] — Optional tabs. 2+ entries renders a tab bar; 0-1 entries renders a plain group header. Tiles join a tab via tabId.
        - `id` string, required — Unique identifier for the tab within its container.
        - `title` string, required — Display title for the tab.

## Other responses

- `401` — Unauthorized
- `404` — Dashboard not found

## Changes

- **2026-08-26** `3399efdca551` — 3 breaking, 1 warning
  - added `#/components/schemas/SqlSavedFilterValue, #/components/schemas/VariableSavedFilterValue` to the `data/allOf[#/components/schemas/Dashboard]/savedFilterValues/items/` response property `oneOf` list for the response status `200`
  - the `data/allOf[#/components/schemas/Dashboard]/savedFilterValues/items/` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - removed the required property `data/allOf[#/components/schemas/Dashboard]/savedFilterValues/items/condition` from the response with the `200` status
  - removed the optional property `data/allOf[#/components/schemas/Dashboard]/savedFilterValues/items/type` from the response with the `200` status
- …earlier changes not shown

[Full history](https://skmtc.dev/hyperdxio/apis/hyperdx-external-api/changes/api/v2/dashboards/:id/get.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/3399efdca551/schema)
