2022-05-26 23:06:25 +08:00
---
aliases:
2022-12-10 00:36:04 +08:00
- ../../http_api/auth/
- ../../http_api/authentication/
2023-02-07 01:14:36 +08:00
canonical: /docs/grafana/latest/developers/http_api/auth/
2022-05-26 23:06:25 +08:00
description: Grafana Authentication HTTP API
keywords:
- grafana
- http
- documentation
- api
- authentication
Explicitly set all front matter labels in the source files (#71548)
* Set every page to have defaults of 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration pages to have of 'Cloud', 'Enterprise', and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/enterprise-licensing pages to have 'Enterprise' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/organization-management pages to have 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/provisioning pages to have 'Enterprise' and 'Open source' labels
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/recorded-queries pages to have labels cloud,enterprise
* Set administration/roles-and-permissions/access-control pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set administration/stats-and-license pages to have labels cloud,enterprise
* Set alerting pages to have labels cloud,enterprise,oss
* Set breaking-changes pages to have labels cloud,enterprise,oss
* Set dashboards pages to have labels cloud,enterprise,oss
* Set datasources pages to have labels cloud,enterprise,oss
* Set explore pages to have labels cloud,enterprise,oss
* Set fundamentals pages to have labels cloud,enterprise,oss
* Set introduction/grafana-cloud pages to have labels cloud
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Fix introduction pages products
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set panels-visualizations pages to have labels cloud,enterprise,oss
* Set release-notes pages to have labels cloud,enterprise,oss
* Set search pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/audit-grafana pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/configure-authentication pages to have labels cloud,enterprise,oss
* Set setup-grafana/configure-security/configure-authentication/enhanced-ldap pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-authentication/saml pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-database-encryption/encrypt-secrets-using-hashicorp-key-vault pages to have labels cloud,enterprise
* Set setup-grafana/configure-security/configure-request-security pages to have labels cloud,enterprise,oss
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/configure-team-sync pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set setup-grafana/configure-security/export-logs pages to have labels cloud,enterprise
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
* Set troubleshooting pages to have labels cloud,enterprise,oss
* Set whatsnew pages to have labels cloud,enterprise,oss
* Apply updated labels from review
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
---------
Signed-off-by: Jack Baldry <jack.baldry@grafana.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
Co-authored-by: Isabel <76437239+imatwawana@users.noreply.github.com>
2023-07-18 16:10:12 +08:00
labels:
products:
- enterprise
- oss
2022-05-26 23:06:25 +08:00
title: 'Authentication HTTP API '
---
2016-02-03 14:59:22 +08:00
2016-02-05 17:15:09 +08:00
# Authentication API
2016-02-03 14:59:22 +08:00
2023-10-31 21:29:08 +08:00
The Authentication HTTP API is used to manage API keys.
2016-02-03 14:59:22 +08:00
2023-10-31 21:29:08 +08:00
{{% admonition type="note" %}}
If you use Grafana v9.1 or newer, use service accounts instead of API keys. For more information, refer to [Grafana service account API reference ]({{< relref "./serviceaccount/" >}} ).
{{% /admonition %}}
2021-04-22 00:24:56 +08:00
2023-10-31 21:29:08 +08:00
> If you are running Grafana Enterprise, for some endpoints you would need to have relevant permissions. Refer to [Role-based access control permissions]({{< relref "../../administration/roles-and-permissions/access-control/custom-role-actions-scopes/" >}}) for more information.
2017-04-20 19:59:36 +08:00
2023-10-31 21:29:08 +08:00
## List API keys
2017-04-20 19:59:36 +08:00
`GET /api/auth/keys`
2022-05-21 03:48:52 +08:00
**Required permissions**
See note in the [introduction ]({{< ref "#authentication-api" >}} ) for an explanation.
| Action | Scope |
| -------------- | ----------- |
| `apikeys:read` | `apikeys:*` |
2017-04-20 19:59:36 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
GET /api/auth/keys HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
2017-04-20 19:59:36 +08:00
2019-11-20 19:14:57 +08:00
Query Parameters:
- `includeExpired` : boolean. enable listing of expired keys. Optional.
2017-04-20 19:59:36 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
[
{
"id": 3,
"name": "API",
"role": "Admin"
},
{
"id": 1,
"name": "TestAdmin",
2019-06-26 14:47:03 +08:00
"role": "Admin",
"expiration": "2019-06-26T10:52:03+03:00"
2017-10-06 01:01:03 +08:00
}
]
```
2017-04-20 19:59:36 +08:00
## Create API Key
`POST /api/auth/keys`
2022-05-21 03:48:52 +08:00
**Required permissions**
See note in the [introduction ]({{< ref "#authentication-api" >}} ) for an explanation.
| Action | Scope |
| ---------------- | ----- |
| `apikeys:create` | n/a |
2017-04-20 19:59:36 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
POST /api/auth/keys HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
2017-04-20 19:59:36 +08:00
2017-10-06 01:01:03 +08:00
{
"name": "mykey",
2019-06-26 14:47:03 +08:00
"role": "Admin",
"secondsToLive": 86400
2017-10-06 01:01:03 +08:00
}
```
2017-04-20 19:59:36 +08:00
JSON Body schema:
- **name** – The key name
2017-12-14 01:53:42 +08:00
- **role** – Sets the access level/Grafana Role for the key. Can be one of the following values: `Viewer` , `Editor` or `Admin` .
2019-06-26 14:47:03 +08:00
- **secondsToLive** – Sets the key expiration in seconds. It is optional. If it is a positive number an expiration date for the key is set. If it is null, zero or is omitted completely (unless `api_key_max_seconds_to_live` configuration option is set) the key will never expire.
Error statuses:
- **400** – `api_key_max_seconds_to_live` is set but no `secondsToLive` is specified or `secondsToLive` is greater than this value.
- **500** – The key was unable to be stored in the database.
2017-04-20 19:59:36 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2017-04-20 19:59:36 +08:00
2020-09-07 23:06:11 +08:00
{"name":"mykey","key":"eyJrIjoiWHZiSWd3NzdCYUZnNUtibE9obUpESmE3bzJYNDRIc0UiLCJuIjoibXlrZXkiLCJpZCI6MX1=","id":1}
2017-10-06 01:01:03 +08:00
```
2017-04-20 19:59:36 +08:00
## Delete API Key
`DELETE /api/auth/keys/:id`
2022-05-21 03:48:52 +08:00
**Required permissions**
See note in the [introduction ]({{< ref "#authentication-api" >}} ) for an explanation.
| Action | Scope |
| ---------------- | ---------- |
| `apikeys:delete` | apikeys:\* |
2017-04-20 19:59:36 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
DELETE /api/auth/keys/3 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
2021-08-06 21:52:36 +08:00
2017-04-20 19:59:36 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2017-04-20 19:59:36 +08:00
2017-10-06 01:01:03 +08:00
{"message":"API key deleted"}
2020-05-19 04:56:23 +08:00
```