openapi: 3.1.0 info: title: Perses Dashboards API description: 'Perses is an open-source monitoring and dashboarding tool (CNCF sandbox) that exposes a REST API for managing dashboards, datasources, and projects, among other resources. All resources live under the /api/v1 prefix; project-scoped resources are nested under /api/v1/projects/{projectName}. Only a representative subset of the Perses API surface (projects, dashboards, datasources, global datasources) is modeled here. See the Perses documentation linked under externalDocs for the full catalog including users, roles, secrets, variables, and plugins. ' version: 1.0.0 contact: name: Perses documentation url: https://perses.dev/perses/docs/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: http://{persesHost} description: Perses server. variables: persesHost: default: localhost:8080 description: Host and port of the Perses server. tags: - name: Dashboards description: Manage dashboards inside a project. paths: /api/v1/projects/{projectName}/dashboards: parameters: - in: path name: projectName required: true schema: type: string get: tags: - Dashboards summary: List dashboards in a project operationId: listDashboards parameters: - in: query name: name schema: type: string description: Optional name prefix filter. responses: '200': description: Array of dashboards. content: application/json: schema: type: array items: $ref: '#/components/schemas/Dashboard' post: tags: - Dashboards summary: Create a dashboard operationId: createDashboard requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Dashboard' responses: '200': description: Dashboard created. content: application/json: schema: $ref: '#/components/schemas/Dashboard' /api/v1/projects/{projectName}/dashboards/{dashboardName}: parameters: - in: path name: projectName required: true schema: type: string - in: path name: dashboardName required: true schema: type: string get: tags: - Dashboards summary: Get a dashboard operationId: getDashboard responses: '200': description: Dashboard. content: application/json: schema: $ref: '#/components/schemas/Dashboard' put: tags: - Dashboards summary: Update a dashboard operationId: updateDashboard requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Dashboard' responses: '200': description: Dashboard updated. content: application/json: schema: $ref: '#/components/schemas/Dashboard' delete: tags: - Dashboards summary: Delete a dashboard operationId: deleteDashboard responses: '204': description: Dashboard removed. components: schemas: Dashboard: type: object properties: kind: type: string enum: - Dashboard metadata: $ref: '#/components/schemas/Metadata' spec: type: object additionalProperties: true description: Dashboard specification including panels and layouts. Metadata: type: object properties: name: type: string project: type: string createdAt: type: string format: date-time updatedAt: type: string format: date-time version: type: integer externalDocs: description: Perses API reference url: https://perses.dev/perses/docs/api/