Grafana
App · Monitoring · 20 actions
Manage Grafana dashboards, folders and annotations, and read alert state, alert rules and data sources.
Actions
| Action | What it does |
|---|---|
| Create annotation | Mark an event - a deploy, an incident, a maintenance window - on a Grafana time axis. |
| Create dashboard | Create a dashboard. |
| Create folder | Create a folder to file dashboards and alert rules in. |
| Delete annotation | Delete an annotation. |
| Delete dashboard | Delete a dashboard. |
| Delete folder | Delete a folder and every dashboard filed in it. |
| 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. |
| 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. |
| 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. |
| List annotation tags | Every tag used on an annotation in this organisation, with how many annotations carry it. |
| List annotations | The annotations marking events on Grafana's time axes, narrowed by dashboard, panel, tag, time range, or whether Grafana Alerting wrote them. |
| List contact points | The contact points Grafana Alerting delivers notifications to - email, Slack, webhooks - with each one's name, type and settings. |
| List dashboard versions | The saved versions of one dashboard, newest first, with who saved each one, when, and the change note they left. |
| 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. |
| 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. |
| List folders | The folders this connection can see, with each one's UID, title and URL. |
| Rename folder | Give a folder a new name. |
| Search dashboards | Find dashboards and folders by title, tag or folder. |
| Update annotation | Change an existing annotation's text, tags or times. |
| 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. |
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
- Text
texttextRequired - What to show on the annotation.
- Dashboard
dashboard_uidtext - Pin the annotation to this dashboard. Leave empty for an organisation-wide one.
- Panel ID
panel_idnumber - Pin it to one panel of that dashboard. Leave empty to put it on every panel.
- Tags
tagslist - Tags to attach. Panels can be set up to show every annotation carrying a tag.
- Start time
from_timedate and time - When the event happened. Leave empty and Grafana stamps it with the moment the step runs.
- End time
to_timedate and time - Set this as well as the start time to mark a region rather than a single moment.
Outputs
idnumbermessagetext
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
- Title
titletextRequired - The dashboard's name, shown in lists and search.
- Folder
folder_uidtext - Which folder to file the dashboard in. Leave empty for the instance's General folder.
- Dashboard UID
uidtext - A UID of your own, up to 40 letters, numbers, hyphens and underscores. Leave empty and Grafana generates one.
- Tags
tagslist - Tags to file the dashboard under.
- Description
descriptiontext - A sentence about what the dashboard is for.
- Time zone
timezone_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-refresh
refreshtext - 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). - Editable
editabletrue/false - Whether people can edit the dashboard in the Grafana UI. Off makes it read-only there; this API can still change it.
- Dashboard JSON
dashboard_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 note
messagetext - A note recorded against this save, shown in the dashboard's version history.
Outputs
idnumberslugtextstatustextuidtexturltextversionnumber
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
- Title
titletextRequired - The folder's name.
- Folder UID
uidtext - A UID of your own, up to 40 letters, numbers, hyphens and underscores. Leave empty and Grafana generates one.
- Inside folder
parent_uidtext - Nest the new folder inside this one. Leave empty to create it at the top level.
Outputs
canAdmintrue/falsecanDeletetrue/falsecanEdittrue/falsecanSavetrue/falsecreatedtextcreatedBytexthasAcltrue/falseidnumberorgIdnumberparentUidtexttitletextuidtextupdatedtextupdatedBytexturltextversionnumber
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 ID
annotation_idnumberRequired - The numeric ID of the annotation, as returned by 'Create annotation' or 'List annotations'.
Outputs
deletedtrue/falseidnumbermessagetextresourcetexttitletextuidtext
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
- Dashboard
dashboard_uidtextRequired - The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.
Outputs
deletedtrue/falseidnumbermessagetextresourcetexttitletextuidtext
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
- Folder
folder_uidtextRequired - The folder to act on. Pick one, or paste a folder UID or a folder URL.
- Delete alert rules too
force_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/falseidnumbermessagetextresourcetexttitletextuidtext
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
- Dashboard
dashboard_uidtextRequired - The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.
Outputs
dashboardobjectmetaobject
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
- Folder
folder_uidtextRequired - The folder to act on. Pick one, or paste a folder UID or a folder URL.
Outputs
canAdmintrue/falsecanDeletetrue/falsecanEdittrue/falsecanSavetrue/falsecreatedtextcreatedBytexthasAcltrue/falseidnumberorgIdnumberparentUidtexttitletextuidtextupdatedtextupdatedBytexturltextversionnumber
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 with
tagtext - Only tags beginning with this text. Leave empty for all of them.
- Limit
limitnumber - 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
- Dashboard
dashboard_uidtext - Only annotations on this dashboard. Leave empty for every dashboard, and for the organisation-wide ones.
- Panel ID
panel_idnumber - Only annotations on this panel of that dashboard.
- Tags
tagslist - Only annotations carrying all of these tags. Leave empty to ignore tags.
- Kind
type_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). - From
from_timedate and time - Only annotations at or after this moment.
- To
to_timedate and time - Only annotations at or before this moment.
- Limit
limitnumber - 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
- Name
nametext - 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
- Dashboard
dashboard_uidtextRequired - The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.
- Limit
limitnumber - How many versions to return. Defaults to 20.From 1 to 1000. Default:
20. - Skip
startnumber - 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 alerts
activetrue/false - Include the alerts that are currently firing. On by default.
- Include silenced alerts
silencedtrue/false - Include alerts a silence is holding back. On by default; turning it off leaves them out rather than showing only them.
- Include inhibited alerts
inhibitedtrue/false - Include alerts held back because a related alert is already firing. On by default.
- Label matchers
matcherslist - Only alerts whose labels match all of these, each written as severity="critical".
- Contact point
receivertext - 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 folder
parent_uidtext - List the folders nested inside this one. Leave empty for the top-level folders.
- Limit
limitnumber - How many to return per page, up to 1000. Defaults to 100.From 1 to 1000. Default:
100. - Page
pagenumber - 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
- Folder
folder_uidtextRequired - The folder to act on. Pick one, or paste a folder UID or a folder URL.
- New name
titletextRequired - The folder's new name.
Outputs
canAdmintrue/falsecanDeletetrue/falsecanEdittrue/falsecanSavetrue/falsecreatedtextcreatedBytexthasAcltrue/falseidnumberorgIdnumberparentUidtexttitletextuidtextupdatedtextupdatedBytexturltextversionnumber
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 contains
querytext - Only dashboards and folders whose title contains this text. Leave empty for all of them.
- Tags
tagslist - Only items carrying all of these tags. Leave empty to ignore tags.
- Kind
type_filtertext - Narrow to dashboards or to folders. Leave empty for both.One of:
dash-db(Dashboards only),dash-folder(Folders only). - Folders
folder_uidslist - Only items inside these folders. Leave empty to search everywhere.
- Starred only
starredtrue/false - Only the dashboards the service account has starred.
- Limit
limitnumber - How many to return per page, up to 5000. Defaults to 50.From 1 to 5000. Default:
50. - Page
pagenumber - 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 ID
annotation_idnumberRequired - The numeric ID of the annotation, as returned by 'Create annotation' or 'List annotations'.
- Text
texttext - New text for the annotation. Leave empty to keep the current text.
- Tags
tagslist - Tags to set, as a list. Replaces the existing tags rather than adding to them; leave empty to leave them alone.
- Start time
from_timedate and time - Move the annotation to this moment.
- End time
to_timedate and time - Move the end of the annotated region here.
Outputs
changedlistidnumbermessagetextupdatedtrue/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
- Dashboard
dashboard_uidtextRequired - The dashboard to act on. Paste its UID, or the dashboard's URL - the UID is the part after /d/.
- Title
titletext - A new name for the dashboard. Leave empty to keep the current one.
- Tags
tagslist - Tags to set, as a list. Replaces the existing tags rather than adding to them; leave empty to leave them alone.
- Description
descriptiontext - A sentence about what the dashboard is for.
- Time zone
timezone_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-refresh
refreshtext - 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). - Editable
editabletrue/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 folder
folder_uidtext - Move the dashboard into this folder. Leave empty to leave it where it is.
- Change note
messagetext - A note recorded against this save, shown in the dashboard's version history.
Outputs
idnumberslugtextstatustextuidtexturltextversionnumber
Example output
{
"id": 41,
"slug": "production-overview",
"status": "success",
"uid": "cIBgcSjkk",
"url": "/d/cIBgcSjkk/production-overview",
"version": 4
}