Grafana

App · Monitoring · 20 actions

Manage Grafana dashboards, folders and annotations, and read alert state, alert rules and data sources.

Actions

ActionWhat it does
Create annotationMark an event - a deploy, an incident, a maintenance window - on a Grafana time axis.
Create dashboardCreate a dashboard.
Create folderCreate a folder to file dashboards and alert rules in.
Delete annotationDelete an annotation.
Delete dashboardDelete a dashboard.
Delete folderDelete a folder and every dashboard filed in it.
Get dashboardRead one dashboard in full: its stored model - title, description, tags, time zone, refresh interval and every panel on it - alongside Grafana's own metadata about where it is filed, who last changed it and what this connection is allowed to do to it.
Get folderRead one folder: its title, URL, current version, who created and last changed it, and what this connection is allowed to do to it.
List alert rulesEvery Grafana-managed alert rule, with its title, UID, the folder and group it belongs to, its labels and annotations, and whether it is paused.
List annotation tagsEvery tag used on an annotation in this organisation, with how many annotations carry it.
List annotationsThe annotations marking events on Grafana's time axes, narrowed by dashboard, panel, tag, time range, or whether Grafana Alerting wrote them.
List contact pointsThe contact points Grafana Alerting delivers notifications to - email, Slack, webhooks - with each one's name, type and settings.
List dashboard versionsThe saved versions of one dashboard, newest first, with who saved each one, when, and the change note they left.
List data sourcesEvery data source in the organisation, with each one's UID, name, type and URL - the UID being what a dashboard panel or an alert rule refers to it by.
List firing alertsThe alerts Grafana is holding right now - firing, silenced or inhibited - with each one's labels, summary and how long it has been in that state.
List foldersThe folders this connection can see, with each one's UID, title and URL.
Rename folderGive a folder a new name.
Search dashboardsFind dashboards and folders by title, tag or folder.
Update annotationChange an existing annotation's text, tags or times.
Update dashboardChange a dashboard's settings: rename it, replace its tags or description, change its time zone, auto-refresh interval or whether it can be edited in the UI, or move it to another folder.

Create annotation

Mark an event - a deploy, an incident, a maintenance window - on a Grafana time axis. Name a dashboard to pin it there, or leave the dashboard empty for an organisation-wide annotation that any panel querying by tag will pick up. With an end time as well it marks a region rather than a moment.

Inputs

TexttexttextRequired
What to show on the annotation.
Dashboarddashboard_uidtext
Pin the annotation to this dashboard. Leave empty for an organisation-wide one.
Panel IDpanel_idnumber
Pin it to one panel of that dashboard. Leave empty to put it on every panel.
Tagstagslist
Tags to attach. Panels can be set up to show every annotation carrying a tag.
Start timefrom_timedate and time
When the event happened. Leave empty and Grafana stamps it with the moment the step runs.
End timeto_timedate and time
Set this as well as the start time to mark a region rather than a single moment.

Outputs

idnumber
messagetext
Example output
{
  "id": 907,
  "message": "Annotation added"
}

Create dashboard

Create a dashboard. It is created with no panels unless you supply a full dashboard model in Dashboard JSON, which the other fields are then laid over - Grafana's panel model is too large to fill in as form fields, so paste the JSON you already have. Returns the new dashboard's UID and URL.

Inputs

TitletitletextRequired
The dashboard's name, shown in lists and search.
Folderfolder_uidtext
Which folder to file the dashboard in. Leave empty for the instance's General folder.
Dashboard UIDuidtext
A UID of your own, up to 40 letters, numbers, hyphens and underscores. Leave empty and Grafana generates one.
Tagstagslist
Tags to file the dashboard under.
Descriptiondescriptiontext
A sentence about what the dashboard is for.
Time zonetimezone_nametext
The time zone the dashboard's times are shown in. Pick one, or type any IANA zone name such as Europe/London.One of: browser (The viewer's own time zone), utc.
Auto-refreshrefreshtext
How often the dashboard reloads by itself.One of: 5s (Every 5 seconds), 10s (Every 10 seconds), 30s (Every 30 seconds), 1m (Every minute), 5m (Every 5 minutes), 15m (Every 15 minutes), 30m (Every 30 minutes), 1h (Every hour), 1d (Every day).
Editableeditabletrue/false
Whether people can edit the dashboard in the Grafana UI. Off makes it read-only there; this API can still change it.
Dashboard JSONdashboard_jsonobject
A complete Grafana dashboard model to start from - the JSON behind Dashboard settings > JSON Model, or an export. The fields above are applied on top of it.
Change notemessagetext
A note recorded against this save, shown in the dashboard's version history.

