2022-05-26 11:06:25 -04:00
---
aliases:
2025-11-13 09:04:57 -05:00
- ../../../http_api/dashboard/ # /docs/grafana/next/http_api/dashboard/
- ../../../developers/http_api/dashboard/ # /docs/grafana/next/developers/http_api/dashboard/
canonical: https://grafana.com/docs/grafana/latest/developer-resources/api-reference/http-api/dashboard/
2022-05-26 11:06:25 -04:00
description: Grafana Dashboard HTTP API
keywords:
- grafana
- http
- documentation
- api
- dashboard
Explicitly set all front matter labels in the source files (#71548)
* Set every page to have defaults of 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration pages to have of 'Cloud', 'Enterprise', and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/enterprise-licensing pages to have 'Enterprise' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/organization-management pages to have 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/provisioning pages to have 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/recorded-queries pages to have labels cloud,enterprise
* Set administration/roles-and-permissions/access-control pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/stats-and-license pages to have labels cloud,enterprise
* Set alerting pages to have labels cloud,enterprise,oss
* Set breaking-changes pages to have labels cloud,enterprise,oss
* Set dashboards pages to have labels cloud,enterprise,oss
* Set datasources pages to have labels cloud,enterprise,oss
* Set explore pages to have labels cloud,enterprise,oss
* Set fundamentals pages to have labels cloud,enterprise,oss
* Set introduction/grafana-cloud pages to have labels cloud
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix introduction pages products
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set panels-visualizations pages to have labels cloud,enterprise,oss
* Set release-notes pages to have labels cloud,enterprise,oss
* Set search pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/audit-grafana pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/configure-authentication pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/configure-authentication/enhanced-ldap pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-authentication/saml pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-request-security pages to have labels cloud,enterprise,oss
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/configure-team-sync pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/export-logs pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set troubleshooting pages to have labels cloud,enterprise,oss
* Set whatsnew pages to have labels cloud,enterprise,oss
* Apply updated labels from review
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-07-18 04:10:12 -04:00
labels:
products:
- enterprise
- oss
2025-11-13 09:04:57 -05:00
- cloud
2022-12-09 11:36:04 -05:00
title: Dashboard HTTP API
2026-04-15 06:17:11 -04:00
weight: 100
2022-05-26 11:06:25 -04:00
---
2016-02-03 01:59:22 -05:00
2026-04-02 09:13:57 -04:00
# Dashboard APIs
2016-02-03 01:59:22 -05:00
2026-04-01 09:59:52 -04:00
{{< admonition type = "note" > }}
2026-04-15 06:17:11 -04:00
Available in Grafana 12 and later.
2022-05-20 15:48:52 -04:00
2026-04-15 06:17:11 -04:00
This API complies with the new Grafana API structure. To learn more refer to documentation about the [API structure in Grafana ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/developer-resources/api-reference/http-api/apis ).
2026-04-01 09:59:52 -04:00
{{< / admonition > }}
2018-02-05 14:53:58 -05:00
2026-04-15 06:17:11 -04:00
## Requirements
If you're running Grafana Enterprise, you'll need to have specific permissions for some endpoints. Refer to [Role-based access control permissions ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/administration/roles-and-permissions/access-control/custom-role-actions-scopes/ ) for more information.
2025-04-25 07:06:12 -04:00
## Create Dashboard
2018-02-05 14:53:58 -05:00
2026-03-31 01:50:47 -04:00
`POST /apis/dashboard.grafana.app/v1/namespaces/:namespace/dashboards`
2025-04-25 07:06:12 -04:00
Creates a new dashboard.
2025-05-14 09:26:46 -04:00
- namespace: to read more about the namespace to use, see the [API overview ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/developers/http_api/apis/ ).
2025-04-25 07:06:12 -04:00
**Required permissions**
See note in the [introduction ]({{< ref "#dashboard-api" >}} ) for an explanation.
<!-- prettier - ignore - start -->
| Action | Scope |
| ------------------- | ------------------------------------------------------------------------------------------------------- |
| `dashboards:create` | < ul >< li > `folders:*`</ li >< li > `folders:uid:*`</ li ></ ul > |
| `dashboards:write` | < ul >< li > `dashboards:*`</ li >< li > `dashboards:uid:*`</ li >< li > `folders:*`</ li >< li > `folders:uid:*`</ li ></ ul > |
{ .no-spacing-list }
<!-- prettier - ignore - end -->
**Example Create Request**:
```http
2026-03-31 01:50:47 -04:00
POST /apis/dashboard.grafana.app/v1/namespaces/default/dashboards HTTP/1.1
2025-04-25 07:06:12 -04:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"metadata": {
"name": "gdxccn",
"annotations": {
"grafana.app/folder": "fef30w4jaxla8b"
},
},
"spec": {
"annotations": {
"list": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": false,
"iconColor": "red",
"name": "Example annotation",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
}
}]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"links": [
{
"asDropdown": false,
"icon": "external link",
"includeVars": false,
"keepTime": false,
"tags": [],
"targetBlank": false,
"title": "Example Link",
"tooltip": "",
"type": "dashboards",
"url": ""
}
],
"panels": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"description": "With a description",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.0.0",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"refId": "A"
}
],
"title": "Example panel",
"type": "timeseries"
}
],
"preload": false,
"schemaVersion": 41,
"tags": ["example"],
"templating": {
"list": [
{
"current": {
"text": "",
"value": ""
},
"definition": "",
"description": "example description",
"label": "ExampleLabel",
"name": "ExampleVariable",
"options": [],
"query": "",
"refresh": 1,
"regex": "cluster",
"type": "query"
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "Example Dashboard",
"version": 0
}
}
```
JSON Body schema:
- **metadata.name** – The Grafana [unique identifier ]({{< ref "#identifier-id-vs-unique-identifier-uid" >}} ). If you do not want to provide this, set metadata.generateName instead to the prefix you would like for the randomly generated uid (cannot be an empty string).
- **metadata.annotations.grafana.app/folder** - Optional field, the unique identifier of the folder under which the dashboard should be created.
- **spec** – The dashboard json.
2026-01-09 16:53:56 -05:00
{{< admonition type = "note" > }}
Custom labels and annotations in the metadata field are supported on some instances, with full support planned for all instances when these APIs reach general availability. If they are not yet supported on your instance, they will be ignored.
{{< / admonition > }}
2025-04-25 07:06:12 -04:00
**Example Response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 485
{
"kind": "Dashboard",
2026-03-31 01:50:47 -04:00
"apiVersion": "dashboard.grafana.app/v1",
2025-04-25 07:06:12 -04:00
"metadata": {
"name": "gdxccn",
"namespace": "default",
"uid": "Cc7fA5ffHY94NnHZyMxXvFlpFtOmkK3qkBcVZPKSPXcX",
"resourceVersion": "1",
"generation": 1,
"creationTimestamp": "2025-04-24T20:35:29Z",
"labels": {
"grafana.app/deprecatedInternalID": "11"
},
"annotations": {
"grafana.app/createdBy": "service-account:dejwtrofg77y8d",
"grafana.app/folder": "fef30w4jaxla8b"
},
"managedFields": [
{
"manager": "curl",
"operation": "Update",
"apiVersion": "dashboard.grafana.app/v0alpha1",
"time": "2025-04-24T20:35:29Z",
"fieldsType": "FieldsV1",
"fieldsV1": {
"f:spec": {
"f:annotations": {
".": {},
"f:list": {}
},
"f:editable": {},
"f:fiscalYearStartMonth": {},
"f:graphTooltip": {},
"f:links": {},
"f:panels": {},
"f:preload": {},
"f:schemaVersion": {},
"f:tags": {},
"f:templating": {
".": {},
"f:list": {}
},
"f:time": {
".": {},
"f:from": {},
"f:to": {}
},
"f:timepicker": {},
"f:timezone": {},
"f:title": {},
"f:version": {}
}
}
}
]
},
"spec": {
"annotations": {
"list": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": false,
"iconColor": "red",
"name": "Example annotation",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
}
}
]
},
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 0,
"links": [
{
"asDropdown": false,
"icon": "external link",
"includeVars": false,
"keepTime": false,
"tags": [],
"targetBlank": false,
"title": "Example Link",
"tooltip": "",
"type": "dashboards",
"url": ""
}
],
"panels": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"description": "With a description",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 0,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "linear",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green"
},
{
"color": "red",
"value": 80
}
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.0.0",
"targets": [
{
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"refId": "A"
}
],
"title": "Example panel",
"type": "timeseries"
}
],
"preload": false,
"schemaVersion": 41,
"tags": [
"example"
],
"templating": {
"list": [
{
"current": {
"text": "",
"value": ""
},
"definition": "",
"description": "example description",
"label": "ExampleLabel",
"name": "ExampleVariable",
"options": [],
"query": "",
"refresh": 1,
"regex": "cluster",
"type": "query"
}
]
},
"time": {
"from": "now-6h",
"to": "now"
},
"timepicker": {},
"timezone": "browser",
"title": "Example Dashboard"
},
"status": {}
```
Status Codes:
- **201** – Created
- **400** – Errors (invalid json, missing or invalid fields, etc)
- **401** – Unauthorized
- **403** – Access denied
- **409** – Conflict (dashboard with the same uid already exists)
## Update Dashboard
2026-03-31 01:50:47 -04:00
`PUT /apis/dashboard.grafana.app/v1/namespaces/:namespace/dashboards/:uid`
2025-04-25 07:06:12 -04:00
Updates an existing dashboard via the dashboard uid.
2025-05-29 03:23:13 -04:00
- namespace: to read more about the namespace to use, see the [API overview ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/developers/http_api/apis/ ).
2025-04-25 07:06:12 -04:00
- uid: the unique identifier of the dashboard to update. this will be the _name_ in the dashboard response
**Required permissions**
See note in the [introduction ]({{< ref "#dashboard-api" >}} ) for an explanation.
<!-- prettier - ignore - start -->
| Action | Scope |
| ------------------- | ------------------------------------------------------------------------------------------------------- |
| `dashboards:write` | < ul >< li > `dashboards:*`</ li >< li > `dashboards:uid:*`</ li >< li > `folders:*`</ li >< li > `folders:uid:*`</ li ></ ul > |
{ .no-spacing-list }
<!-- prettier - ignore - end -->
**Example Update Request**:
```http
2026-03-31 01:50:47 -04:00
POST /apis/dashboard.grafana.app/v1/namespaces/default/dashboards/gdxccn HTTP/1.1
2025-04-25 07:06:12 -04:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"metadata": {
"name": "gdxccn",
"annotations": {
"grafana.app/folder": "fef30w4jaxla8b",
"grafana.app/message": "commit message"
},
},
"spec": {
"title": "New dashboard - updated",
"schemaVersion": 41,
...
}
}
```
JSON Body schema:
- **metadata.name** – The [unique identifier ]({{< ref "#identifier-id-vs-unique-identifier-uid" >}} ).
- **metadata.annotations.grafana.app/folder** - Optional field, the unique identifier of the folder under which the dashboard should be created.
- **metadata.annotations.grafana.app/message** - Optional field, to set a commit message for the version history.
- **spec** – The dashboard json.
2026-01-09 16:53:56 -05:00
{{< admonition type = "note" > }}
Custom labels and annotations in the metadata field are supported on some instances, with full support planned for all instances when these APIs reach general availability. If they are not yet supported on your instance, they will be ignored.
{{< / admonition > }}
2025-04-25 07:06:12 -04:00
**Example Response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 485
{
"kind": "Dashboard",
2026-03-31 01:50:47 -04:00
"apiVersion": "dashboard.grafana.app/v1",
2025-04-25 07:06:12 -04:00
"metadata": {
"name": "gdxccn",
"namespace": "default",
"uid": "Cc7fA5ffHY94NnHZyMxXvFlpFtOmkK3qkBcVZPKSPXcX",
"resourceVersion": "2",
"generation": 2,
"creationTimestamp": "2025-03-06T19:57:18Z",
"annotations": {
"grafana.app/folder": "fef30w4jaxla8b",
"grafana.app/createdBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedTimestamp": "2025-03-07T02:58:36Z"
}
},
"spec": {
"schemaVersion": 41,
"title": "New dashboard - updated",
...
}
}
```
Status Codes:
- **200** – OK
- **400** – Errors (invalid json, missing or invalid fields, etc)
- **401** – Unauthorized
- **403** – Access denied
- **409** – Conflict (dashboard with the same version already exists)
## Get Dashboard
2026-03-31 01:50:47 -04:00
`GET /apis/dashboard.grafana.app/v1/namespaces/:namespace/dashboards/:uid`
2025-04-25 07:06:12 -04:00
Gets a dashboard via the dashboard uid.
2025-05-29 03:23:13 -04:00
- namespace: to read more about the namespace to use, see the [API overview ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/developers/http_api/apis/ ).
2025-04-25 07:06:12 -04:00
- uid: the unique identifier of the dashboard to update. this will be the _name_ in the dashboard response
**Required permissions**
See note in the [introduction ]({{< ref "#dashboard-api" >}} ) for an explanation.
<!-- prettier - ignore - start -->
| Action | Scope |
| ----------------- | ------------------------------------------------------------------------------------------------------- |
| `dashboards:read` | < ul >< li > `dashboards:*`</ li >< li > `dashboards:uid:*`</ li >< li > `folders:*`</ li >< li > `folders:uid:*`</ li ></ ul > |
{ .no-spacing-list }
<!-- prettier - ignore - end -->
**Example Get Request**:
```http
2026-03-31 01:50:47 -04:00
GET /apis/dashboard.grafana.app/v1/namespaces/default/dashboards/gdxccn HTTP/1.1
2025-04-25 07:06:12 -04:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 485
{
"kind": "Dashboard",
2026-03-31 01:50:47 -04:00
"apiVersion": "dashboard.grafana.app/v1",
2025-04-25 07:06:12 -04:00
"metadata": {
"name": "gdxccn",
"namespace": "default",
"uid": "Cc7fA5ffHY94NnHZyMxXvFlpFtOmkK3qkBcVZPKSPXcX",
"resourceVersion": "2",
"generation": 2,
"creationTimestamp": "2025-03-06T19:57:18Z",
"annotations": {
"grafana.app/createdBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedTimestamp": "2025-03-07T02:58:36Z"
}
},
"spec": {
"schemaVersion": 41,
"title": "New dashboard - updated",
...
}
}
```
Status Codes:
- **200** – OK
- **401** – Unauthorized
- **403** – Access denied
- **404** – Not Found
2025-11-30 08:53:19 -05:00
### Retrieve additional access information
2026-03-31 01:50:47 -04:00
`GET /apis/dashboard.grafana.app/v1/namespaces/:namespace/dashboards/:uid/dto`
2025-11-30 08:53:19 -05:00
Retrieves a dashboard with additional access information.
The `GET` response includes an additional `access` section with data such as if it's a public dashboard, or the dashboard permissions (admin, editor) of the user who made the request.
2025-04-25 07:06:12 -04:00
## List Dashboards
2026-03-31 01:50:47 -04:00
`GET /apis/dashboard.grafana.app/v1/namespaces/:namespace/dashboards`
2025-04-25 07:06:12 -04:00
Lists all dashboards in the given organization. You can control the maximum number of dashboards returned through the `limit` query parameter. You can then use the `continue` token returned to fetch the next page of dashboards.
2025-05-29 03:23:13 -04:00
- namespace: to read more about the namespace to use, see the [API overview ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/developers/http_api/apis/ ).
2025-04-25 07:06:12 -04:00
2025-10-29 05:26:42 -04:00
**Query parameters**:
- **`limit`** (optional): Maximum number of dashboards to return
- **`continue`** (optional): Continue token from a previous response to fetch the next page
2025-04-25 07:06:12 -04:00
**Required permissions**
See note in the [introduction ]({{< ref "#dashboard-api" >}} ) for an explanation.
<!-- prettier - ignore - start -->
| Action | Scope |
| ----------------- | ------------------------------------------------------------------------------------------------------- |
| `dashboards:read` | < ul >< li > `dashboards:*`</ li >< li > `dashboards:uid:*`</ li >< li > `folders:*`</ li >< li > `folders:uid:*`</ li ></ ul > |
{ .no-spacing-list }
<!-- prettier - ignore - end -->
**Example Get Request**:
```http
2026-03-31 01:50:47 -04:00
GET /apis/dashboard.grafana.app/v1/namespaces/default/dashboards?limit=1 HTTP/1.1
2025-04-25 07:06:12 -04:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 644
{
"kind": "DashboardList",
"apiVersion": "dashboard.grafana.app/v1alpha1",
"metadata": {
"resourceVersion": "1741315830000",
2025-10-29 05:26:42 -04:00
"continue": "eyJvIjoxNTIsInYiOjE3NjE3MDQyMjQyMDcxODksInMiOmZhbHNlfQ=="
2025-04-25 07:06:12 -04:00
},
"items": [
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v1alpha1",
"metadata": {
"name": "gpqcmf",
"namespace": "default",
"uid": "VQyL7pNTpfGPNlPM6HRJSePrBg5dXmxr4iPQL7txLtwX",
"resourceVersion": "1",
"generation": 1,
"creationTimestamp": "2025-03-06T19:50:30Z",
"annotations": {
"grafana.app/createdBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedTimestamp": "2025-03-06T19:50:30Z"
}
},
"spec": {
"schemaVersion": 41,
"title": "New dashboard",
"uid": "gpqcmf",
"version": 1,
...
}
}
]
}
```
2025-10-29 05:26:42 -04:00
The `metadata.continue` field contains a token to fetch the next page.
**Example subsequent request using continue token**:
```http
2026-03-31 01:50:47 -04:00
GET /apis/dashboard.grafana.app/v1/namespaces/default/dashboards?limit=1& continue=eyJvIjoxNTIsInYiOjE3NjE3MDQyMjQyMDcxODksInMiOmZhbHNlfQ== HTTP/1.1
2025-10-29 05:26:42 -04:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example subsequent response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
"kind": "DashboardList",
"apiVersion": "dashboard.grafana.app/v1alpha1",
"items": [
{
"kind": "Dashboard",
"apiVersion": "dashboard.grafana.app/v1alpha1",
"metadata": {
"name": "hpqcmg",
"namespace": "default",
"uid": "WQyL7pNTpfGPNlPM6HRJSePrBg5dXmxr4iPQL7txLtwY",
"resourceVersion": "1",
"generation": 1,
"creationTimestamp": "2025-03-06T19:51:31Z",
"annotations": {
"grafana.app/createdBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedBy": "service-account:cef2t2rfm73lsb",
"grafana.app/updatedTimestamp": "2025-03-06T19:51:31Z"
}
},
"spec": {
"schemaVersion": 41,
"title": "Another dashboard",
"uid": "hpqcmg",
"version": 1,
...
}
}
]
}
```
Continue making requests with the updated `continue` token until you receive a response without a `continue` field in the metadata, indicating you've reached the last page.
2025-04-25 07:06:12 -04:00
Status Codes:
- **200** – OK
- **401** – Unauthorized
- **403** – Access denied
2026-04-03 08:10:52 -04:00
## List dashboard history
You can retrieve the full version history of a dashboard using the List endpoint with specific query parameters. For details and examples, refer to [Resource history HTTP API ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/developers/http_api/resource-history/ ).
2025-04-25 07:06:12 -04:00
## Delete Dashboard
2026-03-31 01:50:47 -04:00
`DELETE /apis/dashboard.grafana.app/v1/namespaces/:namespace/dashboards/:uid`
2025-04-25 07:06:12 -04:00
Deletes a dashboard via the dashboard uid.
2025-11-26 08:48:18 -05:00
- **`namespace`**: To read more about the namespace to use, see the [API overview ](https://grafana.com/docs/grafana/<GRAFANA_VERSION>/developers/http_api/apis/ ).
- **`uid`**: The unique identifier of the dashboard to update. This is the `metadata.name` field in the dashboard response and _not_ the `metadata.uid` field.
2025-04-25 07:06:12 -04:00
**Required permissions**
2025-11-26 08:48:18 -05:00
See note in the [introduction ](#new-dashboard-apis ) for an explanation.
2025-04-25 07:06:12 -04:00
<!-- prettier - ignore - start -->
| Action | Scope |
| ------------------- | ------------------------------------------------------------------------------------------------------- |
| `dashboards:delete` | < ul >< li > `dashboards:*`</ li >< li > `dashboards:uid:*`</ li >< li > `folders:*`</ li >< li > `folders:uid:*`</ li ></ ul > |
{ .no-spacing-list }
<!-- prettier - ignore - end -->
**Example Delete Request**:
```http
2026-03-31 01:50:47 -04:00
DELETE /apis/dashboard.grafana.app/v1/namespaces/default/dashboards/gdxccn HTTP/1.1
2025-04-25 07:06:12 -04:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Content-Length: 78
{
"kind": "Status",
"apiVersion": "v1",
"metadata": {},
"status": "Success",
"details": {
"name": "gdxccn",
"group": "dashboard.grafana.app",
"kind": "dashboards",
"uid": "Cc7fA5ffHY94NnHZyMxXvFlpFtOmkK3qkBcVZPKSPXcX"
}
}
```
Status Codes:
- **200** – OK
- **401** – Unauthorized
- **403** – Access denied
- **404** – Not found