2022-05-26 23:06:25 +08:00
---
aliases:
2022-12-10 00:36:04 +08:00
- ../../http_api/user/
2023-02-07 01:14:36 +08:00
canonical: /docs/grafana/latest/developers/http_api/user/
2022-05-26 23:06:25 +08:00
description: Grafana User HTTP API
keywords:
- grafana
- http
- documentation
- api
- user
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-12-10 00:36:04 +08:00
title: User HTTP API
2024-05-20 23:29:57 +08:00
refs:
role-based-access-control-permissions:
- pattern: /docs/grafana/
destination: /docs/grafana/< GRAFANA_VERSION > /administration/roles-and-permissions/access-control/custom-role-actions-scopes/
- pattern: /docs/grafana-cloud/
destination: /docs/grafana/< GRAFANA_VERSION > /administration/roles-and-permissions/access-control/custom-role-actions-scopes/
2022-05-26 23:06:25 +08:00
---
2016-10-21 17:01:34 +08:00
2021-05-21 00:53:34 +08:00
# User API
2016-02-03 14:59:22 +08:00
2024-08-29 17:50:11 +08:00
{{< admonition type = "caution" > }}
You can't authenticate to the User 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 ).
2023-07-28 22:03:56 +08:00
2024-08-29 17:50:11 +08:00
Alternatively, you can use the [Organization HTTP API ](/docs/grafana/<GRAFANA_VERSION>/developers/http_api/org/#current-organization-api ) with service account tokens to manage users in a specific organization
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 > }}
2023-07-28 22:03:56 +08:00
2025-03-18 20:29:06 +08:00
For Grafana Cloud customers, refer to [Organization HTTP API ](/docs/grafana/latest/developers/http_api/org/ ) for finding users with the org Admin role.
2024-05-20 23:29:57 +08:00
> If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions](ref:role-based-access-control-permissions) for more information.
2021-08-06 21:52:36 +08:00
2016-02-05 17:47:34 +08:00
## Search Users
2016-02-03 14:59:22 +08:00
2023-09-28 16:16:18 +08:00
`GET /api/users?perpage=10&page=1&sort=login-asc,email-asc`
2016-02-03 14:59:22 +08:00
2022-05-21 03:48:52 +08:00
**Required permissions**
2021-05-21 00:53:34 +08:00
2023-10-03 20:49:27 +08:00
See note in the [introduction ](#user-api ) for an explanation.
2021-05-21 00:53:34 +08:00
2021-08-06 21:52:36 +08:00
| Action | Scope |
| ---------- | --------------- |
2022-03-22 19:48:46 +08:00
| users:read | global.users:\* |
2021-05-21 00:53:34 +08:00
2016-02-03 14:59:22 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
GET /api/users HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
2016-02-03 14:59:22 +08:00
2017-08-11 16:24:54 +08:00
Default value for the `perpage` parameter is `1000` and for the `page` parameter is `1` . Requires basic authentication and that the authenticated user is a Grafana Admin.
2017-02-21 23:09:15 +08:00
2023-09-28 16:16:18 +08:00
The `sort` param is an optional comma separated list of options to order the search result. Accepted values for the sort filter are: `login-asc` , `login-desc` , `email-asc` , `email-desc` , `name-asc` , `name-desc` , `lastSeenAtAge-asc` , `lastSeenAtAge-desc` . By default, if `sort` is not specified, the user list will be ordered by `login` , `email` in ascending order.
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
[
{
"id": 1,
"name": "Admin",
"login": "admin",
"email": "admin@mygraf.com",
2020-04-16 21:45:22 +08:00
"isAdmin": true,
"isDisabled": false,
"lastSeenAt": "2020-04-10T20:29:27+03:00",
2024-04-24 13:13:51 +08:00
"lastSeenAtAge": "2m",
2020-04-16 21:45:22 +08:00
"authLabels": ["OAuth"]
2017-10-06 01:01:03 +08:00
},
{
"id": 2,
"name": "User",
"login": "user",
"email": "user@mygraf.com",
2020-04-16 21:45:22 +08:00
"isAdmin": false,
"isDisabled": false,
"lastSeenAt": "2020-01-24T12:38:47+02:00",
"lastSeenAtAge": "2M",
"authLabels": []
2017-10-06 01:01:03 +08:00
}
]
```
2016-02-03 14:59:22 +08:00
2017-02-21 23:09:15 +08:00
## Search Users with Paging
2023-09-28 16:16:18 +08:00
`GET /api/users/search?perpage=10&page=1&query=mygraf&sort=login-asc,email-asc`
2017-02-21 23:09:15 +08:00
2022-05-21 03:48:52 +08:00
**Required permissions**
2021-05-21 00:53:34 +08:00
2023-10-03 20:49:27 +08:00
See note in the [introduction ](#user-api ) for an explanation.
2021-05-21 00:53:34 +08:00
2021-08-06 21:52:36 +08:00
| Action | Scope |
| ---------- | --------------- |
2022-03-22 19:48:46 +08:00
| users:read | global.users:\* |
2021-05-21 00:53:34 +08:00
2017-02-21 23:09:15 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
GET /api/users/search?perpage=10& page=1& query=mygraf HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
2017-02-21 23:09:15 +08:00
2020-02-15 00:11:08 +08:00
Default value for the `perpage` parameter is `1000` and for the `page` parameter is `1` . The `totalCount` field in the response can be used for pagination of the user list E.g. if `totalCount` is equal to 100 users and the `perpage` parameter is set to 10 then there are 10 pages of users. The `query` parameter is optional and it will return results where the query value is contained in one of the `name` , `login` or `email` fields. Query values with spaces need to be URL encoded e.g. `query=Jane%20Doe` .
2017-02-21 23:09:15 +08:00
2023-09-28 16:16:18 +08:00
The `sort` param is an optional comma separated list of options to order the search result. Accepted values for the sort filter are: `login-asc` , `login-desc` , `email-asc` , `email-desc` , `name-asc` , `name-desc` , `lastSeenAtAge-asc` , `lastSeenAtAge-desc` . By default, if `sort` is not specified, the user list will be ordered by `login` , `email` in ascending order.
2017-08-11 16:24:54 +08:00
Requires basic authentication and that the authenticated user is a Grafana Admin.
2017-02-21 23:09:15 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
{
"totalCount": 2,
"users": [
2017-02-21 23:09:15 +08:00
{
2017-10-06 01:01:03 +08:00
"id": 1,
"name": "Admin",
"login": "admin",
"email": "admin@mygraf.com",
2020-04-16 21:45:22 +08:00
"isAdmin": true,
"isDisabled": false,
"lastSeenAt": "2020-04-10T20:29:27+03:00",
"lastSeenAtAge': "2m",
"authLabels": ["OAuth"]
2017-10-06 01:01:03 +08:00
},
{
"id": 2,
"name": "User",
"login": "user",
"email": "user@mygraf.com",
2020-04-16 21:45:22 +08:00
"isAdmin": false,
"isDisabled": false,
"lastSeenAt": "2020-01-24T12:38:47+02:00",
"lastSeenAtAge": "2M",
"authLabels": []
2017-02-21 23:09:15 +08:00
}
2017-10-06 01:01:03 +08:00
],
"page": 1,
"perPage": 10
}
```
2017-02-21 23:09:15 +08:00
2016-02-05 17:47:34 +08:00
## Get single user by Id
2016-02-03 14:59:22 +08:00
`GET /api/users/:id`
2022-05-21 03:48:52 +08:00
**Required permissions**
2021-05-21 00:53:34 +08:00
2023-10-03 20:49:27 +08:00
See note in the [introduction ](#user-api ) for an explanation.
2021-05-21 00:53:34 +08:00
2022-06-02 20:14:48 +08:00
| Action | Scope |
| ---------- | --------------- |
| users:read | global.users:\* |
2021-05-21 00:53:34 +08:00
2016-02-03 14:59:22 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
GET /api/users/1 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
2021-08-06 21:52:36 +08:00
2017-08-11 16:24:54 +08:00
Requires basic authentication and that the authenticated user is a Grafana Admin.
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{
2019-10-01 03:54:09 +08:00
"id": "1",
"email": "user@mygraf.com",
2017-10-06 01:01:03 +08:00
"name": "admin",
"login": "admin",
"theme": "light",
"orgId": 1,
2019-10-01 03:54:09 +08:00
"isGrafanaAdmin": true,
"isDisabled": true,
"isExternal": false,
"authLabels": [],
"updatedAt": "2019-09-09T11:31:26+01:00",
2020-04-16 21:45:22 +08:00
"createdAt": "2019-09-09T11:31:26+01:00",
"avatarUrl": ""
2017-10-06 01:01:03 +08:00
}
```
2016-02-03 14:59:22 +08:00
2017-01-31 13:25:55 +08:00
## Get single user by Username(login) or Email
2017-02-14 19:56:49 +08:00
`GET /api/users/lookup?loginOrEmail=user@mygraf.com`
2017-01-31 13:25:55 +08:00
2022-05-21 03:48:52 +08:00
**Required permissions**
2021-05-21 00:53:34 +08:00
2023-10-03 20:49:27 +08:00
See note in the [introduction ](#user-api ) for an explanation.
2021-05-21 00:53:34 +08:00
2021-08-06 21:52:36 +08:00
| Action | Scope |
| ---------- | --------------- |
2022-03-22 19:48:46 +08:00
| users:read | global.users:\* |
2021-05-21 00:53:34 +08:00
2017-02-14 19:56:49 +08:00
**Example Request using the email as option**:
2017-01-31 13:25:55 +08:00
2017-10-06 01:01:03 +08:00
```http
GET /api/users/lookup?loginOrEmail=user@mygraf.com HTTP/1.1
Accept: application/json
Content-Type: application/json
2023-08-03 04:26:16 +08:00
Authorization: Basic YWRtaW46YWRtaW4=
2017-10-06 01:01:03 +08:00
```
2017-01-31 13:25:55 +08:00
2017-02-14 19:56:49 +08:00
**Example Request using the username as option**:
2017-10-06 01:01:03 +08:00
```http
GET /api/users/lookup?loginOrEmail=admin HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
2017-08-11 16:24:54 +08:00
Requires basic authentication and that the authenticated user is a Grafana Admin.
2017-01-31 13:25:55 +08:00
2017-02-14 19:56:49 +08:00
**Example Response**:
2017-01-31 13:25:55 +08:00
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2017-01-31 13:25:55 +08:00
2017-10-06 01:01:03 +08:00
{
2019-03-01 23:07:34 +08:00
"id": 1,
2017-12-20 04:30:35 +08:00
"email": "user@mygraf.com",
2017-10-06 01:01:03 +08:00
"name": "admin",
"login": "admin",
"theme": "light",
"orgId": 1,
2019-10-01 03:54:09 +08:00
"isGrafanaAdmin": true,
"isDisabled": false,
"isExternal": false,
"authLabels": null,
"updatedAt": "2019-09-25T14:44:37+01:00",
2020-04-16 21:45:22 +08:00
"createdAt": "2019-09-25T14:44:37+01:00",
"avatarUrl":""
2017-10-06 01:01:03 +08:00
}
```
2017-01-31 13:25:55 +08:00
2016-02-05 17:47:34 +08:00
## User Update
2016-02-03 14:59:22 +08:00
`PUT /api/users/:id`
2022-05-21 03:48:52 +08:00
**Required permissions**
2021-05-21 00:53:34 +08:00
2023-10-03 20:49:27 +08:00
See note in the [introduction ](#user-api ) for an explanation.
2021-05-21 00:53:34 +08:00
2022-06-02 20:14:48 +08:00
| Action | Scope |
| ----------- | --------------- |
| users:write | global.users:\* |
2021-05-21 00:53:34 +08:00
2016-02-03 14:59:22 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
PUT /api/users/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{
"email":"user@mygraf.com",
"name":"User2",
"login":"user",
"theme":"light"
}
```
2016-02-03 14:59:22 +08:00
2017-08-11 16:24:54 +08:00
Requires basic authentication and that the authenticated user is a Grafana Admin.
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{"message":"User updated"}
```
2016-02-03 14:59:22 +08:00
2018-11-29 03:33:41 +08:00
## Get Organizations for user
2016-02-03 14:59:22 +08:00
`GET /api/users/:id/orgs`
2022-05-21 03:48:52 +08:00
**Required permissions**
2021-05-21 00:53:34 +08:00
2023-10-03 20:49:27 +08:00
See note in the [introduction ](#user-api ) for an explanation.
2021-05-21 00:53:34 +08:00
2022-06-02 20:14:48 +08:00
| Action | Scope |
| ---------- | --------------- |
| users:read | global.users:\* |
2021-05-21 00:53:34 +08:00
2016-02-03 14:59:22 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
GET /api/users/1/orgs HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
2017-08-11 16:24:54 +08:00
Requires basic authentication and that the authenticated user is a Grafana Admin.
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
[
{
"orgId":1,
"name":"Main Org.",
"role":"Admin"
}
]
```
2016-02-03 14:59:22 +08:00
2018-11-20 10:17:46 +08:00
## Get Teams for user
`GET /api/users/:id/teams`
2022-05-21 03:48:52 +08:00
**Required permissions**
2021-05-21 00:53:34 +08:00
2023-10-03 20:49:27 +08:00
See note in the [introduction ](#user-api ) for an explanation.
2021-05-21 00:53:34 +08:00
2022-06-02 20:14:48 +08:00
| Action | Scope |
| ---------- | --------------- |
| users:read | global.users:\* |
| teams:read | teams:\* |
2021-05-21 00:53:34 +08:00
2018-11-20 10:17:46 +08:00
**Example Request**:
```http
GET /api/users/1/teams HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Basic YWRtaW46YWRtaW4=
```
Requires basic authentication and that the authenticated user is a Grafana Admin.
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
[
{
"id":1,
"orgId":1,
"name":"team1",
"email":"",
"avatarUrl":"/avatar/3fcfe295eae3bcb67a49349377428a66",
"memberCount":1
}
]
```
2016-02-03 14:59:22 +08:00
## User
2016-02-05 17:47:34 +08:00
## Actual User
2016-02-03 14:59:22 +08:00
`GET /api/user`
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
GET /api/user HTTP/1.1
Accept: application/json
Content-Type: application/json
2021-03-27 01:15:10 +08:00
Authorization: Basic YWRtaW46YWRtaW4=
2017-10-06 01:01:03 +08:00
```
2016-02-03 14:59:22 +08:00
2021-03-27 01:15:10 +08:00
Requires basic authentication.
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{
2020-04-16 21:45:22 +08:00
"id":1,
2017-10-06 01:01:03 +08:00
"email":"admin@mygraf.com",
"name":"Admin",
"login":"admin",
"theme":"light",
"orgId":1,
2020-04-16 21:45:22 +08:00
"isGrafanaAdmin":true,
"isDisabled":false
"isExternal": false,
"authLabels": [],
"updatedAt": "2019-09-09T11:31:26+01:00",
"createdAt": "2019-09-09T11:31:26+01:00",
"avatarUrl": ""
2017-10-06 01:01:03 +08:00
}
```
2016-02-03 14:59:22 +08:00
2016-02-05 17:47:34 +08:00
## Change Password
2016-02-03 14:59:22 +08:00
`PUT /api/user/password`
2021-03-27 01:15:10 +08:00
Changes the password for the user. Requires basic authentication.
2016-02-03 14:59:22 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
PUT /api/user/password HTTP/1.1
Accept: application/json
Content-Type: application/json
2021-03-27 01:15:10 +08:00
Authorization: Basic YWRtaW46YWRtaW4=
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{
"oldPassword": "old_password",
2019-11-27 00:21:25 +08:00
"newPassword": "new_password"
2017-10-06 01:01:03 +08:00
}
```
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{"message":"User password changed"}
```
2016-02-03 14:59:22 +08:00
2020-01-11 01:41:39 +08:00
**Change Password with a Script**
If you need to change a password with a script, here is an example of changing the Admin password using curl with basic auth:
```bash
curl -X PUT -H "Content-Type: application/json" -d '{
"oldPassword": "oldpass",
"newPassword": "newpass",
"confirmNew": "newpass"
}' http://admin:oldpass@< your_grafana_host > :3000/api/user/password
```
2017-08-11 16:24:54 +08:00
## Switch user context for a specified user
`POST /api/users/:userId/using/:organizationId`
Switch user context to the given organization. Requires basic authentication and that the authenticated user is a Grafana Admin.
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
POST /api/users/7/using/2 HTTP/1.1
Authorization: Basic YWRtaW46YWRtaW4=
```
2017-08-11 16:24:54 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2017-08-11 16:24:54 +08:00
2017-10-06 01:01:03 +08:00
{"message":"Active organization changed"}
```
2017-08-11 16:24:54 +08:00
## Switch user context for signed in user
2016-02-03 14:59:22 +08:00
2017-08-11 16:24:54 +08:00
`POST /api/user/using/:organizationId`
2016-02-03 14:59:22 +08:00
2017-08-11 16:24:54 +08:00
Switch user context to the given organization.
2016-02-03 14:59:22 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
POST /api/user/using/2 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{"message":"Active organization changed"}
```
2016-02-03 14:59:22 +08:00
2018-11-29 03:33:41 +08:00
## Organizations of the actual User
2016-02-03 14:59:22 +08:00
`GET /api/user/orgs`
2021-03-27 01:15:10 +08:00
Return a list of all organizations of the current user. Requires basic authentication.
2016-02-03 14:59:22 +08:00
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
GET /api/user/orgs HTTP/1.1
Accept: application/json
Content-Type: application/json
2021-03-27 01:15:10 +08:00
Authorization: Basic YWRtaW46YWRtaW4=
2017-10-06 01:01:03 +08:00
```
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
[
{
"orgId":1,
"name":"Main Org.",
"role":"Admin"
}
]
```
2016-02-03 14:59:22 +08:00
2018-08-08 16:26:05 +08:00
## Teams that the actual User is member of
`GET /api/user/teams`
Return a list of all teams that the current user is member of.
**Example Request**:
```http
GET /api/user/teams HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
[
{
"id": 1,
"orgId": 1,
"name": "MyTestTeam",
"email": "",
"avatarUrl": "\/avatar\/3f49c15916554246daa714b9bd0ee398",
"memberCount": 1
}
]
```
2016-02-05 17:47:34 +08:00
## Star a dashboard
2016-02-03 14:59:22 +08:00
2024-11-15 23:51:31 +08:00
`POST /api/user/stars/dashboard/uid/:uid`
2016-02-03 14:59:22 +08:00
Stars the given Dashboard for the actual user.
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
2024-11-15 23:51:31 +08:00
POST /api/user/stars/dashboard/uid/BqokFhx7z HTTP/1.1
2017-10-06 01:01:03 +08:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{"message":"Dashboard starred!"}
```
2016-02-03 14:59:22 +08:00
2016-02-05 17:47:34 +08:00
## Unstar a dashboard
2016-02-03 14:59:22 +08:00
2024-11-15 23:51:31 +08:00
`DELETE /api/user/stars/dashboard/uid/:uid`
2016-02-03 14:59:22 +08:00
Deletes the starring of the given Dashboard for the actual user.
**Example Request**:
2017-10-06 01:01:03 +08:00
```http
2024-11-15 23:51:31 +08:00
DELETE /api/user/stars/dashboard/uid/BqokFhx7z HTTP/1.1
2017-10-06 01:01:03 +08:00
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
2016-02-03 14:59:22 +08:00
**Example Response**:
2017-10-06 01:01:03 +08:00
```http
HTTP/1.1 200
Content-Type: application/json
2016-02-03 14:59:22 +08:00
2017-10-06 01:01:03 +08:00
{"message":"Dashboard unstarred"}
2017-12-20 04:30:35 +08:00
```
2019-03-08 22:15:57 +08:00
## Auth tokens of the actual User
`GET /api/user/auth-tokens`
Return a list of all auth tokens (devices) that the actual user currently have logged in from.
**Example Request**:
```http
GET /api/user/auth-tokens HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
[
{
"id": 361,
"isActive": true,
"clientIp": "127.0.0.1",
2019-06-11 20:12:52 +08:00
"browser": "Chrome",
"browserVersion": "72.0",
"os": "Linux",
"osVersion": "",
"device": "Other",
2019-03-08 22:15:57 +08: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 20:12:52 +08:00
"browser": "Mobile Safari",
"browserVersion": "11.0",
"os": "iOS",
"osVersion": "11.0",
"device": "iPhone",
2019-03-08 22:15:57 +08:00
"createdAt": "2019-03-06T19:41:19+01:00",
"seenAt": "2019-03-06T19:41:21+01:00"
}
]
```
## Revoke an auth token of the actual User
`POST /api/user/revoke-auth-token`
Revokes the given auth token (device) for the actual user. User of issued auth token (device) will no longer be logged in
and will be required to authenticate again upon next activity.
**Example Request**:
```http
POST /api/user/revoke-auth-token HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"authTokenId": 364
}
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"message": "User auth token revoked"
}
```