Outputs

idnumber
slugtext
statustext
uidtext
urltext
versionnumber
Example output
{
  "id": 41,
  "slug": "production-overview",
  "status": "success",
  "uid": "cIBgcSjkk",
  "url": "/d/cIBgcSjkk/production-overview",
  "version": 4
}

Create folder

Create a folder to file dashboards and alert rules in. Give a parent folder to nest it inside another one.

Inputs

TitletitletextRequired
The folder's name.
Folder UIDuidtext
A UID of your own, up to 40 letters, numbers, hyphens and underscores. Leave empty and Grafana generates one.
Inside folderparent_uidtext
Nest the new folder inside this one. Leave empty to create it at the top level.

Outputs

canAdmintrue/false
canDeletetrue/false
canEdittrue/false
canSavetrue/false
createdtext
createdBytext
hasAcltrue/false
idnumber
orgIdnumber
parentUidtext
titletext
uidtext
updatedtext
updatedBytext
urltext
versionnumber
Example output
{
  "canAdmin": true,
  "canDelete": true,
  "canEdit": true,
  "canSave": true,
  "created": "2026-01-08T10:10:02Z",
  "createdBy": "lodol-automation",
  "hasAcl": false,
  "id": 2,
  "orgId": 1,
  "title": "Platform",
  "uid": "l3KqBxCMz",
  "updated": "2026-01-08T10:10:02Z",
  "updatedBy": "lodol-automation",
  "url": "/dashboards/f/l3KqBxCMz/platform",
  "version": 1
}

Delete annotation

Delete an annotation. This is permanent - annotations have no recycle bin.

Inputs

Annotation IDannotation_idnumberRequired
The numeric ID of the annotation, as returned by 'Create annotation' or 'List annotations'.

Outputs

deletedtrue/false
idnumber
messagetext
resourcetext
titletext
uidtext
Example output
{
  "deleted": true,
  "id": 907,
  "message": "Annotation deleted",
  "resource": "annotation"
}

Delete dashboard

Delete a dashboard. On Grafana instances with the recycle bin enabled it can be restored from Dashboards > Recently deleted for 30 days; elsewhere this is permanent.

Inputs

Dashboarddashboard_uidtextRequired
The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.

Outputs

deletedtrue/false
idnumber
messagetext
resourcetext
titletext
uidtext
Example output
{
  "deleted": true,
  "message": "Dashboard Production Overview deleted",
  "resource": "dashboard",
  "title": "Production Overview",
  "uid": "cIBgcSjkk"
}

Delete folder

Delete a folder and every dashboard filed in it. Grafana refuses if the folder also holds alert rules unless you tick 'Delete alert rules too', which cannot be undone.

Inputs

Folderfolder_uidtextRequired
The folder to act on. Pick one, or paste a folder UID or a folder URL.
Delete alert rules tooforce_delete_rulestrue/false
Delete the folder even though alert rules live in it, deleting those rules as well. Off, Grafana refuses rather than deleting them.

Outputs

deletedtrue/false
idnumber
messagetext
resourcetext
titletext
uidtext
Example output
{
  "deleted": true,
  "message": "Folder deleted",
  "resource": "folder",
  "uid": "l3KqBxCMz"
}

Get dashboard

Read one dashboard in full: its stored model - title, description, tags, time zone, refresh interval and every panel on it - alongside Grafana's own metadata about where it is filed, who last changed it and what this connection is allowed to do to it.

Inputs

Dashboarddashboard_uidtextRequired
The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.

Outputs

