openapi: 3.1.0 info: title: Kyverno Policy Reporter ClusterPolicyReports Policies API description: The Kyverno Policy Reporter REST API provides endpoints for querying PolicyReport and ClusterPolicyReport custom resources generated by Kyverno. It exposes policy results, status counts, and resource-level violation data, serving as the backend for the Policy Reporter UI. The API enables programmatic access to policy compliance status across namespaces and clusters. version: 2.0.0 contact: name: Kyverno Community url: https://kyverno.io/community/ termsOfService: https://kyverno.io/ servers: - url: http://localhost:8080 description: Default Policy Reporter server tags: - name: Policies description: Policy listing and detail endpoints paths: /api/v1/targets: get: operationId: listTargets summary: Kyverno List notification targets description: Returns a list of configured notification targets such as Slack, Teams, Loki, Elasticsearch, and others. Each target entry includes its name, minimum priority filter, and enabled sources. tags: - Policies responses: '200': description: List of notification targets content: application/json: schema: type: array items: $ref: '#/components/schemas/Target' /api/v1/policies: get: operationId: listPolicies summary: Kyverno List policies description: Returns a list of policies with result counts grouped by status. Supports filtering by namespace, source, and category. Each entry includes counts of pass, fail, warn, error, and skip results. tags: - Policies parameters: - $ref: '#/components/parameters/namespaceParam' - $ref: '#/components/parameters/sourceParam' - $ref: '#/components/parameters/categoryParam' responses: '200': description: List of policies with result counts content: application/json: schema: type: array items: $ref: '#/components/schemas/PolicySummary' /api/v1/rules: get: operationId: listRules summary: Kyverno List policy rules description: Returns a list of policy rule names that have results across all namespaces. Can be filtered by namespace and source to narrow the results. tags: - Policies parameters: - $ref: '#/components/parameters/namespaceParam' - $ref: '#/components/parameters/sourceParam' responses: '200': description: List of policy rule names content: application/json: schema: type: array items: type: string example: require-labels /api/v1/categories: get: operationId: listCategories summary: Kyverno List policy categories description: Returns a list of policy category names used to group related policies. Categories are defined in policy metadata and may include values such as Pod Security Standards or Best Practices. tags: - Policies parameters: - $ref: '#/components/parameters/sourceParam' responses: '200': description: List of category names content: application/json: schema: type: array items: type: string example: Pod Security Standards components: parameters: sourceParam: name: source in: query description: Filter results by policy source (e.g., kyverno, trivy) required: false schema: type: string example: kyverno namespaceParam: name: namespace in: query description: Filter results by Kubernetes namespace required: false schema: type: string example: default categoryParam: name: category in: query description: Filter results by policy category required: false schema: type: string example: Pod Security Standards schemas: ResultCounts: type: object description: Aggregated counts of policy results grouped by status properties: pass: type: integer description: Number of passing results example: 45 fail: type: integer description: Number of failing results example: 3 warn: type: integer description: Number of warning results example: 1 error: type: integer description: Number of error results example: 0 skip: type: integer description: Number of skipped results example: 2 PolicySummary: type: object description: A policy with aggregated result counts properties: policy: type: string description: Name of the policy example: require-labels namespace: type: string description: Namespace of the policy (empty for cluster-scoped) example: default source: type: string description: Policy engine that created the policy example: kyverno category: type: string description: Category the policy belongs to example: Best Practices severity: type: string description: Severity level of the policy enum: - info - low - medium - high - critical results: $ref: '#/components/schemas/ResultCounts' Target: type: object description: A notification target configured to receive policy results properties: name: type: string description: Name of the notification target example: slack minimumPriority: type: string description: Minimum result severity that triggers a notification enum: - info - low - medium - high - critical example: medium sources: type: array description: List of policy sources this target receives notifications from items: type: string example: - kyverno skipExistingOnStartup: type: boolean description: Whether to skip existing results when the server starts example: true externalDocs: description: Policy Reporter API Reference url: https://kyverno.github.io/policy-reporter/core/api-reference/