2023-04-27 10:28:26 -04:00
---
aliases :
- ../../http_api/query_caching/
- ../../http_api/resource_caching/
- ../../http_api/caching/
canonical : /docs/grafana/latest/developers/http_api/query_and_resource_caching/
description : Grafana Enterprise Query and Resource Caching HTTP API
keywords :
- grafana
- http
- documentation
- api
- caching
- query caching
- resource caching
- data source
2023-07-18 09:10:12 +01:00
labels :
products :
- enterprise
- oss
2023-04-27 10:28:26 -04:00
title : Query and Resource Caching HTTP API
---
# Query and resource caching API
2023-05-22 17:45:28 -03:00
{{% admonition type="note" %}}
If you are running Grafana Enterprise, for some endpoints you'll need to have specific permissions. Refer to [Role-based access control permissions ]({{< relref "/docs/grafana/latest/administration/roles-and-permissions/access-control/custom-role-actions-scopes" >}} ) for more information.
{{% /admonition %}}
2023-04-27 10:28:26 -04:00
## Enable caching for a data source
`POST /api/datasources/:dataSourceUID/cache/enable`
**Required permissions**
See note in the [introduction ]({{< ref "#query-and-resource-caching-api" >}} ) for an explanation.
| Action | Scope |
| ------------------------- | -------------- |
| datasources.caching:write | datasources:\* |
### Examples
**Example Request** :
```http
POST /api/datasources/jZrmlLCGka/cache/enable HTTP / 1.1
Accept : application/json
Content-Type : application/json
Authorization : Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response** :
```http
HTTP / 1.1 200
Content-Type : application/json
{
"message" : "Data source cache enabled" ,
"dataSourceID" : 1 ,
"dataSourceUID" : "jZrmlLCGka" ,
"enabled" : true ,
"ttlQueriesMs" : 300000 ,
"ttlResourcesMs" : 300000 ,
"useDefaultTTL" : true ,
"defaultTTLMs" : 300000 ,
"created" : "2023-04-21T11:49:22-04:00" ,
"updated" : "2023-04-24T16:30:29-04:00"
}
```
#### Status codes
| Code | Description |
| ---- | ------------------------------------------------------------------------ |
| 200 | Cache was successfully enabled for the data source |
| 500 | Unexpected error. Refer to the body and/or server logs for more details. |
## Disable caching for a data source
`POST /api/datasources/:dataSourceUID/cache/disable`
**Required permissions**
See note in the [introduction ]({{< ref "#query-and-resource-caching-api" >}} ) for an explanation.
| Action | Scope |
| ------------------------- | -------------- |
| datasources.caching:write | datasources:\* |
### Examples
**Example Request** :
```http
POST /api/datasources/jZrmlLCGka/cache/disable HTTP / 1.1
Accept : application/json
Content-Type : application/json
Authorization : Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response** :
```http
HTTP / 1.1 200
Content-Type : application/json
{
"message" : "Data source cache disabled" ,
"dataSourceID" : 1 ,
"dataSourceUID" : "jZrmlLCGka" ,
"enabled" : false ,
"ttlQueriesMs" : 300000 ,
"ttlResourcesMs" : 300000 ,
"useDefaultTTL" : true ,
"defaultTTLMs" : 0 ,
"created" : "2023-04-21T11:49:22-04:00" ,
"updated" : "2023-04-24T16:30:31-04:00"
}
```
#### Status codes
| Code | Description |
| ---- | ------------------------------------------------------------------------ |
| 200 | Cache was successfully enabled for the data source |
| 500 | Unexpected error. Refer to the body and/or server logs for more details. |
## Clean cache for all data sources
`POST /api/datasources/:dataSourceUID/cache/clean`
Will clean cached data for _all_ data sources with caching enabled. The `dataSourceUID` specified will only be used to return the configuration for that data source.
**Required permissions**
See note in the [introduction ]({{< ref "#query-and-resource-caching-api" >}} ) for an explanation.
| Action | Scope |
| ------------------------- | -------------- |
| datasources.caching:write | datasources:\* |
### Examples
**Example Request** :
```http
POST /api/datasources/jZrmlLCGka/cache/clean HTTP / 1.1
Accept : application/json
Content-Type : application/json
Authorization : Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response** :
```http
HTTP / 1.1 200
Content-Type : application/json
{
"message" : "Data source cache cleaned" ,
"dataSourceID" : 1 ,
"dataSourceUID" : "jZrmlLCGka" ,
"enabled" : false ,
"ttlQueriesMs" : 300000 ,
"ttlResourcesMs" : 300000 ,
"useDefaultTTL" : true ,
"defaultTTLMs" : 0 ,
"created" : "2023-04-21T11:49:22-04:00" ,
"updated" : "2023-04-24T16:30:31-04:00"
}
```
#### Status codes
| Code | Description |
| ---- | ------------------------------------------------------------------------ |
| 200 | Cache was successfully enabled for the data source |
| 500 | Unexpected error. Refer to the body and/or server logs for more details. |
## Update cache configuration for a data source
`POST /api/datasources/:dataSourceUID/cache`
**Required permissions**
See note in the [introduction ]({{< ref "#query-and-resource-caching-api" >}} ) for an explanation.
| Action | Scope |
| ------------------------- | -------------- |
| datasources.caching:write | datasources:\* |
### Examples
**Example Request** :
```http
POST /api/datasources/jZrmlLCGka/cache HTTP / 1.1
Accept : application/json
Content-Type : application/json
Authorization : Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
{
"dataSourceID" : 1 ,
"dataSourceUID" : "jZrmlLCGka" ,
"enabled" : true ,
"useDefaultTTL" : false ,
"ttlQueriesMs" : 60000 ,
"ttlResourcesMs" : 300000 ,
}
```
#### JSON Body Schema
| Field name | Data type | Description |
| -------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| dataSourceID | number | The ID of the data source to configure. |
| dataSourceUID | string | The UID of the data source to configure. |
| enabled | boolean | Whether or not to enable caching for this data source. |
| useDefaultTTL | boolean | Whether the configured default TTL (Time-To-Live) should be used for both query and resource caching, instead of the user-specified values. |
| ttlQueriesMs | number | The TTL to use for query caching, in milliseconds. |
| ttlResourcesMs | number | The TTL to use for resource caching, in milliseconds. |
**Example Response** :
```http
HTTP / 1.1 200
Content-Type : application/json
{
"message" : "Data source cache settings updated" ,
"dataSourceID" : 1 ,
"dataSourceUID" : "jZrmlLCGka" ,
"enabled" : true ,
"useDefaultTTL" : false ,
"ttlQueriesMs" : 60000 ,
"ttlResourcesMs" : 300000 ,
"defaultTTLMs" : 300000 ,
"created" : "2023-04-21T11:49:22-04:00" ,
"updated" : "2023-04-24T17:03:40-04:00"
}
```
#### Status codes
| Code | Description |
| ---- | ------------------------------------------------------------------------ |
| 200 | Cache was successfully enabled for the data source |
| 400 | Request errors (invalid json, missing or invalid fields, etc) |
| 500 | Unexpected error. Refer to the body and/or server logs for more details. |
## Get cache configuration for a data source
`GET /api/datasources/:dataSourceUID/cache`
**Required permissions**
See note in the [introduction ]({{< ref "#query-and-resource-caching-api" >}} ) for an explanation.
| Action | Scope |
| ------------------------ | -------------- |
| datasources.caching:read | datasources:\* |
### Examples
**Example Request** :
```http
GET /api/datasources/jZrmlLCGka/cache HTTP / 1.1
Accept : application/json
Content-Type : application/json
Authorization : Bearer eyJrIjoiT0tTcG1pUlY2RnVKZTFVaDFsNFZXdE9ZWmNrMkZYbk
```
**Example Response** :
```http
HTTP / 1.1 200
Content-Type : application/json
{
"message" : "Data source cache settings loaded" ,
"dataSourceID" : 1 ,
"dataSourceUID" : "jZrmlLCGka" ,
"enabled" : true ,
"useDefaultTTL" : false ,
"ttlQueriesMs" : 60000 ,
"ttlResourcesMs" : 300000 ,
"defaultTTLMs" : 300000 ,
"created" : "2023-04-21T11:49:22-04:00" ,
"updated" : "2023-04-24T17:03:40-04:00"
}
```
#### Status codes
| Code | Description |
| ---- | ------------------------------------------------------------------------ |
| 200 | Cache was successfully enabled for the data source |
| 500 | Unexpected error. Refer to the body and/or server logs for more details. |