Export a dashboard

Retrieves the full configuration of a dashboard or a public template as a JSON object. This is useful for backing up dashboards or creating new dashboards via the import endpoint.

This endpoint can be used to export both your own dashboards and dashboard templates.

GET https://telemetry.betterstack.com/api/v2/dashboards/{id}/export

URL parameters

id
required string

Headers

Authorization
required string
200

Response body

{
  "id": 12345,
  "name": "Better Stack Collector Dashboard",
  "data": {
    "name": "Better Stack Collector Dashboard",
    "refresh_interval": 30,
    "date_range_from": "now-3h",
    "date_range_to": "now",
    "source_eligibility_sql": null,
    "preset": {
      "id": 67890,
      "name": null,
      "preset_type": "implicit",
      "preset_variables": [
        {
          "name": "service",
          "variable_type": "select_value",
          "values": [
            "web"
          ],
          "default_values": [
            "web",
            "api"
          ],
          "sql_definition": null,
          "structured_value": null,
          "allow_multiple_values": false
        }
      ]
    },
    "charts": [
      {
        "chart_type": "line_chart",
        "name": "CPU Usage",
        "description": null,
        "x": 0,
        "y": 0,
        "w": 6,
        "h": 4,
        "transform_with": "async (existingDataByQuery, newDataByQuery, lastRun) => { return newDataByQuery; }",
        "finalize_with": null,
        "fake_with": null,
        "settings": {
          "unit": "percent",
          "y_axis_scale": "linear"
        },
        "explanation": null,
        "explore_link_url": null,
        "chart_queries": [
          {
            "name": null,
            "query_type": "sql_expression",
            "sql_query": "SELECT {{time}} as time, avg(cpu_usage) as value FROM metrics WHERE service = '{{service}}' GROUP BY time",
            "where_condition": null,
            "static_text": null,
            "x_axis": [],
            "y_axis": null,
            "point_size": null,
            "coordinates": [],
            "filters": null,
            "where": [],
            "group_by": null,
            "having": [],
            "order_by": [],
            "source_variable": "source",
            "promql_query": null,
            "pql_query": null,
            "funnel_query": null,
            "mergeable_split_aggregations": null
          }
        ],
        "chart_alerts": []
      }
    ],
    "sections": [
      {
        "name": "System Metrics",
        "y": 0,
        "collapsed": false,
        "explanation": null
      }
    ]
  }
}
401
404

Response body

{
  "errors": "Resource with the provided ID was not found"
}

Response attributes

id
integer
name
string
data
object
data.name
string
data.refresh_interval
integer
data.date_range_from
string
data.date_range_to
string
data.source_eligibility_sql
string or null
data.preset
object
data.preset.id
integer
data.preset.name
string or null
data.preset.preset_type
string
data.preset.preset_variables
array
data.preset.preset_variables[].name
string
data.preset.preset_variables[].variable_type
string
data.preset.preset_variables[].values
array
data.preset.preset_variables[].default_values
array or null
data.preset.preset_variables[].sql_definition
string or null
data.preset.preset_variables[].structured_value
object or null
data.preset.preset_variables[].allow_multiple_values
boolean
data.charts
array
data.charts[].chart_type
string
data.charts[].name
string
data.charts[].description
string or null
data.charts[].x
integer
data.charts[].y
integer
data.charts[].w
integer
data.charts[].h
integer
data.charts[].transform_with
string or null
data.charts[].finalize_with
string or null
data.charts[].fake_with
string or null
data.charts[].settings
object
data.charts[].explanation
string or null
data.charts[].explore_link_url
string or null
data.charts[].chart_queries
array
data.charts[].chart_queries[].name
string or null
data.charts[].chart_queries[].query_type
string
data.charts[].chart_queries[].sql_query
string or null
data.charts[].chart_queries[].where_condition
string or null
data.charts[].chart_queries[].static_text
string or null
data.charts[].chart_queries[].x_axis
array
data.charts[].chart_queries[].y_axis
array or null
data.charts[].chart_queries[].point_size
array or null
data.charts[].chart_queries[].coordinates
array
data.charts[].chart_queries[].filters
array or null
data.charts[].chart_queries[].where
array
data.charts[].chart_queries[].group_by
array or null
data.charts[].chart_queries[].having
array
data.charts[].chart_queries[].order_by
array
data.charts[].chart_queries[].source_variable
string or null
data.charts[].chart_queries[].promql_query
string or null
data.charts[].chart_queries[].pql_query
string or null
data.charts[].chart_queries[].funnel_query
object or null
data.charts[].chart_queries[].mergeable_split_aggregations
object or null
data.charts[].chart_alerts
array
data.sections
array
data.sections[].name
string or null
data.sections[].y
integer
data.sections[].collapsed
boolean
data.sections[].explanation
string or null

Example cURL

Example
curl --request GET \
  --url "https://telemetry.betterstack.com/api/v2/dashboards/1234/export" \
  --header "Authorization: Bearer $TOKEN"