Create a new policy set
Changed onCreates a policy set. Supply manifest to create its first version and any new policies in the same transaction. A failure rolls back every write. Without manifest, creates a versionless set and preserves the existing response body.
Entries use manifest apply semantics with no predecessor: bare pins use each policy's latest version; supplied content reuses that version when its SHA and schema match. Omitted schema_version uses the zone default. This operation supports neither dry_run nor If-Match. Set manifest.activate: true to bind v1 to the zone's active slot in the same transaction. Requires target_type: zone (the default) and the activate permission on policy_set_bindings, in addition to the route's create permission. Omitted or false leaves the set unbound.
The ETag header is the set revision, as on GET. The manifest digest is policy_set_version.manifest_sha and the ETag of GET .../manifest.
Domain error codes: policy_set_name_conflict, policy_name_conflict, policy_not_found, policy_archived, policy_version_not_found, version_archived, schema_version_mismatch, manifest_duplicate_policy, missing_cedar_content, invalid_cedar, schema_version_unsupported, activate_requires_zone_target.
Request
- Base URLhttps://docs.keycard.ai (the document declares no server; this is the origin it was published from)
- URLhttps://docs.keycard.ai/zones/{zone_id}/policy-sets
- Auth
- HTTP bearer
- or OAuth 2Client credentialsToken URL: /service-account-token
Path parameters
The zone identifier
Headers
API version header (date-based, e.g. 2026-02-01)
Unique request identifier specified by the originating caller and passed along by proxies.
Request body
Response
The newly created policy set
Changes
- breaking
the response property
//became optional for the status - breaking
the response property
//became optional for the status - breaking
the response property
//became optional for the status - breaking
the response property
//became optional for the status - breaking
the response property
//became optional for the status - breaking
the response property
//became optional for the status - breaking
the response property
//became optional for the status - breaking
the response property
//became optional for the status - breaking
the
//response's property type changed fromstringto no type for status - breaking
the
//response's property type changed fromstringto no type for status - breaking
the
//response's property type changed fromstringto no type for status - breaking
the
//response's property type changed fromstringto no type for status - breaking
the
//response's property type changed fromstringto no type for status - breaking
the
//response's property type changed fromstringto no type for status - breaking
the
//response's property type changed fromstringto no type for status - breaking
the
//response's property type changed fromstringto no type for status - warning
added the new
not_implementedenum value to theresponse property for the response status - warning
added the new
not_implementedenum value to theresponse property for the response status - warning
added the new
not_implementedenum value to theresponse property for the response status - warning
added the new
not_implementedenum value to theresponse property for the response status - warning
added the new
not_implementedenum value to theresponse property for the response status - warning
added the new
not_implementedenum value to theresponse property for the response status - warning
added the new
not_implementedenum value to theresponse property for the response status - warning
added the new
not_implementedenum value to theresponse property for the response status - info
added the new optional request property
- info
added the non-success response with the status
- info
added the optional property
////to the response with the status - info
added the optional property
////to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added the optional property
/to the response with the status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
added
subschema #2to the//response propertyanyOflist for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
bad_requestenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
conflictenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
forbiddenenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
internal_errorenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
not_foundenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
rate_limit_exceededenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
service_unavailableenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
unauthorizedenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status - info
removed the
validation_errorenum value from the//response property for the response status
- breaking
- breaking
removed the enum value
resourceof the request property - breaking
removed the enum value
sessionof the request property - breaking
removed the enum value
userof the request property - info
added the new optional request property
- info
request property
deprecated - info
added the optional property
/to the response with the status - info
response property
allOf[pdp_PolicySet]/scope_typedeprecated - info
response property
allOf[subschema #2]/scope_target_iddeprecated - info
added the required property
////to the response with the status
- breaking