grafana/docs/sources/http_api/admin.md

343 lines
7.6 KiB
Markdown
Raw Normal View History

+++
title = "Admin HTTP API "
description = "Grafana Admin HTTP API"
keywords = ["grafana", "http", "documentation", "api", "admin"]
aliases = ["/http_api/admin/"]
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
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-02-05 03:47:34 -06:00
## Settings
2016-02-03 00:59:22 -06:00
`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.
2016-02-03 00:59:22 -06:00
**Example Request**:
```bash
GET /api/admin/settings
Accept: application/json
Content-Type: application/json
```
2016-02-03 00:59:22 -06:00
**Example Response**:
```bash
HTTP/1.1 200
Content-Type: application/json
{
"DEFAULT":
{
"app_mode":"production"},
"analytics":
{
"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",
"scopes":"user:email,read:org",
"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`
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**:
```bash
GET /api/admin/stats
Accept: application/json
Content-Type: application/json
```
2016-02-03 00:59:22 -06:00
**Example Response**:
```json
HTTP/1.1 200
Content-Type: application/json
{
"user_count":2,
"org_count":1,
"dashboard_count":4,
"db_snapshot_count":2,
"db_tag_count":6,
"data_source_count":1,
"playlist_count":1,
"starred_db_count":2,
"grafana_admin_count":2
}
```
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`
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**:
```json
2016-02-03 00:59:22 -06:00
POST /api/admin/users HTTP/1.1
Accept: application/json
Content-Type: application/json
2016-02-03 00:59:22 -06:00
{
"name":"User",
"email":"user@graf.com",
"login":"user",
"password":"userpassword"
}
```
2016-02-03 00:59:22 -06:00
**Example Response**:
```json
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06: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`
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**:
```json
PUT /api/admin/users/2/password HTTP/1.1
Accept: application/json
Content-Type: application/json
2016-02-03 00:59:22 -06:00
{"password":"userpassword"}
```
2016-02-03 00:59:22 -06:00
**Example Response**:
```json
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06: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`
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**:
```json
PUT /api/admin/users/2/permissions HTTP/1.1
Accept: application/json
Content-Type: application/json
2016-02-03 00:59:22 -06:00
{"isGrafanaAdmin": true}
```
2016-02-03 00:59:22 -06:00
**Example Response**:
```json
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06:00
{message: "User permissions updated"}
```
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`
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**:
```json
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**:
```json
HTTP/1.1 200
Content-Type: application/json
2016-02-03 00:59:22 -06:00
{message: "User deleted"}
```
## Pause all alerts
2017-05-02 02:39:50 -05:00
`POST /api/admin/pause-all-alerts`
Only works with Basic Authentication (username and password). See [introduction](http://docs.grafana.org/http_api/admin/#admin-api) for an explanation.
**Example Request**:
```json
POST /api/admin/pause-all-alerts HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"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.
**Example Response**:
```json
HTTP/1.1 200
Content-Type: application/json
{state: "new state", message: "alerts pause/un paused", "alertsAffected": 100}
```