Grafana · Arazzo Workflow

Grafana Publish a Reusable Library Panel

Version 1.0.0

Create a library panel, read it back by UID, and list the dashboards connected to it.

1 workflow 3 source APIs 1 provider
View Spec View on GitHub AlertingAnalyticsDashboardsLogsMetricsMonitoringObservabilityTracesVisualizationArazzoWorkflows

Provider

grafana

Workflows

publish-library-panel
Create a reusable library panel and inspect what it is connected to.
Creates the library element in a folder, reads it back by UID, and lists the dashboards currently using it.
3 steps inputs: folderUid, kind, model, name, uid outputs: connections, elementName, elementUid, storedVersion
1
createLibraryElement
Create the library panel. Dashboards will later reference it by UID rather than embedding a copy of the model, which is the whole point.
2
readBackElement
Read the element back by UID to confirm the stored model and version, which is the version number any later update must supply.
3
listConnections
List the dashboards connected to this library panel. On a new element this is empty; run the same step against an existing element before changing it to see exactly which dashboards the edit will reach.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Grafana Publish a Reusable Library Panel
  summary: Create a library panel, read it back by UID, and list the dashboards connected to it.
  description: >-
    A library panel is defined once and reused across dashboards, so an edit
    propagates everywhere instead of leaving thirty copies of a panel that used
    to agree with each other. This workflow creates the library element, reads it
    back to capture its assigned UID and version, and lists its connections so
    the blast radius of any future change is known before it is made. Every step
    spells out its request inline so the flow can be read and executed without
    opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: connectionsApi
  url: ../openapi/grafana-connections-api-openapi.yml
  type: openapi
- name: createApi
  url: ../openapi/grafana-create-api-openapi.yml
  type: openapi
- name: elementApi
  url: ../openapi/grafana-element-api-openapi.yml
  type: openapi
workflows:
- workflowId: publish-library-panel
  summary: Create a reusable library panel and inspect what it is connected to.
  description: >-
    Creates the library element in a folder, reads it back by UID, and lists the
    dashboards currently using it.
  inputs:
    type: object
    required:
    - name
    - model
    properties:
      name:
        type: string
        description: Name of the library panel (e.g. "Service SLO burn rate").
      model:
        type: object
        description: >-
          The panel model as JSON, the same shape as a panel inside a dashboard's
          panels array.
      kind:
        type: integer
        description: >-
          Kind of library element; 1 for a library panel. Grafana models this as
          a numeric kind rather than a string.
        default: 1
      folderUid:
        type: string
        description: >-
          UID of the folder the element belongs to. Use an empty string for the
          General folder.
      uid:
        type: string
        description: >-
          Optional stable UID to assign, which keeps the panel addressable across
          instances.
  steps:
  - stepId: createLibraryElement
    description: >-
      Create the library panel. Dashboards will later reference it by UID rather
      than embedding a copy of the model, which is the whole point.
    operationId: createLibraryElement
    requestBody:
      contentType: application/json
      payload:
        name: $inputs.name
        kind: $inputs.kind
        model: $inputs.model
        folderUid: $inputs.folderUid
        uid: $inputs.uid
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      elementUid: $response.body#/result/uid
      elementId: $response.body#/result/id
      elementName: $response.body#/result/name
      version: $response.body#/result/version
  - stepId: readBackElement
    description: >-
      Read the element back by UID to confirm the stored model and version, which
      is the version number any later update must supply.
    operationId: getLibraryElementByUID
    parameters:
    - name: library_element_uid
      in: path
      value: $steps.createLibraryElement.outputs.elementUid
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      storedModel: $response.body#/result/model
      storedVersion: $response.body#/result/version
      folderUid: $response.body#/result/folderUid
      meta: $response.body#/result/meta
  - stepId: listConnections
    description: >-
      List the dashboards connected to this library panel. On a new element this
      is empty; run the same step against an existing element before changing it
      to see exactly which dashboards the edit will reach.
    operationId: getLibraryElementConnections
    parameters:
    - name: library_element_uid
      in: path
      value: $steps.createLibraryElement.outputs.elementUid
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      connections: $response.body#/result
  outputs:
    elementUid: $steps.createLibraryElement.outputs.elementUid
    elementName: $steps.createLibraryElement.outputs.elementName
    storedVersion: $steps.readBackElement.outputs.storedVersion
    connections: $steps.listConnections.outputs.connections

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/grafana-library-panel-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.