Documentation
Documentation
https://kyverno.github.io/policy-reporter/
GettingStarted
https://kyverno.github.io/policy-reporter/guide/getting-started/
openapi: 3.1.0
info:
title: Kyverno Policy Reporter ClusterPolicyReports Results 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: Results
description: Policy result query endpoints
paths:
/api/v1/namespace-scoped/results:
get:
operationId: listNamespaceScopedResults
summary: Kyverno List namespace-scoped policy results
description: Returns a paginated list of individual policy result entries from PolicyReport resources. Results can be filtered by namespace, policy, rule, status, severity, category, source, and resource kind or name.
tags:
- Results
parameters:
- $ref: '#/components/parameters/namespaceParam'
- $ref: '#/components/parameters/sourceParam'
- $ref: '#/components/parameters/policyParam'
- $ref: '#/components/parameters/ruleParam'
- $ref: '#/components/parameters/statusParam'
- $ref: '#/components/parameters/severityParam'
- $ref: '#/components/parameters/categoryParam'
- $ref: '#/components/parameters/kindParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/perPageParam'
responses:
'200':
description: Paginated policy results
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyResultList'
'400':
description: Invalid query parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/cluster-scoped/results:
get:
operationId: listClusterScopedResults
summary: Kyverno List cluster-scoped policy results
description: Returns a paginated list of individual policy result entries from ClusterPolicyReport resources. Results can be filtered by policy, rule, status, severity, category, source, and resource kind or name.
tags:
- Results
parameters:
- $ref: '#/components/parameters/sourceParam'
- $ref: '#/components/parameters/policyParam'
- $ref: '#/components/parameters/ruleParam'
- $ref: '#/components/parameters/statusParam'
- $ref: '#/components/parameters/severityParam'
- $ref: '#/components/parameters/categoryParam'
- $ref: '#/components/parameters/kindParam'
- $ref: '#/components/parameters/pageParam'
- $ref: '#/components/parameters/perPageParam'
responses:
'200':
description: Paginated cluster-scoped policy results
content:
application/json:
schema:
$ref: '#/components/schemas/PolicyResultList'
'400':
description: Invalid query parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/api/v1/namespace-scoped/summary:
get:
operationId: getNamespaceScopedSummary
summary: Kyverno Get namespace-scoped result summary
description: Returns aggregated result counts grouped by status for namespace-scoped policy reports. Supports the same filtering options as the results endpoint. Useful for dashboard and summary views.
tags:
- Results
parameters:
- $ref: '#/components/parameters/namespaceParam'
- $ref: '#/components/parameters/sourceParam'
- $ref: '#/components/parameters/categoryParam'
responses:
'200':
description: Result summary counts
content:
application/json:
schema:
$ref: '#/components/schemas/ResultSummary'
/api/v1/cluster-scoped/summary:
get:
operationId: getClusterScopedSummary
summary: Kyverno Get cluster-scoped result summary
description: Returns aggregated result counts grouped by status for cluster-scoped policy reports. Supports the same filtering options as the cluster results endpoint.
tags:
- Results
parameters:
- $ref: '#/components/parameters/sourceParam'
- $ref: '#/components/parameters/categoryParam'
responses:
'200':
description: Cluster result summary counts
content:
application/json:
schema:
$ref: '#/components/schemas/ResultSummary'
components:
parameters:
perPageParam:
name: perPage
in: query
description: Number of results per page
required: false
schema:
type: integer
minimum: 1
maximum: 250
default: 20
severityParam:
name: severity
in: query
description: Filter results by severity level
required: false
schema:
type: string
enum:
- info
- low
- medium
- high
- critical
ruleParam:
name: rule
in: query
description: Filter results by rule name
required: false
schema:
type: string
example: check-for-labels
policyParam:
name: policy
in: query
description: Filter results by policy name
required: false
schema:
type: string
example: require-labels
kindParam:
name: kind
in: query
description: Filter results by Kubernetes resource kind
required: false
schema:
type: string
example: Pod
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
statusParam:
name: status
in: query
description: Filter results by result status
required: false
schema:
type: string
enum:
- pass
- fail
- warn
- error
- skip
categoryParam:
name: category
in: query
description: Filter results by policy category
required: false
schema:
type: string
example: Pod Security Standards
pageParam:
name: page
in: query
description: Page number for paginated results (1-based)
required: false
schema:
type: integer
minimum: 1
default: 1
schemas:
PolicyResultList:
type: object
description: Paginated list of individual policy results
properties:
items:
type: array
description: List of individual policy result entries
items:
$ref: '#/components/schemas/PolicyResult'
count:
type: integer
description: Total number of results matching the query
example: 150
PolicyResult:
type: object
description: An individual policy evaluation result for a specific resource
properties:
id:
type: string
description: Unique identifier for the result
example: abc123
policy:
type: string
description: Name of the policy that generated the result
example: require-labels
rule:
type: string
description: Name of the policy rule that generated the result
example: check-for-labels
message:
type: string
description: Human-readable message describing the result
example: 'validation error: Label app is required.'
status:
type: string
description: Outcome of the policy evaluation
enum:
- pass
- fail
- warn
- error
- skip
example: fail
severity:
type: string
description: Severity level of the result
enum:
- info
- low
- medium
- high
- critical
example: medium
category:
type: string
description: Category of the policy rule
example: Best Practices
source:
type: string
description: Policy engine source
example: kyverno
namespace:
type: string
description: Kubernetes namespace of the affected resource
example: default
resource:
$ref: '#/components/schemas/ResourceReference'
timestamp:
type: string
format: date-time
description: Timestamp when the result was recorded
ResourceReference:
type: object
description: A reference to the Kubernetes resource evaluated by the policy
properties:
apiVersion:
type: string
description: API version of the resource
example: v1
kind:
type: string
description: Kind of the Kubernetes resource
example: Pod
name:
type: string
description: Name of the resource
example: my-pod
namespace:
type: string
description: Namespace of the resource (empty for cluster-scoped)
example: default
uid:
type: string
description: UID of the Kubernetes resource
example: 550e8400-e29b-41d4-a716-446655440000
ResultSummary:
type: object
description: Aggregated summary of policy results
properties:
items:
type: array
description: List of status and count pairs
items:
type: object
properties:
status:
type: string
enum:
- pass
- fail
- warn
- error
- skip
count:
type: integer
description: Number of results with this status
Error:
type: object
description: An error response
properties:
message:
type: string
description: Human-readable error message
example: Invalid query parameter value
required:
- message
externalDocs:
description: Policy Reporter API Reference
url: https://kyverno.github.io/policy-reporter/core/api-reference/