dashboardobject
metaobject
Example output
{
  "dashboard": {
    "description": "Request rate, error rate and latency.",
    "editable": true,
    "id": 41,
    "panels": [],
    "refresh": "1m",
    "schemaVersion": 39,
    "tags": [
      "production",
      "lodol"
    ],
    "timezone": "browser",
    "title": "Production Overview",
    "uid": "cIBgcSjkk",
    "version": 3
  },
  "meta": {
    "canAdmin": true,
    "canDelete": true,
    "canEdit": true,
    "canSave": true,
    "canStar": true,
    "created": "2026-01-08T10:12:44Z",
    "createdBy": "lodol-automation",
    "folderTitle": "Platform",
    "folderUid": "l3KqBxCMz",
    "folderUrl": "/dashboards/f/l3KqBxCMz/platform",
    "isFolder": false,
    "isStarred": false,
    "slug": "production-overview",
    "type": "db",
    "updated": "2026-02-19T09:41:02Z",
    "updatedBy": "lodol-automation",
    "url": "/d/cIBgcSjkk/production-overview",
    "version": 3
  }
}

Get folder

Read one folder: its title, URL, current version, who created and last changed it, and what this connection is allowed to do to it.

Inputs

Folderfolder_uidtextRequired
The folder to act on. Pick one, or paste a folder UID or a folder URL.

Outputs

canAdmintrue/false
canDeletetrue/false
canEdittrue/false
canSavetrue/false
createdtext
createdBytext
hasAcltrue/false
idnumber
orgIdnumber
parentUidtext
titletext
uidtext
updatedtext
updatedBytext
urltext
versionnumber
Example output
{
  "canAdmin": true,
  "canDelete": true,
  "canEdit": true,
  "canSave": true,
  "created": "2026-01-08T10:10:02Z",
  "createdBy": "lodol-automation",
  "hasAcl": false,
  "id": 2,
  "orgId": 1,
  "title": "Platform",
  "uid": "l3KqBxCMz",
  "updated": "2026-01-08T10:10:02Z",
  "updatedBy": "lodol-automation",
  "url": "/dashboards/f/l3KqBxCMz/platform",
  "version": 1
}

List alert rules

Every Grafana-managed alert rule, with its title, UID, the folder and group it belongs to, its labels and annotations, and whether it is paused. These are the rules themselves, not what is firing - use 'List firing alerts' for that.

Inputs

None.

Outputs

countnumber
How many came back
itemslist
The alert rules
Example output
{
  "count": 1,
  "items": [
    {
      "annotations": {
        "summary": "p95 latency above 500ms for 5 minutes"
      },
      "condition": "B",
      "data": [],
      "execErrState": "Alerting",
      "folderUID": "l3KqBxCMz",
      "id": 12,
      "isPaused": false,
      "labels": {
        "severity": "warning"
      },
      "noDataState": "NoData",
      "orgID": 1,
      "provenance": "",
      "ruleGroup": "latency",
      "title": "HighRequestLatency",
      "uid": "aeq1r7k9m2n3o4",
      "updated": "2026-02-01T14:02:11Z"
    }
  ]
}

List annotation tags

Every tag used on an annotation in this organisation, with how many annotations carry it. Use it to see which tags exist before filtering by one.

Inputs

Tag starts withtagtext
Only tags beginning with this text. Leave empty for all of them.
Limitlimitnumber
How many tags to return. Defaults to 100.From 1 to 1000. Default: 100.

Outputs

countnumber
How many came back
itemslist
The tags in use, with a count each
limitnumber
How many were asked for
Example output
{
  "count": 1,
  "items": [
    {
      "count": 12,
      "tag": "deploy"
    }
  ],
  "limit": 100
}

List annotations

The annotations marking events on Grafana's time axes, narrowed by dashboard, panel, tag, time range, or whether Grafana Alerting wrote them. Returns each one's ID, text, tags and times.

Inputs

