Skip to main content

Dashboards API

The Dashboards API provides endpoints for managing Grafana dashboards programmatically.

Get Dashboard by UID

Retrieve a dashboard by its unique identifier (UID).
curl -X GET http://localhost:3000/api/dashboards/uid/nHz3SXiiz \
  -u admin:admin
uid
string
required
Dashboard unique identifier
meta
object
Dashboard metadata
meta.isStarred
boolean
Whether the dashboard is starred by the current user
meta.canSave
boolean
Whether the current user can save the dashboard
meta.version
integer
Dashboard version number
meta.folderUid
string
UID of the folder containing this dashboard
dashboard
object
Dashboard JSON model

Create/Update Dashboard

Create a new dashboard or update an existing one.
curl -X POST http://localhost:3000/api/dashboards/db \
  -u admin:admin \
  -H "Content-Type: application/json" \
  -d '{
    "dashboard": {
      "title": "My Dashboard",
      "tags": ["templated"],
      "timezone": "browser",
      "schemaVersion": 38,
      "panels": []
    },
    "folderUid": "folder-uid",
    "message": "Initial version",
    "overwrite": false
  }'
dashboard
object
required
Dashboard JSON model
dashboard.title
string
required
Dashboard title
dashboard.uid
string
Dashboard UID (auto-generated if not provided)
dashboard.panels
array
Array of panel configurations
folderUid
string
UID of the folder to save the dashboard in
message
string
Commit message for this dashboard version
overwrite
boolean
default:"false"
Whether to overwrite existing dashboard with same UID
status
string
Operation status (“success”)
uid
string
Dashboard UID
url
string
Relative URL to access the dashboard
version
integer
New version number

Delete Dashboard by UID

Delete a dashboard by its UID.
curl -X DELETE http://localhost:3000/api/dashboards/uid/nHz3SXiiz \
  -u admin:admin
uid
string
required
Dashboard unique identifier
title
string
Title of the deleted dashboard
message
string
Deletion confirmation message

Get Dashboard Versions

Retrieve all versions of a dashboard.
curl -X GET http://localhost:3000/api/dashboards/uid/nHz3SXiiz/versions \
  -u admin:admin
uid
string
required
Dashboard unique identifier
limit
integer
Maximum number of versions to return
start
integer
Version number to start from
versions
array
Array of dashboard versions
versions[].version
integer
Version number
versions[].created
string
Creation timestamp (ISO 8601)
versions[].createdBy
string
Username of creator
versions[].message
string
Commit message for this version

Get Dashboard Version

Retrieve a specific version of a dashboard.
curl -X GET http://localhost:3000/api/dashboards/uid/nHz3SXiiz/versions/1 \
  -u admin:admin
uid
string
required
Dashboard unique identifier
id
integer
required
Version ID

Get Dashboard Tags

Get all dashboard tags for the current organization.
curl -X GET http://localhost:3000/api/dashboards/tags \
  -u admin:admin
term
string
Tag name
count
integer
Number of dashboards with this tag

Get Home Dashboard

Get the home dashboard for the current user.
curl -X GET http://localhost:3000/api/dashboards/home \
  -u admin:admin

Permissions

If you are running Grafana Enterprise with Fine-grained access control enabled:
  • Read: Requires dashboards:read permission with scope dashboards:uid:<uid>
  • Create: Requires dashboards:create permission
  • Update: Requires dashboards:write permission with scope dashboards:uid:<uid>
  • Delete: Requires dashboards:delete permission with scope dashboards:uid:<uid>

Build docs developers (and LLMs) love