mirror of
https://github.com/grafana/grafana.git
synced 2025-07-31 03:32:18 +08:00
153 lines
3.9 KiB
Markdown
153 lines
3.9 KiB
Markdown
----
|
||
page_title: HTTP API
|
||
page_description: Grafana HTTP API Reference
|
||
page_keywords: grafana, admin, http, api, documentation
|
||
---
|
||
|
||
# HTTP API Reference
|
||
|
||
The Grafana backend exposes an HTTP API, the same API is used by the frontend to do everything from saving
|
||
dashboards, creating users and updating data sources.
|
||
|
||
## Authorization
|
||
|
||
Currently you can authenticate via an `API Token` or via a `Session cookie` (acquired using regular login or oauth).
|
||
|
||
### Create API Token
|
||
|
||
Open the sidemenu and click the organization dropdown and select the `API Keys` option.
|
||
|
||

|
||
|
||
You use the token in all requests in the `Authorization` header, like this:
|
||
|
||
**Example**:
|
||
|
||
GET http://your.grafana.com/api/dashboards/db/mydash HTTP/1.1
|
||
Accept: application/json
|
||
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
||
|
||
The `Authorization` header value should be `Bearer <your api key>`.
|
||
|
||
## Dashboards
|
||
|
||
### Create / Update dashboard
|
||
|
||
`POST /api/dashboards/db`
|
||
|
||
Creates a new dashboard or updates an existing dashboard.
|
||
|
||
**Example Request for new dashboard**:
|
||
|
||
POST /api/dashboards/db HTTP/1.1
|
||
Accept: application/json
|
||
Content-Type: application/json
|
||
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
||
|
||
{
|
||
"dashboard": {
|
||
"id": null,
|
||
"title": "Production Overview",
|
||
"tags": [ "templated" ],
|
||
"timezone": "browser",
|
||
"rows": [
|
||
{
|
||
}
|
||
]
|
||
"schemaVersion": 6,
|
||
"version": 0
|
||
},
|
||
"overwrite": false
|
||
}
|
||
|
||
JSON Body schema:
|
||
|
||
- **dashboard** – The complete dashboard model, id = null to create a new dashboard
|
||
- **overwrite** – Set to true if you want to overwrite existing dashboard with newer version or with same dashboard title.
|
||
|
||
**Example Response**:
|
||
|
||
HTTP/1.1 200 OK
|
||
Content-Type: application/json; charset=UTF-8
|
||
Content-Length: 78
|
||
|
||
{
|
||
"slug": "production-overview",
|
||
"status": "success",
|
||
"version": 1
|
||
}
|
||
|
||
Status Codes:
|
||
|
||
- **200** – Created
|
||
- **400** – Errors (invalid json, missing or invalid fields, etc)
|
||
- **401** – Unauthorized
|
||
- **412** – Precondition failed
|
||
|
||
The **412** status code is used when a newer dashboard already exists (newer, its version is greater than the verison that was sent). The
|
||
same status code is also used if another dashboar exists with the same title. The response body will look like this:
|
||
|
||
HTTP/1.1 412 Precondition Failed
|
||
Content-Type: application/json; charset=UTF-8
|
||
Content-Length: 97
|
||
|
||
{
|
||
"message": "The dashboard has been changed by someone else",
|
||
"status": "version-mismatch"
|
||
}
|
||
|
||
In in case of title already exists the `status` property will be `name-exists`.
|
||
|
||
### Get dashboard
|
||
|
||
`GET /api/dashboards/db/:slug`
|
||
|
||
Will return the dashboard given the dashboard slug. Slug is the url friendly version of the dashboard title.
|
||
|
||
**Example Request**:
|
||
|
||
GET /api/dashboards/db/production-overview HTTP/1.1
|
||
Accept: application/json
|
||
Content-Type: application/json
|
||
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
|
||
|
||
**Example Response**:
|
||
|
||
HTTP/1.1 200
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"meta": {
|
||
"isStarred": false,
|
||
"slug": "production-overview"
|
||
},
|
||
"dashboard": {
|
||
"id": null,
|
||
"title": "Production Overview",
|
||
"tags": [ "templated" ],
|
||
"timezone": "browser",
|
||
"rows": [
|
||
{
|
||
}
|
||
]
|
||
"schemaVersion": 6,
|
||
"version": 0
|
||
},
|
||
}
|
||
|
||
### Delete dashboard
|
||
|
||
`DELETE /api/dashboards/db/:slug`
|
||
|
||
The above will delete the dashboard with the specified slug. The slug is the url friendly (unique) version of the dashboard title.
|
||
|
||
## Data sources
|
||
|
||
### Create data source
|
||
|
||
## Organizations
|
||
|
||
## Users
|
||
|
||
|