Dashboarddashboard_uidtext
Only annotations on this dashboard. Leave empty for every dashboard, and for the organisation-wide ones.
Panel IDpanel_idnumber
Only annotations on this panel of that dashboard.
Tagstagslist
Only annotations carrying all of these tags. Leave empty to ignore tags.
Kindtype_filtertext
Narrow to the ones people and workflows added, or to the ones Grafana Alerting wrote. Leave empty for both.One of: annotation (Added by a person or by the API), alert (Written by Grafana Alerting).
Fromfrom_timedate and time
Only annotations at or after this moment.
Toto_timedate and time
Only annotations at or before this moment.
Limitlimitnumber
How many to return, up to 1000. Defaults to 100.From 1 to 1000. Default: 100.

Outputs

countnumber
How many came back
itemslist
The matching annotations
limitnumber
How many were asked for
Example output
{
  "count": 1,
  "items": [
    {
      "alertId": 0,
      "avatarUrl": "",
      "created": 1771494063117,
      "dashboardId": 41,
      "dashboardUID": "cIBgcSjkk",
      "email": "",
      "id": 907,
      "login": "lodol-automation",
      "panelId": 1,
      "tags": [
        "deploy",
        "lodol"
      ],
      "text": "Deploy 2026.2.19 released",
      "time": 1771494062000,
      "timeEnd": 1771494062000,
      "updated": 1771494063117,
      "userId": 3
    }
  ],
  "limit": 100
}

List contact points

The contact points Grafana Alerting delivers notifications to - email, Slack, webhooks - with each one's name, type and settings. Secret settings such as a webhook URL come back redacted.

Inputs

Namenametext
Only the contact point with this exact name. Leave empty for all of them.

Outputs

countnumber
How many came back
itemslist
The contact points
Example output
{
  "count": 1,
  "items": [
    {
      "disableResolveMessage": false,
      "name": "grafana-default-email",
      "provenance": "",
      "settings": {
        "addresses": "alerts@example.com"
      },
      "type": "email",
      "uid": "bd8f2c1e9a"
    }
  ]
}

List dashboard versions

The saved versions of one dashboard, newest first, with who saved each one, when, and the change note they left. Use it to see what changed on a dashboard and when.

Inputs

Dashboarddashboard_uidtextRequired
The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.
Limitlimitnumber
How many versions to return. Defaults to 20.From 1 to 1000. Default: 20.
Skipstartnumber
How many of the newest versions to skip before returning any. Use it to read further back.From 0 to 1000000.

Outputs

countnumber
How many came back
dashboard_uidtext
The dashboard these versions belong to
itemslist
The dashboard's saved versions, newest first
limitnumber
How many were asked for
Example output
{
  "count": 1,
  "dashboard_uid": "cIBgcSjkk",
  "items": [
    {
      "created": "2026-02-19T09:41:02Z",
      "createdBy": "lodol-automation",
      "dashboardId": 41,
      "id": 118,
      "message": "Renamed by Lodol",
      "parentVersion": 2,
      "restoredFrom": 0,
      "uid": "cIBgcSjkk",
      "version": 3
    }
  ],
  "limit": 20
}

List data sources

Every data source in the organisation, with each one's UID, name, type and URL - the UID being what a dashboard panel or an alert rule refers to it by. Needs the service account's role to be Admin; a Viewer or an Editor is refused.

Inputs

None.

Outputs

countnumber
How many came back
itemslist
The data sources
Example output
{
  "count": 1,
  "items": [
    {
      "access": "proxy",
      "basicAuth": true,
      "basicAuthUser": "1234567",
      "database": "",
      "id": 1,
      "isDefault": true,
      "jsonData": {
        "httpMethod": "POST"
      },
      "name": "grafanacloud-prom",
      "orgId": 1,
      "readOnly": false,
      "type": "prometheus",
      "typeLogoUrl": "public/app/plugins/datasource/prometheus/img/prometheus_logo.svg",
      "typeName": "Prometheus",
      "uid": "grafanacloud-prom",
      "url": "https://prometheus-prod.grafana.net/api/prom",
      "user": "",
      "withCredentials": false
    }
  ]
}

List firing alerts

The alerts Grafana is holding right now - firing, silenced or inhibited - with each one's labels, summary and how long it has been in that state. This is live alert state, so an alert that has resolved is gone from it; an empty list means nothing is firing.

Inputs

