Enterprise Open source Grafana Cloud

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:

MethodSummaryURI
GETDescribe the available resources/apis/advisor.grafana.app/v0alpha1/
GETList checks/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks
POSTCreate a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks
DELETEDelete a collection of checks/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks
GETGet a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks/{name}
PUTReplace a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks/{name}
PATCHUpdate a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks/{name}
DELETEDelete a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks/{name}
GETGet the status of a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks/{name}/status
PUTReplace the status of a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks/{name}/status
PATCHUpdate the status of a check/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checks/{name}/status
GETList check types/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes
POSTCreate a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes
DELETEDelete a collection of check types/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes
GETGet a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes/{name}
PUTReplace a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes/{name}
PATCHUpdate a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes/{name}
DELETEDelete a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes/{name}
GETGet the status of a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes/{name}/status
PUTReplace the status of a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes/{name}/status
PATCHUpdate the status of a check type/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/checktypes/{name}/status
POSTRegister check types/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/register
GETGet translations/apis/advisor.grafana.app/v0alpha1/namespaces/{namespace}/translations

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: default for organization 1, or org-<ORG_ID> for other organizations.

    To learn more about namespaces, refer to API structure in Grafana.

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=datasource returns only data source checks.
  • limit: Sets the maximum number of checks to return per page.
  • continue: Sets the token from the metadata.continue field of a previous response to fetch the next page.

Example request:

http
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
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 example datasource, plugin, config, instance, or ssosetting.
  • metadata.annotations["advisor.grafana.app/status"]: The processing status of the check. The value is processed when the check finishes successfully, or error if 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: high for issues that need action, or low for issues that need investigation.
  • stepID: The ID of the check step that found the issue, for example health-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 a url, a message, and an optional messageKey with 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

Use the following resources to keep working with Grafana Advisor and the Grafana APIs: