Update a dashboard

Updates an existing dashboard by its ID. You only need to provide the fields you want to change.

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

URL parameters

id
required string

Headers

Authorization
required string

Body parameters

name
string
dashboard_group_id
integer
refresh_interval
integer
date_range_from
string
date_range_to
string
source_eligibility_sql
string
variables
array
200

Response body

{
  "data": {
    "id": "12345",
    "type": "dashboard",
    "attributes": {
      "team_id": 123,
      "team_name": "My Team",
      "name": "Updated API Dashboard",
      "dashboard_group_id": null,
      "refresh_interval": 120,
      "date_range_from": "now-3h",
      "date_range_to": "now",
      "source_eligibility_sql": null,
      "created_at": "2026-03-25T10:00:00.000Z",
      "updated_at": "2026-03-25T10:05:00.000Z",
      "variables": [
        {
          "name": "time",
          "variable_type": "datetime",
          "values": [],
          "default_values": []
        },
        {
          "name": "start_time",
          "variable_type": "datetime",
          "values": [],
          "default_values": []
        },
        {
          "name": "end_time",
          "variable_type": "datetime",
          "values": [],
          "default_values": []
        },
        {
          "name": "source",
          "variable_type": "source",
          "values": [],
          "default_values": []
        },
        {
          "name": "environment",
          "variable_type": "string",
          "values": [
            "staging"
          ],
          "default_values": [
            "staging"
          ]
        }
      ],
      "charts": [],
      "sections": [],
      "has_overlaps": false
    }
  }
}
404
422

Response body

{
  "errors": "Sorry, some values are incorrect",
  "invalid_values": {
    "name": [
      "can't be blank"
    ]
  }
}

What happens to variables and fields you leave out?

Custom variables missing from variables are removed. System variables time, start_time, end_time, and source are always kept.

A listed variable that already exists keeps its variable_type, default_values, sql_definition, structured_value, and allow_multiple_values when you leave them out, and null clears any of them except variable_type. Its selection is not kept: send values again, or it's cleared. Changing variable_type drops the old default_values, sql_definition, and structured_value.

Example request

cURL
curl --request PATCH \
  --url https://telemetry.betterstack.com/api/v2/dashboards/1234 \
  --header "Authorization: Bearer $TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "Updated API Dashboard",
    "refresh_interval": 120,
    "variables": [
      {
        "name": "environment",
        "variable_type": "string",
        "values": ["staging"],
        "default_values": ["staging"]
      }
    ]
  }'