---
title: "Add a panel to a dashboard"
method: POST
path: "/api/{org_id}/dashboards/{dashboard_id}/panels"
tags: ["Dashboards"]
---

# Add a panel to a dashboard

`POST /api/{org_id}/dashboards/{dashboard_id}/panels`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/dashboards/{dashboard_id}/panels`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/dashboards/:dashboard_id/panels/post.ts> (a function with typed inputs; its response is checked against the schema)

Add a panel to an existing dashboard. Layout auto-computed if not specified. Returns new hash for chaining.

## Path parameters

- `org_id` string, required
- `dashboard_id` string, required

## Query parameters

- `folder` string
- `hash` string, required

## Request body

- object: Request body for AddPanel and UpdatePanel endpoints.
  - `panel` Panel, required
    - `config` PanelConfig, required
      - `aggregation` string, nullable
      - `alert_list_folder` string, nullable
      - `alert_list_max` number, double, nullable
      - `alert_list_sort` string, nullable
      - `alert_list_state` string[], nullable
      - `axis_border_show` boolean, nullable
      - `axis_label_mode` string, nullable
      - `axis_label_rotate` number, double, nullable
      - `axis_label_truncate_width` number, double, nullable
      - `axis_width` number, double, nullable
      - `background` Background
        - `type` string, required
        - `value` BackgroundValue
          - `color` string, required
      - `bar_gauge_mode` string, nullable
      - `bar_gauge_orientation` string, nullable
      - `bar_gauge_show_unfilled` boolean, nullable
      - `bar_radius` number, double, nullable
      - `bar_width` number, double, nullable
      - `base_map` BaseMap
        - `type` string, nullable
      - `boxplot_whisker` string, nullable
      - `bucket_unit` string, nullable
      - `bucket_unit_custom` string, nullable
      - `chart_align` string, nullable
      - `color` ColorCfg
        - `colorBySeries` ColorBySeries[], nullable
          - `color` string, nullable
          - `type` string, nullable
          - `value` string, nullable
        - `fixedColor` string[], nullable
        - `mode` string, nullable
        - `seriesBy` string, nullable
      - `column_order` string[], nullable
      - `connect_nulls` boolean, nullable
      - `connect_nulls_threshold` number, double, nullable
      - `decimals` number, double, nullable
      - `distribution_bucket_count` number, double, nullable
      - `distribution_bucket_offset` number, double, nullable
      - `distribution_bucket_size` number, double, nullable
      - `donut_inner_radius` number, double, nullable
      - `drilldown` DrillDown[], nullable
        - `data` DrillDownData
          - `dashboard` string, nullable
          - `folder` string, nullable
          - `logsMode` string, nullable
          - `logsQuery` string, nullable
          - `passAllVariables` boolean, nullable
          - `tab` string, nullable
          - `url` string, nullable
          - `variables` DrillDownVariables[], nullable
            - `name` string, nullable
            - `value` string, nullable
        - `findBy` string, nullable
        - `name` string, nullable
        - `targetBlank` boolean, nullable
        - `type` string, nullable
      - `enable_roam` boolean, nullable
      - `fill_gradient` boolean, nullable
      - `fill_opacity` number, double, nullable
      - `flame_graph_stack_field` string, nullable
      - `flame_graph_value_field` string, nullable
      - `funnel_orient` string, nullable
      - `funnel_show_percent` boolean, nullable
      - `funnel_sort` string, nullable
      - `gauge_neutral` number, double, nullable
      - `gauge_round_cap` boolean, nullable
      - `gauge_segments` number, double, nullable
      - `gauge_style` string, nullable
      - `heatmap_cell_gap` number, double, nullable
      - `heatmap_color_max` number, double, nullable
      - `heatmap_color_min` number, double, nullable
      - `heatmap_color_scale` string, nullable
      - `heatmap_hide_below` number, double, nullable
      - `heatmap_mode` string, nullable
      - `heatmap_palette` string, nullable
      - `heatmap_palette_reverse` boolean, nullable
      - `heatmap_y_bucket` HeatmapYBucket: Heatmap y buckets: "size" mode is fixed-width, "log" mode one per power of `base` (2 or 10).
        - `base` number, double, nullable
        - `mode` string, nullable
        - `size` number, double, nullable
      - `heatmap_y_max` number, double, nullable
      - `heatmap_y_min` number, double, nullable
      - `heatmap_y_sort` string, nullable
      - `hidden_columns` string[], nullable
      - `hostmap_cell_label` string, nullable
      - `hostmap_cell_shape` string, nullable
      - `hostmap_cell_sort` string, nullable
      - `hostmap_entity_label` string, nullable
      - `hostmap_group_by` string[], nullable
      - `hostmap_group_sort` string, nullable
      - `hostmap_reduction` string, nullable
      - `label_option` LabelOption
        - `position` 'top' | 'left' | 'right' | 'bottom' | 'inside' | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom' | 'insideTopLeft' | 'insideBottomLeft' | 'insideTopRight' | 'insideBottomRight' | 'outside'
        - `rotate` number, double, nullable
      - `lat_label` string, nullable
      - `legend_height` LegendHeight
        - `unit` string, nullable
        - `value` number, double, nullable
      - `legend_values` string[], nullable
      - `legend_width` LegendWidth
        - `unit` string, nullable
        - `value` number, double, nullable
      - `legends_position` string, nullable
      - `legends_type` string, nullable
      - `line_interpolation` 'smooth' | 'linear' | 'step-start' | 'step-end' | 'step-middle'
      - `line_style` string, nullable
      - `line_thickness` number, double, nullable
      - `logs_level_field` string, nullable
      - `logs_message_field` string, nullable
      - `logs_order` string, nullable
      - `logs_prettify_json` boolean, nullable
      - `logs_show_time` boolean, nullable
      - `logs_time_field` string, nullable
      - `logs_wrap` boolean, nullable
      - `lon_label` string, nullable
      - `map_cluster` boolean, nullable
      - `map_cluster_radius` number, double, nullable
      - `map_symbol_style` MapSymbolStyle
        - `size` string
        - `size_by_value` SizeByValue
          - `max` number, double
          - `min` number, double
        - `size_fixed` number, double
      - `map_type` MapType
        - `type` string, nullable
      - `map_view` MapView
        - `lat` number, double
        - `lng` number, double
        - `zoom` number, double
      - `mappings` Mapping[], nullable
        - `color` string, nullable
        - `from` string, nullable
        - `match` string, nullable
        - `pattern` string, nullable
        - `text` string, nullable
        - `textColor` string, nullable
        - `to` string, nullable
        - `type` string, nullable
        - `value` string, nullable
      - `mark_area` MarkArea[], nullable
        - `axis` string, nullable
        - `color` string, nullable
        - `from` string, nullable
        - `name` string, nullable
        - `to` string, nullable
      - `mark_line` MarkLine[], nullable
        - `name` string, nullable
        - `type` string, nullable
        - `value` string, nullable
      - `merge_gaps` number, double, nullable
      - `name_label` string, nullable
      - `no_data_text` string, nullable
      - `no_value_replacement` string, nullable
      - `node_graph_layout` string, nullable
      - `node_graph_show_edge_labels` boolean, nullable
      - `override_config` OverrideConfig[], nullable
        - `config` Config[], nullable
          - union
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - `field` Field
          - `matchBy` string
          - `value` string
      - `panel_time_enabled` boolean, nullable
      - `panel_time_range` DateTimeOptions
        - `endTime` integer, nullable
        - `relativeTimePeriod` string, nullable
        - `startTime` integer, nullable
        - `type` string
      - `pie_label_content` string[], nullable
      - `pie_other_threshold` number, double, nullable
      - `promql_series_limit` number, double, nullable
      - `promql_table_mode` string, nullable
      - `row_gap` number, double, nullable
      - `row_height` number, double, nullable
      - `row_sort` string, nullable
      - `scatter_color_field` string, nullable
      - `scatter_size_field` string, nullable
      - `scatter_size_max` number, double, nullable
      - `scatter_size_min` number, double, nullable
      - `show_bar_track` boolean, nullable
      - `show_exemplars` boolean, nullable
      - `show_gauge_end_labels` boolean, nullable
      - `show_gridlines` boolean, nullable
      - `show_legends` boolean, required
      - `show_state_text` boolean, nullable
      - `show_symbol` boolean, nullable
      - `sort_order` string, nullable
      - `sparkline` Sparkline: Optional trend sparkline drawn inside the metric ("Metric Text") panel — the value + a small line/area/bar chart of the underlying series (KPI stat card).
        - `color` string, nullable
        - `enabled` boolean
        - `fillOpacity` number, double, nullable
        - `layout` string, nullable
        - `lineWidth` number, double, nullable
        - `type` string, nullable
      - `stack_mode` string, nullable
      - `stat_text_mode` string, nullable
      - `state_timeline_display` string, nullable
      - `state_value_align` string, nullable
      - `step_value` string, nullable
      - `sticky_columns` string[], nullable
      - `sticky_first_column` boolean, nullable
      - `sunburst_show_labels` boolean, nullable
      - `symbol_opacity` number, double, nullable
      - `symbol_size` number, double, nullable
      - `table_aggregations` string[], nullable
      - `table_density` string, nullable
      - `table_dynamic_columns` boolean, nullable
      - `table_expandable_rows` boolean, nullable
      - `table_filtering` boolean, nullable
      - `table_footer_calcs` string[], nullable
      - `table_pagination` boolean, nullable
      - `table_pagination_rows_per_page` integer, nullable
      - `table_pivot_show_col_totals` boolean, nullable
      - `table_pivot_show_row_totals` boolean, nullable
      - `table_pivot_sticky_col_totals` boolean, nullable
      - `table_pivot_sticky_row_totals` boolean, nullable
      - `table_transpose` boolean, nullable
      - `thresholds` Thresholds
        - `baseColor` string, nullable
        - `mode` string, nullable
        - `showAs` string, nullable
        - `steps` ThresholdStep[], nullable
          - `color` string, nullable
          - `value` number, double, nullable
      - `tooltip_mode` string, nullable
      - `tooltip_sort` string, nullable
      - `top_results` number, double, nullable
      - `top_results_others` boolean, nullable
      - `treemap_show_breadcrumb` boolean, nullable
      - `trellis` Trellis
        - `group_by_y_axis` boolean, nullable
        - `layout` string, nullable
        - `num_of_columns` integer
      - `unit` string, nullable
      - `unit_custom` string, nullable
      - `value_font_size` number, double, nullable
      - `visible_columns` string[], nullable
      - `weight_label` string, nullable
      - `wrap_table_cells` boolean, nullable
      - `y_axis_hard_max` number, double, nullable
      - `y_axis_hard_min` number, double, nullable
      - `y_axis_label` string, nullable
      - `y_axis_log_base` number, double, nullable
      - `y_axis_max` number, double, nullable
      - `y_axis_min` number, double, nullable
      - `y_axis_min_interval` number, double, nullable
      - `y_axis_scale` string, nullable
    - `customChartContent` string, nullable
    - `description` string, required
    - `htmlContent` string, nullable
    - `id` string, required
    - `layout` Layout
      - `h` integer
      - `i` integer
      - `w` integer
      - `x` integer
      - `y` integer
    - `markdownContent` string, nullable
    - `queries` Query[], required
      - `config` QueryConfig, required
        - `formula` string, nullable
        - `hide` boolean, nullable
        - `layer_type` string, nullable
        - `limit` number, double, nullable
        - `max` number, double, nullable
        - `min` number, double, nullable
        - `promql_legend` string, required
        - `promql_legend_fallback` string, nullable
        - `query_label` string, nullable
        - `query_type` string, nullable
        - `range_mode` string, nullable
        - `ref` string, nullable
        - `step_value` string, nullable
        - `time_shift` TimeShift[], nullable
          - `offSet` string, nullable
        - `weight_fixed` number, double, nullable
      - `customQuery` boolean, required
      - `fields` PanelFields, required
        - `breakdown` AxisItem[], nullable
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `filter` union, required
          - FilterCondition
            - `column` StreamFieldObj
              - …
            - `emptyLiteral` boolean, nullable: Set when `value` is an explicit `''` from SQL, so the builder keeps `x <> ''` instead of treating the empty value as "not entered yet".
            - `filterType` string, required
            - `logicalOperator` string, required
            - `operator` string, nullable
            - `type` string, required
            - `value` string, nullable
            - `values` string[], required
          - GroupType
            - `conditions` object[], required
              - …
            - `filterType` string, required
            - `logicalOperator` string, required
        - `latitude` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `longitude` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `name` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `promql_labels` PromQLLabelFilter[]
          - `group` integer, nullable: The OR group the matcher belongs to; absent means the base list every group is ANDed with.
          - `label` string
          - `negate` boolean, nullable: Set on every matcher of a negated group.
          - `op` string
          - `value` string
        - `promql_operations` PromQLOperation[]
          - `id` string
          - `params` PromQLOperationParam[], nullable
            - union
              - …
        - `source` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `stream` string, required
        - `stream_type` 'logs' | 'metrics' | 'traces' | 'profiles' | 'service_graph' | 'enrichment_tables' | 'file_list' | 'metadata' | 'index', required
        - `target` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `value` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `value_for_maps` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `weight` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `x` AxisItem[], required
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `y` AxisItem[], required
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `z` AxisItem[]
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
      - `joins` Join[], nullable
        - `conditions` JoinCondition[], required
          - `leftField` SelectedField, required
            - `field` string, required
            - `streamAlias` string, nullable
          - `operation` string, required
          - `rightField` SelectedField, required
            - `field` string, required
            - `streamAlias` string, nullable
        - `joinType` string, required
        - `stream` string, required
        - `streamAlias` string, required
      - `query` string, nullable
      - `tabName` string, nullable
      - `vrlFunctionQuery` string, nullable
    - `queryType` string
    - `title` string, required
    - `type` string, required
  - `tabId` string, nullable

## Response `200`

Panel added

- object: Response body for AddPanel and UpdatePanel endpoints.
  - `hash` string, required
  - `panel` Panel, required
    - `config` PanelConfig, required
      - `aggregation` string, nullable
      - `alert_list_folder` string, nullable
      - `alert_list_max` number, double, nullable
      - `alert_list_sort` string, nullable
      - `alert_list_state` string[], nullable
      - `axis_border_show` boolean, nullable
      - `axis_label_mode` string, nullable
      - `axis_label_rotate` number, double, nullable
      - `axis_label_truncate_width` number, double, nullable
      - `axis_width` number, double, nullable
      - `background` Background
        - `type` string, required
        - `value` BackgroundValue
          - `color` string, required
      - `bar_gauge_mode` string, nullable
      - `bar_gauge_orientation` string, nullable
      - `bar_gauge_show_unfilled` boolean, nullable
      - `bar_radius` number, double, nullable
      - `bar_width` number, double, nullable
      - `base_map` BaseMap
        - `type` string, nullable
      - `boxplot_whisker` string, nullable
      - `bucket_unit` string, nullable
      - `bucket_unit_custom` string, nullable
      - `chart_align` string, nullable
      - `color` ColorCfg
        - `colorBySeries` ColorBySeries[], nullable
          - `color` string, nullable
          - `type` string, nullable
          - `value` string, nullable
        - `fixedColor` string[], nullable
        - `mode` string, nullable
        - `seriesBy` string, nullable
      - `column_order` string[], nullable
      - `connect_nulls` boolean, nullable
      - `connect_nulls_threshold` number, double, nullable
      - `decimals` number, double, nullable
      - `distribution_bucket_count` number, double, nullable
      - `distribution_bucket_offset` number, double, nullable
      - `distribution_bucket_size` number, double, nullable
      - `donut_inner_radius` number, double, nullable
      - `drilldown` DrillDown[], nullable
        - `data` DrillDownData
          - `dashboard` string, nullable
          - `folder` string, nullable
          - `logsMode` string, nullable
          - `logsQuery` string, nullable
          - `passAllVariables` boolean, nullable
          - `tab` string, nullable
          - `url` string, nullable
          - `variables` DrillDownVariables[], nullable
            - `name` string, nullable
            - `value` string, nullable
        - `findBy` string, nullable
        - `name` string, nullable
        - `targetBlank` boolean, nullable
        - `type` string, nullable
      - `enable_roam` boolean, nullable
      - `fill_gradient` boolean, nullable
      - `fill_opacity` number, double, nullable
      - `flame_graph_stack_field` string, nullable
      - `flame_graph_value_field` string, nullable
      - `funnel_orient` string, nullable
      - `funnel_show_percent` boolean, nullable
      - `funnel_sort` string, nullable
      - `gauge_neutral` number, double, nullable
      - `gauge_round_cap` boolean, nullable
      - `gauge_segments` number, double, nullable
      - `gauge_style` string, nullable
      - `heatmap_cell_gap` number, double, nullable
      - `heatmap_color_max` number, double, nullable
      - `heatmap_color_min` number, double, nullable
      - `heatmap_color_scale` string, nullable
      - `heatmap_hide_below` number, double, nullable
      - `heatmap_mode` string, nullable
      - `heatmap_palette` string, nullable
      - `heatmap_palette_reverse` boolean, nullable
      - `heatmap_y_bucket` HeatmapYBucket: Heatmap y buckets: "size" mode is fixed-width, "log" mode one per power of `base` (2 or 10).
        - `base` number, double, nullable
        - `mode` string, nullable
        - `size` number, double, nullable
      - `heatmap_y_max` number, double, nullable
      - `heatmap_y_min` number, double, nullable
      - `heatmap_y_sort` string, nullable
      - `hidden_columns` string[], nullable
      - `hostmap_cell_label` string, nullable
      - `hostmap_cell_shape` string, nullable
      - `hostmap_cell_sort` string, nullable
      - `hostmap_entity_label` string, nullable
      - `hostmap_group_by` string[], nullable
      - `hostmap_group_sort` string, nullable
      - `hostmap_reduction` string, nullable
      - `label_option` LabelOption
        - `position` 'top' | 'left' | 'right' | 'bottom' | 'inside' | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom' | 'insideTopLeft' | 'insideBottomLeft' | 'insideTopRight' | 'insideBottomRight' | 'outside'
        - `rotate` number, double, nullable
      - `lat_label` string, nullable
      - `legend_height` LegendHeight
        - `unit` string, nullable
        - `value` number, double, nullable
      - `legend_values` string[], nullable
      - `legend_width` LegendWidth
        - `unit` string, nullable
        - `value` number, double, nullable
      - `legends_position` string, nullable
      - `legends_type` string, nullable
      - `line_interpolation` 'smooth' | 'linear' | 'step-start' | 'step-end' | 'step-middle'
      - `line_style` string, nullable
      - `line_thickness` number, double, nullable
      - `logs_level_field` string, nullable
      - `logs_message_field` string, nullable
      - `logs_order` string, nullable
      - `logs_prettify_json` boolean, nullable
      - `logs_show_time` boolean, nullable
      - `logs_time_field` string, nullable
      - `logs_wrap` boolean, nullable
      - `lon_label` string, nullable
      - `map_cluster` boolean, nullable
      - `map_cluster_radius` number, double, nullable
      - `map_symbol_style` MapSymbolStyle
        - `size` string
        - `size_by_value` SizeByValue
          - `max` number, double
          - `min` number, double
        - `size_fixed` number, double
      - `map_type` MapType
        - `type` string, nullable
      - `map_view` MapView
        - `lat` number, double
        - `lng` number, double
        - `zoom` number, double
      - `mappings` Mapping[], nullable
        - `color` string, nullable
        - `from` string, nullable
        - `match` string, nullable
        - `pattern` string, nullable
        - `text` string, nullable
        - `textColor` string, nullable
        - `to` string, nullable
        - `type` string, nullable
        - `value` string, nullable
      - `mark_area` MarkArea[], nullable
        - `axis` string, nullable
        - `color` string, nullable
        - `from` string, nullable
        - `name` string, nullable
        - `to` string, nullable
      - `mark_line` MarkLine[], nullable
        - `name` string, nullable
        - `type` string, nullable
        - `value` string, nullable
      - `merge_gaps` number, double, nullable
      - `name_label` string, nullable
      - `no_data_text` string, nullable
      - `no_value_replacement` string, nullable
      - `node_graph_layout` string, nullable
      - `node_graph_show_edge_labels` boolean, nullable
      - `override_config` OverrideConfig[], nullable
        - `config` Config[], nullable
          - union
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
            - object
              - …
        - `field` Field
          - `matchBy` string
          - `value` string
      - `panel_time_enabled` boolean, nullable
      - `panel_time_range` DateTimeOptions
        - `endTime` integer, nullable
        - `relativeTimePeriod` string, nullable
        - `startTime` integer, nullable
        - `type` string
      - `pie_label_content` string[], nullable
      - `pie_other_threshold` number, double, nullable
      - `promql_series_limit` number, double, nullable
      - `promql_table_mode` string, nullable
      - `row_gap` number, double, nullable
      - `row_height` number, double, nullable
      - `row_sort` string, nullable
      - `scatter_color_field` string, nullable
      - `scatter_size_field` string, nullable
      - `scatter_size_max` number, double, nullable
      - `scatter_size_min` number, double, nullable
      - `show_bar_track` boolean, nullable
      - `show_exemplars` boolean, nullable
      - `show_gauge_end_labels` boolean, nullable
      - `show_gridlines` boolean, nullable
      - `show_legends` boolean, required
      - `show_state_text` boolean, nullable
      - `show_symbol` boolean, nullable
      - `sort_order` string, nullable
      - `sparkline` Sparkline: Optional trend sparkline drawn inside the metric ("Metric Text") panel — the value + a small line/area/bar chart of the underlying series (KPI stat card).
        - `color` string, nullable
        - `enabled` boolean
        - `fillOpacity` number, double, nullable
        - `layout` string, nullable
        - `lineWidth` number, double, nullable
        - `type` string, nullable
      - `stack_mode` string, nullable
      - `stat_text_mode` string, nullable
      - `state_timeline_display` string, nullable
      - `state_value_align` string, nullable
      - `step_value` string, nullable
      - `sticky_columns` string[], nullable
      - `sticky_first_column` boolean, nullable
      - `sunburst_show_labels` boolean, nullable
      - `symbol_opacity` number, double, nullable
      - `symbol_size` number, double, nullable
      - `table_aggregations` string[], nullable
      - `table_density` string, nullable
      - `table_dynamic_columns` boolean, nullable
      - `table_expandable_rows` boolean, nullable
      - `table_filtering` boolean, nullable
      - `table_footer_calcs` string[], nullable
      - `table_pagination` boolean, nullable
      - `table_pagination_rows_per_page` integer, nullable
      - `table_pivot_show_col_totals` boolean, nullable
      - `table_pivot_show_row_totals` boolean, nullable
      - `table_pivot_sticky_col_totals` boolean, nullable
      - `table_pivot_sticky_row_totals` boolean, nullable
      - `table_transpose` boolean, nullable
      - `thresholds` Thresholds
        - `baseColor` string, nullable
        - `mode` string, nullable
        - `showAs` string, nullable
        - `steps` ThresholdStep[], nullable
          - `color` string, nullable
          - `value` number, double, nullable
      - `tooltip_mode` string, nullable
      - `tooltip_sort` string, nullable
      - `top_results` number, double, nullable
      - `top_results_others` boolean, nullable
      - `treemap_show_breadcrumb` boolean, nullable
      - `trellis` Trellis
        - `group_by_y_axis` boolean, nullable
        - `layout` string, nullable
        - `num_of_columns` integer
      - `unit` string, nullable
      - `unit_custom` string, nullable
      - `value_font_size` number, double, nullable
      - `visible_columns` string[], nullable
      - `weight_label` string, nullable
      - `wrap_table_cells` boolean, nullable
      - `y_axis_hard_max` number, double, nullable
      - `y_axis_hard_min` number, double, nullable
      - `y_axis_label` string, nullable
      - `y_axis_log_base` number, double, nullable
      - `y_axis_max` number, double, nullable
      - `y_axis_min` number, double, nullable
      - `y_axis_min_interval` number, double, nullable
      - `y_axis_scale` string, nullable
    - `customChartContent` string, nullable
    - `description` string, required
    - `htmlContent` string, nullable
    - `id` string, required
    - `layout` Layout
      - `h` integer
      - `i` integer
      - `w` integer
      - `x` integer
      - `y` integer
    - `markdownContent` string, nullable
    - `queries` Query[], required
      - `config` QueryConfig, required
        - `formula` string, nullable
        - `hide` boolean, nullable
        - `layer_type` string, nullable
        - `limit` number, double, nullable
        - `max` number, double, nullable
        - `min` number, double, nullable
        - `promql_legend` string, required
        - `promql_legend_fallback` string, nullable
        - `query_label` string, nullable
        - `query_type` string, nullable
        - `range_mode` string, nullable
        - `ref` string, nullable
        - `step_value` string, nullable
        - `time_shift` TimeShift[], nullable
          - `offSet` string, nullable
        - `weight_fixed` number, double, nullable
      - `customQuery` boolean, required
      - `fields` PanelFields, required
        - `breakdown` AxisItem[], nullable
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `filter` union, required
          - FilterCondition
            - `column` StreamFieldObj
              - …
            - `emptyLiteral` boolean, nullable: Set when `value` is an explicit `''` from SQL, so the builder keeps `x <> ''` instead of treating the empty value as "not entered yet".
            - `filterType` string, required
            - `logicalOperator` string, required
            - `operator` string, nullable
            - `type` string, required
            - `value` string, nullable
            - `values` string[], required
          - GroupType
            - `conditions` object[], required
              - …
            - `filterType` string, required
            - `logicalOperator` string, required
        - `latitude` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `longitude` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `name` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `promql_labels` PromQLLabelFilter[]
          - `group` integer, nullable: The OR group the matcher belongs to; absent means the base list every group is ANDed with.
          - `label` string
          - `negate` boolean, nullable: Set on every matcher of a negated group.
          - `op` string
          - `value` string
        - `promql_operations` PromQLOperation[]
          - `id` string
          - `params` PromQLOperationParam[], nullable
            - union
              - …
        - `source` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `stream` string, required
        - `stream_type` 'logs' | 'metrics' | 'traces' | 'profiles' | 'service_graph' | 'enrichment_tables' | 'file_list' | 'metadata' | 'index', required
        - `target` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `value` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `value_for_maps` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `weight` AxisItem
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `x` AxisItem[], required
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `y` AxisItem[], required
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
        - `z` AxisItem[]
          - `alias` string, required
          - `args` AxisArg[], nullable
            - `type` string, nullable
            - `value` union
              - …
          - `color` string, nullable
          - `column` string, nullable
          - `functionName` string, nullable
          - `havingConditions` HavingConditions[], nullable
            - `operator` string, nullable
            - `value` number, double, nullable
          - `isDerived` boolean, nullable
          - `label` string, required
          - `rawQuery` string, nullable
          - `showFieldAsJson` boolean, nullable
          - `sortBy` string, nullable
          - `treatAsNonTimestamp` boolean, nullable
          - `type` 'build' | 'raw' | 'custom'
      - `joins` Join[], nullable
        - `conditions` JoinCondition[], required
          - `leftField` SelectedField, required
            - `field` string, required
            - `streamAlias` string, nullable
          - `operation` string, required
          - `rightField` SelectedField, required
            - `field` string, required
            - `streamAlias` string, nullable
        - `joinType` string, required
        - `stream` string, required
        - `streamAlias` string, required
      - `query` string, nullable
      - `tabName` string, nullable
      - `vrlFunctionQuery` string, nullable
    - `queryType` string
    - `title` string, required
    - `type` string, required
  - `tabId` string, required

## Other responses

- `400`: Unsupported dashboard version
- `404`: Dashboard or tab not found
- `409`: Panel ID already exists or hash conflict

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
