StackRox PolicyService API
The PolicyService API from StackRox — 8 operation(s) for policyservice.
The PolicyService API from StackRox — 8 operation(s) for policyservice.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.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.curl "https://apis.io/api/v1/apis/stackrox-policyservice-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.2.0
info:
title: Reference Policy Service API
version: '1'
description: API reference for the StackRox Kubernetes Security Platform (upstream of Red Hat Advanced Cluster Security). Provides risk analysis, visibility, runtime alerts, policy management, compliance checking, and vulnerability management for containerized workloads. Authentication uses API tokens generated via /v1/apitokens/generate and passed as Bearer tokens.
contact:
email: support@stackrox.com
url: https://www.stackrox.io/
license:
name: All Rights Reserved
url: https://www.stackrox.com/
servers:
- url: https://{central-host}
description: StackRox Central API server
variables:
central-host:
default: stackrox.localhost
description: StackRox Central hostname or IP
security:
- ApiToken: []
tags:
- name: PolicyService
paths:
/v1/policies:
get:
summary: ListPolicies returns the list of policies
operationId: ListPolicies
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1ListPoliciesResponse'
parameters:
- name: query
in: query
required: false
schema:
type: string
- name: pagination.limit
in: query
required: false
schema:
type: integer
format: int32
- name: pagination.offset
in: query
required: false
schema:
type: integer
format: int32
- name: pagination.sort_option.field
in: query
required: false
schema:
type: string
- name: pagination.sort_option.reversed
in: query
required: false
schema:
type: boolean
format: boolean
tags:
- PolicyService
post:
summary: PostPolicy creates a new policy
operationId: PostPolicy
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/storagePolicy'
requestBody:
$ref: '#/components/requestBodies/storagePolicy'
tags:
- PolicyService
/v1/policies/dryrun:
post:
summary: DryRunPolicy evaluates the given policy and returns any alerts without creating…
operationId: DryRunPolicy
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1DryRunResponse'
requestBody:
$ref: '#/components/requestBodies/storagePolicy'
tags:
- PolicyService
/v1/policies/reassess:
post:
summary: ReassessPolicies reevaluates all the policies
operationId: ReassessPolicies
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1Empty'
tags:
- PolicyService
/v1/policies/{id}:
get:
summary: GetPolicy returns the requested policy by ID
operationId: GetPolicy
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/storagePolicy'
parameters:
- name: id
in: path
required: true
schema:
type: string
tags:
- PolicyService
delete:
summary: DeletePolicy removes a policy by ID
operationId: DeletePolicy
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1Empty'
parameters:
- name: id
in: path
required: true
schema:
type: string
tags:
- PolicyService
put:
summary: PutPolicy modifies an existing policy
operationId: PutPolicy
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1Empty'
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/storagePolicy'
tags:
- PolicyService
patch:
summary: PatchPolicy edits an existing policy
operationId: PatchPolicy
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1Empty'
parameters:
- name: id
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1PatchPolicyRequest'
required: true
tags:
- PolicyService
/v1/policies/{policyId}/notifiers:
patch:
summary: EnableDisablePolicyNotification enables or disables notifications for a policy…
operationId: EnableDisablePolicyNotification
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1Empty'
parameters:
- name: policyId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1EnableDisablePolicyNotificationRequest'
required: true
tags:
- PolicyService
/v1/policyCategories:
get:
summary: GetPolicyCategories returns the policy categories
operationId: GetPolicyCategories
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1PolicyCategoriesResponse'
tags:
- PolicyService
/v1/policyCategories/{category}:
delete:
summary: DeletePolicyCategory removes the given policy category
operationId: DeletePolicyCategory
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1Empty'
parameters:
- name: category
in: path
required: true
schema:
type: string
tags:
- PolicyService
/v1/policyCategories/{oldCategory}:
put:
summary: RenamePolicyCategory renames the given policy category
operationId: RenamePolicyCategory
responses:
'200':
description: A successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/v1Empty'
parameters:
- name: oldCategory
in: path
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/v1RenamePolicyCategoryRequest'
required: true
tags:
- PolicyService
components:
schemas:
storagePortExposurePolicy:
type: object
properties:
exposureLevels:
type: array
items:
$ref: '#/components/schemas/PortConfigExposureLevel'
storageEnforcementAction:
type: string
enum:
- UNSET_ENFORCEMENT
- SCALE_TO_ZERO_ENFORCEMENT
- UNSATISFIABLE_NODE_CONSTRAINT_ENFORCEMENT
- KILL_POD_ENFORCEMENT
- FAIL_BUILD_ENFORCEMENT
default: UNSET_ENFORCEMENT
storageWhitelistImage:
type: object
properties:
name:
type: string
storageComparator:
type: string
enum:
- LESS_THAN
- LESS_THAN_OR_EQUALS
- EQUALS
- GREATER_THAN_OR_EQUALS
- GREATER_THAN
default: LESS_THAN
storageImageNamePolicy:
type: object
properties:
registry:
type: string
remote:
type: string
tag:
type: string
storagePortPolicy:
type: object
properties:
port:
type: integer
format: int32
protocol:
type: string
v1PatchPolicyRequest:
type: object
properties:
id:
type: string
disabled:
type: boolean
format: boolean
storageComponent:
type: object
properties:
name:
type: string
version:
type: string
storageScopeLabel:
type: object
properties:
key:
type: string
value:
type: string
storagePermissionLevel:
type: string
enum:
- UNSET
- NONE
- DEFAULT
- ELEVATED_IN_NAMESPACE
- ELEVATED_CLUSTER_WIDE
- CLUSTER_ADMIN
default: UNSET
title: 'For any update to PermissionLevel, also update:
- central/searchbasedpolicies/builders/k8s_rbac.go
- ui/src/messages/common.js'
storageHostMountPolicy:
type: object
properties:
readOnly:
type: boolean
format: boolean
storagePolicy:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
rationale:
type: string
remediation:
type: string
disabled:
type: boolean
format: boolean
categories:
type: array
items:
type: string
fields:
$ref: '#/components/schemas/storagePolicyFields'
lifecycleStages:
type: array
items:
$ref: '#/components/schemas/storageLifecycleStage'
whitelists:
type: array
items:
$ref: '#/components/schemas/storageWhitelist'
scope:
type: array
items:
$ref: '#/components/schemas/storageScope'
severity:
$ref: '#/components/schemas/storageSeverity'
enforcementActions:
type: array
items:
$ref: '#/components/schemas/storageEnforcementAction'
notifiers:
type: array
items:
type: string
lastUpdated:
type: string
format: date-time
v1DryRunResponse:
type: object
properties:
alerts:
type: array
items:
$ref: '#/components/schemas/v1DryRunResponseAlert'
excluded:
type: array
items:
$ref: '#/components/schemas/DryRunResponseExcluded'
storageWhitelistDeployment:
type: object
properties:
name:
type: string
scope:
$ref: '#/components/schemas/storageScope'
storageResourcePolicy:
type: object
properties:
cpuResourceRequest:
$ref: '#/components/schemas/storageNumericalPolicy'
cpuResourceLimit:
$ref: '#/components/schemas/storageNumericalPolicy'
memoryResourceRequest:
$ref: '#/components/schemas/storageNumericalPolicy'
memoryResourceLimit:
$ref: '#/components/schemas/storageNumericalPolicy'
storagePolicyFields:
type: object
properties:
imageName:
$ref: '#/components/schemas/storageImageNamePolicy'
imageAgeDays:
type: string
format: int64
lineRule:
$ref: '#/components/schemas/storageDockerfileLineRuleField'
cvss:
$ref: '#/components/schemas/storageNumericalPolicy'
cve:
type: string
component:
$ref: '#/components/schemas/storageComponent'
scanAgeDays:
type: string
format: int64
noScanExists:
type: boolean
format: boolean
env:
$ref: '#/components/schemas/storageKeyValuePolicy'
command:
type: string
args:
type: string
directory:
type: string
user:
type: string
volumePolicy:
$ref: '#/components/schemas/storageVolumePolicy'
portPolicy:
$ref: '#/components/schemas/storagePortPolicy'
requiredLabel:
$ref: '#/components/schemas/storageKeyValuePolicy'
requiredAnnotation:
$ref: '#/components/schemas/storageKeyValuePolicy'
disallowedAnnotation:
$ref: '#/components/schemas/storageKeyValuePolicy'
privileged:
type: boolean
format: boolean
dropCapabilities:
type: array
items:
type: string
addCapabilities:
type: array
items:
type: string
containerResourcePolicy:
$ref: '#/components/schemas/storageResourcePolicy'
processPolicy:
$ref: '#/components/schemas/storageProcessPolicy'
readOnlyRootFs:
type: boolean
format: boolean
fixedBy:
type: string
portExposurePolicy:
$ref: '#/components/schemas/storagePortExposurePolicy'
permissionPolicy:
$ref: '#/components/schemas/storagePermissionPolicy'
hostMountPolicy:
$ref: '#/components/schemas/storageHostMountPolicy'
whitelistEnabled:
type: boolean
format: boolean
title: 'Next Available Tag: 29'
v1PolicyCategoriesResponse:
type: object
properties:
categories:
type: array
items:
type: string
storageScope:
type: object
properties:
cluster:
type: string
namespace:
type: string
label:
$ref: '#/components/schemas/storageScopeLabel'
storageKeyValuePolicy:
type: object
properties:
key:
type: string
value:
type: string
envVarSource:
$ref: '#/components/schemas/EnvironmentConfigEnvVarSource'
DryRunResponseExcluded:
type: object
properties:
deployment:
type: string
whitelist:
$ref: '#/components/schemas/storageWhitelist'
v1Empty:
type: object
storageLifecycleStage:
type: string
enum:
- DEPLOY
- BUILD
- RUNTIME
default: DEPLOY
storageWhitelist:
type: object
properties:
name:
type: string
deployment:
$ref: '#/components/schemas/storageWhitelistDeployment'
image:
$ref: '#/components/schemas/storageWhitelistImage'
expiration:
type: string
format: date-time
storageNumericalPolicy:
type: object
properties:
op:
$ref: '#/components/schemas/storageComparator'
value:
type: number
format: float
storageSeverity:
type: string
enum:
- UNSET_SEVERITY
- LOW_SEVERITY
- MEDIUM_SEVERITY
- HIGH_SEVERITY
- CRITICAL_SEVERITY
default: UNSET_SEVERITY
storageVolumePolicy:
type: object
properties:
name:
type: string
source:
type: string
destination:
type: string
readOnly:
type: boolean
format: boolean
type:
type: string
storageListPolicy:
type: object
properties:
id:
type: string
name:
type: string
description:
type: string
severity:
$ref: '#/components/schemas/storageSeverity'
disabled:
type: boolean
format: boolean
lifecycleStages:
type: array
items:
$ref: '#/components/schemas/storageLifecycleStage'
notifiers:
type: array
items:
type: string
lastUpdated:
type: string
format: date-time
v1DryRunResponseAlert:
type: object
properties:
deployment:
type: string
violations:
type: array
items:
type: string
PortConfigExposureLevel:
type: string
enum:
- UNSET
- EXTERNAL
- NODE
- INTERNAL
- HOST
default: UNSET
EnvironmentConfigEnvVarSource:
type: string
enum:
- UNSET
- RAW
- SECRET_KEY
- CONFIG_MAP_KEY
- FIELD
- RESOURCE_FIELD
- UNKNOWN
default: UNSET
title: For any update to EnvVarSource, please also update 'ui/src/messages/common.js'
v1ListPoliciesResponse:
type: object
properties:
policies:
type: array
items:
$ref: '#/components/schemas/storageListPolicy'
storageDockerfileLineRuleField:
type: object
properties:
instruction:
type: string
value:
type: string
v1RenamePolicyCategoryRequest:
type: object
properties:
oldCategory:
type: string
newCategory:
type: string
v1EnableDisablePolicyNotificationRequest:
type: object
properties:
policyId:
type: string
notifierIds:
type: array
items:
type: string
disable:
type: boolean
format: boolean
storagePermissionPolicy:
type: object
properties:
permissionLevel:
$ref: '#/components/schemas/storagePermissionLevel'
description: K8S RBAC Permission level configuration.
storageProcessPolicy:
type: object
properties:
name:
type: string
args:
type: string
ancestor:
type: string
uid:
type: string
requestBodies:
storagePolicy:
content:
application/json:
schema:
$ref: '#/components/schemas/storagePolicy'
required: true
securitySchemes:
ApiToken:
type: apiKey
in: header
name: Authorization
description: 'StackRox API token. Format: Bearer {token}'