Advisor HTTP API
Note
This API complies with the new Grafana API structure. To learn more refer to documentation about the API structure in Grafana.
This document may not contain the latest version of the API. For the most up-to-date list of available endpoints, refer to advisor.grafana.app/v0alpha1 in Swagger.
This API is in
alpha, so it might change in future releases.
The /apis/advisor.grafana.app/* API exposes the results of
Grafana Advisor, the app that runs regular health checks on your data sources, plugins, and Grafana instance.
Advisor stores each run as a Check resource. The check’s status.report field contains the number of analyzed items and the list of failures. You can read these checks to
create an alert based on Grafana Advisor results. The rest of the endpoints are for internal use.
Before you begin
Before you begin, ensure you have the following:
- Grafana Advisor enabled: Advisor has generated at least one report. Refer to Grafana Advisor to generate your first report.
- A service account token with the Admin role: Use it to authenticate your requests. Refer to HTTP API authentication.
Endpoints
Note
Reading checks to build alerts is the only supported public use case. The other endpoints are used internally by Grafana Advisor.
These are the available endpoints:
Path parameters
Parameters include:
{namespace}: The namespace of your Grafana instance or organization.- In Grafana Cloud:
stacks-<STACK_ID>. For example,stacks-123456. - In Grafana OSS and Enterprise:
defaultfor organization 1, ororg-<ORG_ID>for other organizations.
To learn more about namespaces, refer to API structure in Grafana.
- In Grafana Cloud:
List checks
GET /apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks
Lists the checks that Advisor has run in the specified namespace, including their results. Advisor creates a new check every time it runs, so the response contains several checks for each check type. To get the current state, use the most recent check of each type.
You can use the following optional query parameters:
labelSelector: Filters checks by label. For example,advisor.grafana.app/type=datasourcereturns only data source checks.limit: Sets the maximum number of checks to return per page.continue: Sets the token from themetadata.continuefield of a previous response to fetch the next page.
Example request:
GET /apis/advisor.grafana.app/v0alpha1/namespaces/default/checks HTTP/1.1
Accept: application/json
Authorization: Bearer <SERVICE_ACCOUNT_TOKEN>Replace <SERVICE_ACCOUNT_TOKEN> with your service account token.
Example response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"kind": "CheckList",
"apiVersion": "advisor.grafana.app/v0alpha1",
"metadata": {
"resourceVersion": "1762675200000000"
},
"items": [
{
"kind": "Check",
"apiVersion": "advisor.grafana.app/v0alpha1",
"metadata": {
"name": "check-7xk2p",
"namespace": "default",
"creationTimestamp": "2026-11-09T06:00:00Z",
"labels": {
"advisor.grafana.app/type": "datasource"
},
"annotations": {
"advisor.grafana.app/status": "processed"
}
},
"spec": {},
"status": {
"report": {
"count": 4,
"failures": [
{
"severity": "high",
"stepID": "health-check",
"item": "Production Prometheus",
"itemID": "prometheus-prod",
"links": [
{
"url": "/connections/datasources/edit/prometheus-prod",
"message": "Fix me",
"messageKey": "advisor.link.fix-me"
}
]
}
]
}
}
},
{
"kind": "Check",
"apiVersion": "advisor.grafana.app/v0alpha1",
"metadata": {
"name": "check-m4q9z",
"namespace": "default",
"creationTimestamp": "2026-11-09T06:00:05Z",
"labels": {
"advisor.grafana.app/type": "plugin"
},
"annotations": {
"advisor.grafana.app/status": "processed"
}
},
"spec": {},
"status": {
"report": {
"count": 12,
"failures": []
}
}
}
]
}Each item in the items array is one check. The following fields are the most relevant to evaluate check results:
metadata.labels["advisor.grafana.app/type"]: The check type, for exampledatasource,plugin,config,instance, orssosetting.metadata.annotations["advisor.grafana.app/status"]: The processing status of the check. The value isprocessedwhen the check finishes successfully, orerrorif the check failed to run. The annotation is missing while the check is still running.metadata.creationTimestamp: When the check ran. Use it to find the most recent check of each type.status.report.count: The number of items the check analyzed.status.report.failures: The list of issues the check found. An empty list means that the check found no issues.
Each entry in status.report.failures contains the following fields:
severity: The severity of the issue:highfor issues that need action, orlowfor issues that need investigation.stepID: The ID of the check step that found the issue, for examplehealth-check.item: The human-readable name of the affected item, for example a data source name.itemID: The ID of the affected item, for example a data source UID.links: Links to pages where you can fix the issue. Each link contains aurl, amessage, and an optionalmessageKeywith the translation key of the message.
Status codes
- 200: OK
- 401: Unauthorized
- 403: Access denied
- 404: Not found, for example if the namespace doesn’t exist or Advisor isn’t available
Related resources
Use the following resources to keep working with Grafana Advisor and the Grafana APIs:
- Alerting on Advisor results: Refer to Create an alert based on Grafana Advisor results.
- Grafana Advisor: Refer to Grafana Advisor.
- API structure: Refer to API structure in Grafana.