Include firing alertsactivetrue/false
Include the alerts that are currently firing. On by default.
Include silenced alertssilencedtrue/false
Include alerts a silence is holding back. On by default; turning it off leaves them out rather than showing only them.
Include inhibited alertsinhibitedtrue/false
Include alerts held back because a related alert is already firing. On by default.
Label matchersmatcherslist
Only alerts whose labels match all of these, each written as severity="critical".
Contact pointreceivertext
Only alerts routed to contact points whose name matches this.

Outputs

countnumber
How many came back
itemslist
The alerts currently firing or suppressed
Example output
{
  "count": 1,
  "items": [
    {
      "annotations": {
        "summary": "p95 latency above 500ms for 5 minutes"
      },
      "endsAt": "2026-02-19T09:45:00Z",
      "fingerprint": "9c2b1f7a3d4e5f60",
      "generatorURL": "https://my-stack.grafana.net/alerting/grafana/aeq1r7k/view",
      "labels": {
        "alertname": "HighRequestLatency",
        "grafana_folder": "Platform",
        "severity": "warning"
      },
      "receivers": [
        {
          "name": "grafana-default-email"
        }
      ],
      "startsAt": "2026-02-19T09:35:00Z",
      "status": {
        "inhibitedBy": [],
        "mutedBy": [],
        "silencedBy": [],
        "state": "active"
      },
      "updatedAt": "2026-02-19T09:40:00Z"
    }
  ]
}

List folders

The folders this connection can see, with each one's UID, title and URL. Give a parent folder to list the folders nested inside it instead of the top-level ones.

Inputs

Inside folderparent_uidtext
List the folders nested inside this one. Leave empty for the top-level folders.
Limitlimitnumber
How many to return per page, up to 1000. Defaults to 100.From 1 to 1000. Default: 100.
Pagepagenumber
Which page to read. Defaults to the first.From 1 to 1000000. Default: 1.

Outputs

countnumber
How many came back
has_moretrue/false
Whether another page exists
itemslist
The folders
limitnumber
How many were asked for
next_pagenumber
The next page, or null
pagenumber
The page that was read
Example output
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "canAdmin": true,
      "canDelete": true,
      "canEdit": true,
      "canSave": true,
      "created": "2026-01-08T10:10:02Z",
      "createdBy": "lodol-automation",
      "hasAcl": false,
      "id": 2,
      "orgId": 1,
      "title": "Platform",
      "uid": "l3KqBxCMz",
      "updated": "2026-01-08T10:10:02Z",
      "updatedBy": "lodol-automation",
      "url": "/dashboards/f/l3KqBxCMz/platform",
      "version": 1
    }
  ],
  "limit": 100,
  "next_page": null,
  "page": 1
}

Rename folder

Give a folder a new name. The folder's UID does not change, so every dashboard in it and every link to it still work.

Inputs

Folderfolder_uidtextRequired
The folder to act on. Pick one, or paste a folder UID or a folder URL.
New nametitletextRequired
The folder's new name.

Outputs

canAdmintrue/false
canDeletetrue/false
canEdittrue/false
canSavetrue/false
createdtext
createdBytext
hasAcltrue/false
idnumber
orgIdnumber
parentUidtext
titletext
uidtext
updatedtext
updatedBytext
urltext
versionnumber
Example output
{
  "canAdmin": true,
  "canDelete": true,
  "canEdit": true,
  "canSave": true,
  "created": "2026-01-08T10:10:02Z",
  "createdBy": "lodol-automation",
  "hasAcl": false,
  "id": 2,
  "orgId": 1,
  "title": "Platform",
  "uid": "l3KqBxCMz",
  "updated": "2026-01-08T10:10:02Z",
  "updatedBy": "lodol-automation",
  "url": "/dashboards/f/l3KqBxCMz/platform",
  "version": 1
}

Search dashboards

Find dashboards and folders by title, tag or folder. Returns each one's UID, title, URL, tags and the folder it is in - the UID being what every other Grafana action takes. Leave everything empty to list what the connection can see.

Inputs

