/usr/share/grafana/docs/sources/developer-resources/api-reference/http-api
--- aliases: - ../../../http_api/dashboard_permissions/ # /docs/grafana/next/http_api/dashboard_permissions/ - ../../../http_api/dashboardpermissions/ # /docs/grafana/next/http_api/dashboardpermissions/ - ../../../developers/http_api/dashboard_permissions/ # /docs/grafana/next/developers/http_api/dashboard_permissions/ canonical: https://grafana.com/docs/grafana/latest/developer-resources/api-reference/http-api/dashboard_permissions/ description: Grafana Dashboard Permissions HTTP API keywords: - grafana - http - documentation - api - dashboard - permission - permissions - acl labels: products: - enterprise - oss - cloud title: Dashboard Permissions HTTP API --- # Dashboard Permissions API This API can be used to update/get the permissions for a dashboard. Permissions with `dashboardId=-1` are the default permissions for users with the Viewer and Editor roles. Permissions can be set for a user, a team or a role (Viewer or Editor). Permissions cannot be set for Admins - they always have access to everything. The permission levels for the permission field: - 1 = View - 2 = Edit - 4 = Admin > If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions](/docs/grafana/latest/administration/roles-and-permissions/access-control/custom-role-actions-scopes/) for more information. ## Get permissions for a dashboard `GET /api/dashboards/uid/:uid/permissions` Gets all existing permissions for the dashboard with the given `uid`. **Required permissions** See note in the [introduction](#dashboard-permission-api) for an explanation. <!-- prettier-ignore-start --> | Action | Scope | | ----------------------------- | ------------------------------------------------------------------------------------------------------- | | `dashboards.permissions:read` | <ul><li>`dashboards:*`</li><li>`dashboards:uid:*`</li><li>`folders:*`</li><li>`folders:uid:*`</li></ul> | { .no-spacing-list } <!-- prettier-ignore-end --> **Example request**: ```http GET /api/dashboards/uid/dHEquNzGz/permissions HTTP/1.1 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: 551 [ { "id": 1, "dashboardId": -1, "created": "2017-06-20T02:00:00+02:00", "updated": "2017-06-20T02:00:00+02:00", "userId": 0, "userLogin": "", "userEmail": "", "teamId": 0, "team": "", "role": "Viewer", "permission": 1, "permissionName": "View", "uid": "dHEquNzGz", "title": "", "slug": "", "isFolder": false, "url": "" }, { "id": 2, "dashboardId": -1, "created": "2017-06-20T02:00:00+02:00", "updated": "2017-06-20T02:00:00+02:00", "userId": 0, "userLogin": "", "userEmail": "", "teamId": 0, "team": "", "role": "Editor", "permission": 2, "permissionName": "Edit", "uid": "dHEquNzGz", "title": "", "slug": "", "isFolder": false, "url": "" } ] ``` Status Codes: - **200** - Ok - **401** - Unauthorized - **403** - Access denied - **404** - Dashboard not found ## Update permissions for a dashboard `POST /api/dashboards/uid/:uid/permissions` Updates permissions for a dashboard. This operation will remove existing permissions if they're not included in the request. **Required permissions** See note in the [introduction](#dashboard-permission-api) for an explanation. <!-- prettier-ignore-start --> | Action | Scope | | ------------------------------ | ------------------------------------------------------------------------------------------------------- | | `dashboards.permissions:write` | <ul><li>`dashboards:*`</li><li>`dashboards:uid:*`</li><li>`folders:*`</li><li>`folders:uid:*`</li></ul> | { .no-spacing-list } <!-- prettier-ignore-end --> **Example request**: ```http POST /api/dashboards/uid/dHEquNzGz/permissions Accept: application/json Content-Type: application/json Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk { "items": [ { "role": "Viewer", "permission": 1 }, { "role": "Editor", "permission": 2 }, { "teamId": 1, "permission": 1 }, { "userId": 11, "permission": 4 } ] } ``` JSON body schema: - **items** - The permission items to add/update. Items that are omitted from the list will be removed. **Example response**: ```http HTTP/1.1 200 OK Content-Type: application/json; charset=UTF-8 Content-Length: 35 {"message":"Dashboard permissions updated"} ``` Status Codes: - **200** - Ok - **401** - Unauthorized - **403** - Access denied - **404** - Dashboard not found
.
Edit
..
Edit
_index.md
Edit
access_control.md
Edit
admin.md
Edit
alerting_provisioning.md
Edit
annotations.md
Edit
apis.md
Edit
authentication.md
Edit
correlations.md
Edit
dashboard.md
Edit
dashboard_permissions.md
Edit
dashboard_public.md
Edit
dashboard_versions.md
Edit
data_source.md
Edit
datasource_lbac_rules.md
Edit
datasource_permissions.md
Edit
examples
Edit
folder.md
Edit
folder_dashboard_search.md
Edit
folder_permissions.md
Edit
library_element.md
Edit
licensing.md
Edit
org.md
Edit
other.md
Edit
playlist.md
Edit
preferences.md
Edit
query_and_resource_caching.md
Edit
query_history.md
Edit
reporting.md
Edit
secrets_management.md
Edit
serviceaccount.md
Edit
short_url.md
Edit
snapshot.md
Edit
sso-settings.md
Edit
team.md
Edit
team_sync.md
Edit
user.md
Edit