2016-11-24 03:16:24 -06:00
+++
title = "Admin HTTP API "
description = "Grafana Admin HTTP API"
keywords = ["grafana", "http", "documentation", "api", "admin"]
2019-12-30 01:17:03 -06:00
aliases = ["/docs/grafana/latest/http_api/admin/"]
2016-11-24 03:16:24 -06:00
type = "docs"
[menu.docs]
name = "Admin"
parent = "http_api"
+++
2016-02-03 00:59:22 -06:00
2016-02-05 03:47:34 -06:00
# Admin API
2016-02-03 00:59:22 -06:00
2017-09-05 03:03:31 -05:00
The Admin HTTP API does not currently work with an API Token. API Tokens are currently only linked to an organization and an organization role. They cannot be given
the permission of server admin, only users can be given that permission. So in order to use these API calls you will have to use Basic Auth and the Grafana user
must have the Grafana Admin permission. (The default admin user is called `admin` and has permission to use this API.)
2016-09-22 02:09:12 -05:00
2016-02-05 03:47:34 -06:00
## Settings
2016-02-03 00:59:22 -06:00
`GET /api/admin/settings`
2017-09-05 03:03:31 -05:00
Only works with Basic Authentication (username and password). See [introduction ](http://docs.grafana.org/http_api/admin/#admin-api ) for an explanation.
2016-02-03 00:59:22 -06:00
**Example Request**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
GET /api/admin/settings
Accept: application/json
Content-Type: application/json
```
2016-02-03 00:59:22 -06:00
**Example Response**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
HTTP/1.1 200
Content-Type: application/json
{
2018-07-04 05:23:10 -05:00
"DEFAULT": {
2018-07-04 05:30:23 -05:00
"app_mode":"production"
2018-07-04 05:23:10 -05:00
},
"analytics": {
2017-10-05 12:01:03 -05:00
"google_analytics_ua_id":"",
"reporting_enabled":"false"
},
"auth.anonymous":{
"enabled":"true",
"org_name":"Main Org.",
"org_role":"Viewer"
},
"auth.basic":{
"enabled":"false"
},
"auth.github":{
"allow_sign_up":"false",
"allowed_domains":"",
"allowed_organizations":"",
"api_url":"https://api.github.com/user",
"auth_url":"https://github.com/login/oauth/authorize",
"client_id":"some_id",
"client_secret":"************",
"enabled":"false",
2018-02-28 06:08:15 -06:00
"scopes":"user:email,read:org",
2017-10-05 12:01:03 -05:00
"team_ids":"",
"token_url":"https://github.com/login/oauth/access_token"
},
"auth.google":{
"allow_sign_up":"false","allowed_domains":"",
"api_url":"https://www.googleapis.com/oauth2/v1/userinfo",
"auth_url":"https://accounts.google.com/o/oauth2/auth",
"client_id":"some_client_id",
"client_secret":"************",
"enabled":"false",
"scopes":"https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email",
"token_url":"https://accounts.google.com/o/oauth2/token"
},
"auth.ldap":{
"config_file":"/etc/grafana/ldap.toml",
"enabled":"false"
},
"auth.proxy":{
"auto_sign_up":"true",
"enabled":"false",
"header_name":"X-WEBAUTH-USER",
"header_property":"username"
},
"dashboards.json":{
"enabled":"false",
"path":"/var/lib/grafana/dashboards"
},
"database":{
"host":"127.0.0.1:0000",
"name":"grafana",
"password":"************",
"path":"grafana.db",
"ssl_mode":"disable",
"type":"sqlite3",
"user":"root"
},
"emails":{
"templates_pattern":"emails/*.html",
"welcome_email_on_sign_up":"false"
},
"log":{
"buffer_len":"10000",
"level":"Info",
"mode":"file"
},
"log.console":{
"level":""
},
"log.file":{
"daily_rotate":"true",
"file_name":"",
"level":"",
"log_rotate":"true",
"max_days":"7",
"max_lines":"1000000",
"max_lines_shift":"28",
"max_size_shift":""
},
"paths":{
"data":"/tsdb/grafana",
"logs":"/logs/apps/grafana"},
"security":{
"admin_password":"************",
"admin_user":"admin",
"cookie_remember_name":"grafana_remember",
"cookie_username":"grafana_user",
"disable_gravatar":"false",
"login_remember_days":"7",
"secret_key":"************"
},
"server":{
"cert_file":"",
"cert_key":"",
"domain":"mygraf.com",
"enable_gzip":"false",
"enforce_domain":"false",
"http_addr":"127.0.0.1",
"http_port":"0000",
"protocol":"http",
"root_url":"%(protocol)s://%(domain)s:%(http_port)s/",
"router_logging":"true",
"data_proxy_logging":"true",
"static_root_path":"public"
},
"session":{
"cookie_name":"grafana_sess",
"cookie_secure":"false",
"gc_interval_time":"",
"provider":"file",
"provider_config":"sessions",
"session_life_time":"86400"
},
"smtp":{
"cert_file":"",
"enabled":"false",
"from_address":"admin@grafana.localhost",
"from_name":"Grafana",
"ehlo_identity":"dashboard.example.com",
"host":"localhost:25",
"key_file":"",
"password":"************",
"skip_verify":"false",
"user":""
},
"users":{
"allow_org_create":"true",
"allow_sign_up":"false",
"auto_assign_org":"true",
"auto_assign_org_role":"Viewer"
}
}
```
2016-02-05 03:47:34 -06:00
## Grafana Stats
2016-02-03 00:59:22 -06:00
`GET /api/admin/stats`
2017-09-05 03:03:31 -05:00
Only works with Basic Authentication (username and password). See [introduction ](http://docs.grafana.org/http_api/admin/#admin-api ) for an explanation.
2016-02-03 00:59:22 -06:00
**Example Request**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
GET /api/admin/stats
Accept: application/json
Content-Type: application/json
```
2016-02-03 00:59:22 -06:00
**Example Response**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
HTTP/1.1 200
Content-Type: application/json
{
2018-07-04 05:26:30 -05:00
"users":2,
"orgs":1,
"dashboards":4,
"snapshots":2,
"tags":6,
"datasources":1,
"playlists":1,
"stars":2,
"alerts":2,
"activeUsers":1
2017-10-05 12:01:03 -05:00
}
```
2016-02-03 00:59:22 -06:00
2016-02-05 03:47:34 -06:00
## Global Users
2016-02-03 00:59:22 -06:00
`POST /api/admin/users`
2017-09-05 03:03:31 -05:00
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.
2016-02-03 00:59:22 -06:00
**Example Request**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
POST /api/admin/users HTTP/1.1
Accept: application/json
Content-Type: application/json
2016-02-03 00:59:22 -06:00
2017-10-05 12:01:03 -05:00
{
"name":"User",
"email":"user@graf.com",
"login":"user",
2020-04-15 04:11:45 -05:00
"password":"userpassword",
"OrgId": 1
2017-10-05 12:01:03 -05:00
}
```
2016-02-03 00:59:22 -06:00
2020-06-23 11:56:44 -05:00
Note that `OrgId` is an optional parameter that can be used to assign a new user to a different organization when [auto_assign_org ](https://grafana.com/docs/grafana/latest/administration/configuration/#auto-assign-org ) is set to `true` .
2020-04-15 04:11:45 -05:00
2016-02-03 00:59:22 -06:00
**Example Response**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06:00
2017-10-05 12:01:03 -05:00
{"id":5,"message":"User created"}
```
2016-02-03 00:59:22 -06:00
2016-02-05 03:47:34 -06:00
## Password for User
2016-02-03 00:59:22 -06:00
`PUT /api/admin/users/:id/password`
2017-09-05 03:03:31 -05:00
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.
2016-02-03 00:59:22 -06:00
**Example Request**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
PUT /api/admin/users/2/password HTTP/1.1
Accept: application/json
Content-Type: application/json
2016-02-03 00:59:22 -06:00
2017-10-05 12:01:03 -05:00
{"password":"userpassword"}
```
2017-05-17 07:26:27 -05:00
2016-02-03 00:59:22 -06:00
**Example Response**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06:00
2017-10-05 12:01:03 -05:00
{"message": "User password updated"}
```
2016-02-03 00:59:22 -06:00
2016-02-05 03:47:34 -06:00
## Permissions
2016-02-03 00:59:22 -06:00
`PUT /api/admin/users/:id/permissions`
2017-09-05 03:03:31 -05:00
Only works with Basic Authentication (username and password). See [introduction ](http://docs.grafana.org/http_api/admin/#admin-api ) for an explanation.
2016-02-03 00:59:22 -06:00
**Example Request**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
PUT /api/admin/users/2/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
2016-02-03 00:59:22 -06:00
2017-10-05 12:01:03 -05:00
{"isGrafanaAdmin": true}
```
2017-05-17 07:26:27 -05:00
2016-02-03 00:59:22 -06:00
**Example Response**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06:00
2019-01-06 16:57:44 -06:00
{"message": "User permissions updated"}
2017-10-05 12:01:03 -05:00
```
2016-02-03 00:59:22 -06:00
2016-02-05 03:47:34 -06:00
## Delete global User
2016-02-03 00:59:22 -06:00
`DELETE /api/admin/users/:id`
2017-09-05 03:03:31 -05:00
Only works with Basic Authentication (username and password). See [introduction ](http://docs.grafana.org/http_api/admin/#admin-api ) for an explanation.
2016-02-03 00:59:22 -06:00
**Example Request**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
DELETE /api/admin/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
```
2016-02-03 00:59:22 -06:00
**Example Response**:
2020-01-27 06:41:15 -06:00
```http
2017-10-05 12:01:03 -05:00
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06:00
2019-01-06 16:57:44 -06:00
{"message": "User deleted"}
2017-10-05 12:01:03 -05:00
```
2016-12-19 09:45:46 -06:00
## Pause all alerts
2017-05-02 02:39:50 -05:00
`POST /api/admin/pause-all-alerts`
2016-12-19 09:45:46 -06:00
2017-09-05 03:03:31 -05:00
Only works with Basic Authentication (username and password). See [introduction ](http://docs.grafana.org/http_api/admin/#admin-api ) for an explanation.
2016-12-19 09:45:46 -06:00
**Example Request**:
2019-03-26 06:37:02 -05:00
```http
2017-10-05 12:01:03 -05:00
POST /api/admin/pause-all-alerts HTTP/1.1
Accept: application/json
Content-Type: application/json
2016-12-19 09:45:46 -06:00
2017-10-05 12:01:03 -05:00
{
"paused": true
}
```
2017-05-02 02:39:50 -05:00
JSON Body schema:
- **paused** – If true then all alerts are to be paused, false unpauses all alerts.
2016-12-19 09:45:46 -06:00
**Example Response**:
2019-03-26 06:37:02 -05:00
```http
2017-10-05 12:01:03 -05:00
HTTP/1.1 200
Content-Type: application/json
2016-12-19 09:45:46 -06:00
2019-03-26 06:37:02 -05:00
{
"state": "Paused",
"message": "alert paused",
"alertsAffected": 1
}
2018-07-04 05:23:10 -05:00
```
2019-03-08 08:15:57 -06:00
## 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.
**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
[
{
"id": 361,
"isActive": false,
"clientIp": "127.0.0.1",
2019-06-11 07:12:52 -05:00
"browser": "Chrome",
"browserVersion": "72.0",
"os": "Linux",
"osVersion": "",
"device": "Other",
2019-03-08 08:15:57 -06:00
"createdAt": "2019-03-05T21:22:54+01:00",
"seenAt": "2019-03-06T19:41:06+01:00"
},
{
"id": 364,
"isActive": false,
"clientIp": "127.0.0.1",
2019-06-11 07:12:52 -05:00
"browser": "Mobile Safari",
"browserVersion": "11.0",
"os": "iOS",
"osVersion": "11.0",
"device": "iPhone",
2019-03-08 08:15:57 -06:00
"createdAt": "2019-03-06T19:41:19+01:00",
"seenAt": "2019-03-06T19:41:21+01:00"
}
]
```
## 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.
**Example Request**:
```http
POST /api/admin/users/1/revoke-auth-token HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"authTokenId": 364
}
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"message": "User auth token revoked"
}
```
## 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.
**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
{
"message": "User auth token revoked"
}
```
2019-04-25 02:06:44 -05:00
## Reload provisioning configurations
`POST /api/admin/provisioning/dashboards/reload`
`POST /api/admin/provisioning/datasources/reload`
2020-06-22 10:49:13 -05:00
`POST /api/admin/provisioning/plugins/reload`
2019-04-25 02:06:44 -05:00
`POST /api/admin/provisioning/notifications/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
2019-08-28 06:26:03 -05:00
polling for changes in dashboard files and then restart it with new configs after returning.
2019-04-25 02:06:44 -05:00
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/provisioning/dashboards/reload HTTP/1.1
Accept: application/json
Content-Type: application/json
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"message": "Dashboards config reloaded"
}
```
2019-08-28 06:26:03 -05:00
## 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
{
"message": "LDAP config reloaded"
}
```