mirror of
https://github.com/grafana/grafana.git
synced 2025-07-28 02:42:08 +08:00

* extend docs with service account limitations * linting * Apply suggestions from code review Co-authored-by: Jack Baldry <jack.baldry@grafana.com> * PR feedback * more PR feedback * linting --------- Co-authored-by: Jack Baldry <jack.baldry@grafana.com>
776 lines
18 KiB
Markdown
776 lines
18 KiB
Markdown
---
|
|
aliases:
|
|
- ../../http_api/admin/
|
|
canonical: /docs/grafana/latest/developers/http_api/admin/
|
|
description: Grafana Admin HTTP API
|
|
keywords:
|
|
- grafana
|
|
- http
|
|
- documentation
|
|
- api
|
|
- admin
|
|
labels:
|
|
products:
|
|
- enterprise
|
|
- oss
|
|
title: 'Admin HTTP API '
|
|
---
|
|
|
|
# Admin API
|
|
|
|
{{< admonition type="caution" >}}
|
|
You can't authenticate to the Admin HTTP API with service account tokens.
|
|
Service accounts are limited to an organization and an organization role.
|
|
They can't be granted [Grafana server administrator permissions](/docs/grafana/<GRAFANA_VERSION>/administration/roles-and-permissions/#grafana-server-administrators).
|
|
|
|
To use these API endpoints you have to use Basic authentication and the Grafana user must have the Grafana server administrator permission.
|
|
|
|
The `admin` user that Grafana is provisioned with by default has permissions to use these API endpoints.
|
|
{{< /admonition >}}
|
|
|
|
> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions]({{< relref "../../administration/roles-and-permissions/access-control/custom-role-actions-scopes/" >}}) for more information.
|
|
|
|
## Fetch settings
|
|
|
|
`GET /api/admin/settings`
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ------------- | ----------------------------------------------------------------------------------- |
|
|
| settings:read | settings:\*_<br>settings:auth.saml:_<br>settings:auth.saml:enabled (property level) |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
GET /api/admin/settings
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Update settings
|
|
|
|
`PUT /api/admin/settings`
|
|
|
|
{{% admonition type="note" %}}
|
|
Available in Grafana Enterprise v8.0+.
|
|
{{% /admonition %}}
|
|
|
|
Updates / removes and reloads database settings. You must provide either `updates`, `removals` or both.
|
|
|
|
This endpoint only supports changes to `auth.saml` configuration.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| -------------- | ----------------------------------------------------------------------------------- |
|
|
| settings:write | settings:\*_<br>settings:auth.saml:_<br>settings:auth.saml:enabled (property level) |
|
|
|
|
**Example request:**
|
|
|
|
```http
|
|
PUT /api/admin/settings
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
|
|
|
{
|
|
"updates": {
|
|
"auth.saml": {
|
|
"enabled": "true"
|
|
}
|
|
},
|
|
"removals": {
|
|
"auth.saml": ["single_logout"]
|
|
},
|
|
}
|
|
```
|
|
|
|
**Example response:**
|
|
|
|
```http
|
|
HTTP/1.1 200 OK
|
|
Content-Type: application/json
|
|
Content-Length: 32
|
|
|
|
```
|
|
|
|
Status codes:
|
|
|
|
- **200** - OK
|
|
- **400** - Bad Request
|
|
- **401** - Unauthorized
|
|
- **403** - Forbidden
|
|
- **500** - Internal Server Error
|
|
|
|
## Grafana Stats
|
|
|
|
`GET /api/admin/stats`
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ----------------- | ----- |
|
|
| server.stats:read | n/a |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
GET /api/admin/stats
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Grafana Usage Report preview
|
|
|
|
`GET /api/admin/usage-report-preview`
|
|
|
|
Preview usage report to be sent to vendor.
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
GET /api/admin/usage-report-preview
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Global Users
|
|
|
|
`POST /api/admin/users`
|
|
|
|
Create new user. Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ------------ | ----- |
|
|
| users:create | n/a |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/users HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
Note that `OrgId` is an optional parameter that can be used to assign a new user to a different organization when [auto_assign_org]({{< relref "../../setup-grafana/configure-grafana/#auto-assign-org" >}}) is set to `true`.
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Password for User
|
|
|
|
`PUT /api/admin/users/:id/password`
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
Change password for a specific user.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| -------------------- | --------------- |
|
|
| users.password:write | global.users:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
PUT /api/admin/users/2/password HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Permissions
|
|
|
|
`PUT /api/admin/users/:id/permissions`
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ----------------------- | --------------- |
|
|
| users.permissions:write | global.users:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
PUT /api/admin/users/2/permissions HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Delete global User
|
|
|
|
`DELETE /api/admin/users/:id`
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ------------ | --------------- |
|
|
| users:delete | global.users:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
DELETE /api/admin/users/2 HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Auth tokens for User
|
|
|
|
`GET /api/admin/users/:id/auth-tokens`
|
|
|
|
Return a list of all auth tokens (devices) that the user currently have logged in from.
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| -------------------- | --------------- |
|
|
| users.authtoken:read | global.users:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
GET /api/admin/users/1/auth-tokens HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Revoke auth token for User
|
|
|
|
`POST /api/admin/users/:id/revoke-auth-token`
|
|
|
|
Revokes the given auth token (device) for the user. User of issued auth token (device) will no longer be logged in
|
|
and will be required to authenticate again upon next activity.
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| --------------------- | --------------- |
|
|
| users.authtoken:write | global.users:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/users/1/revoke-auth-token HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Logout User
|
|
|
|
`POST /api/admin/users/:id/logout`
|
|
|
|
Logout user revokes all auth tokens (devices) for the user. User of issued auth tokens (devices) will no longer be logged in
|
|
and will be required to authenticate again upon next activity.
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope |
|
|
| ------------ | --------------- |
|
|
| users.logout | global.users:\* |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/users/1/logout HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Reload provisioning configurations
|
|
|
|
`POST /api/admin/provisioning/dashboards/reload`
|
|
|
|
`POST /api/admin/provisioning/datasources/reload`
|
|
|
|
`POST /api/admin/provisioning/plugins/reload`
|
|
|
|
`POST /api/admin/provisioning/access-control/reload`
|
|
|
|
`POST /api/admin/provisioning/alerting/reload`
|
|
|
|
Reloads the provisioning config files for specified type and provision entities again. It won't return
|
|
until the new provisioned entities are already stored in the database. In case of dashboards, it will stop
|
|
polling for changes in dashboard files and then restart it with new configurations after returning.
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Required permissions**
|
|
|
|
See note in the [introduction]({{< ref "#admin-api" >}}) for an explanation.
|
|
|
|
| Action | Scope | Provision entity |
|
|
| ------------------- | -------------------------- | ---------------- |
|
|
| provisioning:reload | provisioners:accesscontrol | accesscontrol |
|
|
| provisioning:reload | provisioners:dashboards | dashboards |
|
|
| provisioning:reload | provisioners:datasources | datasources |
|
|
| provisioning:reload | provisioners:plugins | plugins |
|
|
| provisioning:reload | provisioners:alerting | alerting |
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/provisioning/dashboards/reload HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Reload LDAP configuration
|
|
|
|
`POST /api/admin/ldap/reload`
|
|
|
|
Reloads the LDAP configuration.
|
|
|
|
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/ldap/reload HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 200
|
|
Content-Type: application/json
|
|
|
|
```
|
|
|
|
## Rotate data encryption keys
|
|
|
|
`POST /api/admin/encryption/rotate-data-keys`
|
|
|
|
[Rotates]({{< relref "../../setup-grafana/configure-security/configure-database-encryption/#rotate-data-keys" >}}) data encryption keys.
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/encryption/rotate-data-keys HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 204
|
|
Content-Type: application/json
|
|
```
|
|
|
|
## Re-encrypt data encryption keys
|
|
|
|
`POST /api/admin/encryption/reencrypt-data-keys`
|
|
|
|
[Re-encrypts]({{< relref "../../setup-grafana/configure-security/configure-database-encryption/#re-encrypt-data-keys" >}}) data encryption keys.
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/encryption/reencrypt-data-keys HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 204
|
|
Content-Type: application/json
|
|
```
|
|
|
|
## Re-encrypt secrets
|
|
|
|
`POST /api/admin/encryption/reencrypt-secrets`
|
|
|
|
[Re-encrypts]({{< relref "../../setup-grafana/configure-security/configure-database-encryption/#re-encrypt-secrets" >}}) secrets.
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/encryption/reencrypt-secrets HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 204
|
|
Content-Type: application/json
|
|
```
|
|
|
|
## Roll back secrets
|
|
|
|
`POST /api/admin/encryption/rollback-secrets`
|
|
|
|
[Rolls back]({{< relref "../../setup-grafana/configure-security/configure-database-encryption/#roll-back-secrets" >}}) secrets.
|
|
|
|
**Example Request**:
|
|
|
|
```http
|
|
POST /api/admin/encryption/rollback-secrets HTTP/1.1
|
|
Accept: application/json
|
|
Content-Type: application/json
|
|
```
|
|
|
|
**Example Response**:
|
|
|
|
```http
|
|
HTTP/1.1 204
|
|
Content-Type: application/json
|
|
```
|