2022-05-26 23:06:25 +08:00
---
aliases:
2022-12-10 00:36:04 +08:00
- ../../http_api/library_element/
2023-02-07 01:14:36 +08:00
canonical: /docs/grafana/latest/developers/http_api/library_element/
2022-05-26 23:06:25 +08:00
description: Grafana Library Element HTTP API
keywords:
- grafana
- http
- documentation
- api
- library-element
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: 'Library Element HTTP API '
---
2021-10-07 13:29:27 +08:00
# Library Element API
## Identifier (id) vs unique identifier (uid)
The identifier (ID) of a library element is an auto-incrementing numeric value that is unique per Grafana install.
The unique identifier (UID) of a library element uniquely identifies library elements between multiple Grafana installs. It's automatically generated unless you specify it during library element creation. The UID provides consistent URLs for accessing library elements and when syncing library elements between multiple Grafana installs.
The maximum length of a UID is 40 characters.
## Get all library elements
`GET /api/library-elements`
Returns a list of all library elements the authenticated user has permission to view. Use the `perPage` query parameter to control the maximum number of library elements returned; the default limit is 100. You can also use the `page` query parameter to fetch library elements from any page other than the first one.
Query parameters:
2023-09-07 01:49:05 +08:00
- `searchString` : Part of the name or description searched for.
2025-06-12 21:41:18 +08:00
- `kind` : Kind of element to search for. Use `1` for library panels.
2023-09-07 01:49:05 +08:00
- `sortDirection` : Sort order of elements. Use `alpha-asc` for ascending and `alpha-desc` for descending sort order.
- `typeFilter` : A comma separated list of types to filter the elements by.
- `excludeUid` : Element UID to exclude from search results.
- `folderFilter` : A comma separated list of folder IDs to filter the elements by.
- `perPage` : The number of results per page; default is 100.
- `page` : The page for a set of records, given that only `perPage` records are returned at a time. Numbering starts at `1` .
2021-10-07 13:29:27 +08:00
**Example Request**:
```http
GET /api/library-elements?perPage=10 HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"result": {
"totalCount": 15,
"page": 1,
"perPage": 10
"elements": [
{
"id": 25,
"orgId": 1,
"folderId": 0,
"uid": "V--OrYHnz",
"name": "API docs Example",
"kind": 1,
"type": "text",
"description": "",
"model": {...},
"version": 1,
"meta": {
"folderName": "General",
"folderUid": "",
"connectedDashboards": 1,
"created": "2021-09-27T09:56:17+02:00",
"updated": "2021-09-27T09:56:17+02:00",
"createdBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
},
"updatedBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
}
}
},
{...}
{...}
],
}
}
```
Status Codes:
2023-09-07 01:49:05 +08:00
- `200` : Found
- `401` : Unauthorized
2021-10-07 13:29:27 +08:00
## Get library element by uid
`GET /api/library-elements/:uid`
Returns a library element with the given UID.
**Example Request**:
```http
GET /api/library-elements/V--OrYHnz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"result": {
"id": 25,
"orgId": 1,
"folderId": 0,
"uid": "V--OrYHnz",
"name": "API docs Example",
"kind": 1,
"type": "text",
"description": "",
"model": {...},
"version": 1,
"meta": {
"folderName": "General",
"folderUid": "",
"connectedDashboards": 1,
"created": "2021-09-27T09:56:17+02:00",
"updated": "2021-09-27T09:56:17+02:00",
"createdBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
},
"updatedBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
}
}
}
}
```
Status Codes:
2023-09-07 01:49:05 +08:00
- `200` : Found
- `401` : Unauthorized
- `404` : Library element not found
2021-10-07 13:29:27 +08:00
## Get library element by name
`GET /api/library-elements/name/:name`
Returns a library element with the given name
**Example Request**:
```http
GET /api/library-elements/name/API docs Example HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
2022-02-02 16:50:27 +08:00
"result": [
{
"id": 25,
"orgId": 1,
"folderId": 0,
"uid": "V--OrYHnz",
"name": "API docs Example",
"kind": 1,
"type": "text",
"description": "",
"model": {...},
"version": 1,
"meta": {
"folderName": "General",
"folderUid": "",
"connectedDashboards": 1,
"created": "2021-09-27T09:56:17+02:00",
"updated": "2021-09-27T09:56:17+02:00",
"createdBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
},
"updatedBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
}
}
}
]
2021-10-07 13:29:27 +08:00
}
```
Status Codes:
2023-09-07 01:49:05 +08:00
- `200` : Found
- `401` : Unauthorized
- `404` : Library element not found
2021-10-07 13:29:27 +08:00
## Get library element connections
`GET /api/library-elements/:uid/connections`
Returns a list of connections for a library element based on the UID specified.
**Example Request**:
```http
GET /api/library-elements/V--OrYHnz/connections HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"result": [
{
2025-06-26 06:21:56 +08:00
"id": 148, // Deprecated: will be removed in the future.
2021-10-07 13:29:27 +08:00
"kind": 1,
"elementId": 25,
"connectionId": 527,
2022-07-26 06:55:28 +08:00
"connectionUid": "dHEquNzGz",
2021-10-07 13:29:27 +08:00
"created": "2021-09-27T10:00:07+02:00",
"createdBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
}
}
]
}
```
Status Codes:
2023-09-07 01:49:05 +08:00
- `200` : Found
- `401` : Unauthorized
- `404` : Library element not found
2021-10-07 13:29:27 +08:00
## Create library element
`POST /api/library-elements`
Creates a new library element.
JSON Body schema:
2023-09-07 01:49:05 +08:00
- `folderId` : ID of the folder where the library element is stored. It is deprecated since Grafana v9
2023-09-08 10:57:16 +08:00
- `folderUid` : Optional, the UID of the folder where the library element is stored, empty string when it is at the root level.
2023-09-07 01:49:05 +08:00
- `name` : Optional, the name of the library element.
- `model` : The JSON model for the library element.
2025-06-12 21:41:18 +08:00
- `kind` : Kind of element to create, Use `1` for library panels.
2025-03-06 20:59:08 +08:00
- `uid` : Optional, the [unique identifier ](#identifier-id-vs-unique-identifier-uid ).
2021-10-07 13:29:27 +08:00
**Example Request**:
```http
POST /api/library-elements HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"uid": "nErXDvCkzz",
2022-05-05 16:04:54 +08:00
"folderUid": "",
2021-10-07 13:29:27 +08:00
"name": "Example library panel",
"model": {...},
"kind": 1
}
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"result": {
"id": 28,
"orgId": 1,
"folderId": 0,
2022-05-05 16:04:54 +08:00
"folderUid": "",
2021-10-07 13:29:27 +08:00
"uid": "nErXDvCkzz",
"name": "Example library panel",
"kind": 1,
"type": "",
"description": "",
"model": {...},
"version": 1,
"meta": {
"folderName": "General",
"folderUid": "",
"connectedDashboards": 0,
"created": "2021-09-30T09:14:22.378307+02:00",
"updated": "2021-09-30T09:14:22.378307+02:00",
"createdBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
},
"updatedBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
}
}
}
}
```
Status Codes:
2023-09-07 01:49:05 +08:00
- `200` : Created
- `400` : Errors (for example, name or UID already exists, invalid JSON, missing or invalid fields, and so on).
- `401` : Unauthorized
- `403` : Access denied
2021-10-07 13:29:27 +08:00
## Update library element
`PATCH /api/library-elements/:uid`
Updates an existing library element identified by uid.
JSON Body schema:
2023-09-07 01:49:05 +08:00
- `folderId` : ID of the folder where the library element is stored. It is deprecated since Grafana v9
2023-09-08 10:57:16 +08:00
- `folderUid` : UID of the folder where the library element is stored, empty string when it is at the root level.
2023-09-07 01:49:05 +08:00
- `name` : Name of the library element.
- `model` : The JSON model for the library element.
2025-06-12 21:41:18 +08:00
- `kind` : Kind of element to create. Use `1` for library panels.
2023-09-07 01:49:05 +08:00
- `version` : Version of the library element you are updating.
2025-03-06 20:59:08 +08:00
- `uid` : Optional, the [unique identifier ](#identifier-id-vs-unique-identifier-uid ).
2021-10-07 13:29:27 +08:00
**Example Request**:
```http
PATCH /api/library-elements/nErXDvCkzz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"name": "Renamed library panel",
"kind": 1,
"version": 1
}
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
"result": {
"id": 28,
"orgId": 1,
"folderId": 0,
2022-05-05 16:04:54 +08:00
"folderUid": "",
2021-10-07 13:29:27 +08:00
"uid": "nErXDvCkzz",
"name": "Renamed library panel",
"kind": 1,
"type": "",
"description": "",
"model": {
"description": "",
"type": ""
},
"version": 2,
"meta": {
"folderName": "General",
"folderUid": "",
"connectedDashboards": 0,
"created": "2021-09-30T09:14:22+02:00",
"updated": "2021-09-30T09:25:57.697214+02:00",
"createdBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
},
"updatedBy": {
"id": 1,
"name": "admin",
"avatarUrl": "/avatar/46d229b033af06a191ff2267bca9ae56"
}
}
}
}
```
Status Codes:
2023-09-07 01:49:05 +08:00
- `200` : Updated
- `400` : Errors (for example, name or UID already exists, invalid JSON, missing or invalid fields, and so on).
- `401` : Unauthorized
- `403` : Access denied
- `404` : Library element not found
- `412` : Version mismatch
2021-10-07 13:29:27 +08:00
## Delete library element
`DELETE /api/library-elements/:uid`
Deletes an existing library element as specified by the UID. This operation cannot be reverted.
2025-06-20 00:31:13 +08:00
{{< admonition type = "note" > }}
2023-05-23 04:45:28 +08:00
You cannot delete a library element that is connected. This operation cannot be reverted.
2025-06-20 00:31:13 +08:00
{{< / admonition > }}
2021-10-07 13:29:27 +08:00
**Example Request**:
```http
DELETE /api/library-elements/nErXDvCkzz HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response**:
```http
HTTP/1.1 200
Content-Type: application/json
{
2021-11-05 22:06:14 +08:00
"message": "Library element deleted",
"id": 28
2021-10-07 13:29:27 +08:00
}
```
Status Codes:
2023-09-07 01:49:05 +08:00
- `200` : Deleted
- `401` : Unauthorized
- `400` : Bad request
- `403` : Access denied
- `404` : Library element not found