Title containsquerytext
Only dashboards and folders whose title contains this text. Leave empty for all of them.
Tagstagslist
Only items carrying all of these tags. Leave empty to ignore tags.
Kindtype_filtertext
Narrow to dashboards or to folders. Leave empty for both.One of: dash-db (Dashboards only), dash-folder (Folders only).
Foldersfolder_uidslist
Only items inside these folders. Leave empty to search everywhere.
Starred onlystarredtrue/false
Only the dashboards the service account has starred.
Limitlimitnumber
How many to return per page, up to 5000. Defaults to 50.From 1 to 5000. Default: 50.
Pagepagenumber
Which page to read. Defaults to the first.From 1 to 1000000. Default: 1.

Outputs

countnumber
How many came back
has_moretrue/false
Whether another page exists
itemslist
The matching dashboards and folders
limitnumber
How many were asked for
next_pagenumber
The next page, or null
pagenumber
The page that was read
Example output
{
  "count": 1,
  "has_more": false,
  "items": [
    {
      "folderId": 2,
      "folderTitle": "Platform",
      "folderUid": "l3KqBxCMz",
      "folderUrl": "/dashboards/f/l3KqBxCMz/platform",
      "id": 41,
      "isStarred": false,
      "slug": "",
      "sortMeta": 0,
      "tags": [
        "production"
      ],
      "title": "Production Overview",
      "type": "dash-db",
      "uid": "cIBgcSjkk",
      "uri": "db/production-overview",
      "url": "/d/cIBgcSjkk/production-overview"
    }
  ],
  "limit": 50,
  "next_page": null,
  "page": 1
}

Update annotation

Change an existing annotation's text, tags or times. Only the fields you fill in change. Grafana answers this one with a confirmation rather than the annotation, so read it back with 'List annotations' if a later step needs its new contents.

Inputs

Annotation IDannotation_idnumberRequired
The numeric ID of the annotation, as returned by 'Create annotation' or 'List annotations'.
Texttexttext
New text for the annotation. Leave empty to keep the current text.
Tagstagslist
Tags to set, as a list. Replaces the existing tags rather than adding to them; leave empty to leave them alone.
Start timefrom_timedate and time
Move the annotation to this moment.
End timeto_timedate and time
Move the end of the annotated region here.

Outputs

changedlist
idnumber
messagetext
updatedtrue/false
Example output
{
  "changed": [
    "tags",
    "text"
  ],
  "id": 907,
  "message": "Annotation patched",
  "updated": true
}

Update dashboard

Change a dashboard's settings: rename it, replace its tags or description, change its time zone, auto-refresh interval or whether it can be edited in the UI, or move it to another folder. Only the fields you fill in change - the panels on the dashboard are read first and saved back untouched.

Inputs

Dashboarddashboard_uidtextRequired
The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.
Titletitletext
A new name for the dashboard. Leave empty to keep the current one.
Tagstagslist
Tags to set, as a list. Replaces the existing tags rather than adding to them; leave empty to leave them alone.
Descriptiondescriptiontext
A sentence about what the dashboard is for.
Time zonetimezone_nametext
The time zone the dashboard's times are shown in. Pick one, or type any IANA zone name such as Europe/London.One of: browser (The viewer's own time zone), utc.
Auto-refreshrefreshtext
How often the dashboard reloads by itself.One of: 5s (Every 5 seconds), 10s (Every 10 seconds), 30s (Every 30 seconds), 1m (Every minute), 5m (Every 5 minutes), 15m (Every 15 minutes), 30m (Every 30 minutes), 1h (Every hour), 1d (Every day).
Editableeditabletrue/false
Whether people can edit the dashboard in the Grafana UI. Off makes it read-only there; this API can still change it.
Move to folderfolder_uidtext
Move the dashboard into this folder. Leave empty to leave it where it is.
Change notemessagetext
A note recorded against this save, shown in the dashboard's version history.

Outputs

idnumber
slugtext
statustext
uidtext
urltext
versionnumber
Example output
{
  "id": 41,
  "slug": "production-overview",
  "status": "success",
  "uid": "cIBgcSjkk",
  "url": "/d/cIBgcSjkk/production-overview",
  "version": 4
}

On this page