Get the manifest of a policy set version
Changed onReturns the resolved manifest of the latest non-archived version by default. Pass ?version= with a policy set version public ID to read a specific version's manifest (e.g. for rollback: GET an old manifest, PUT it back — which mints a new version at the tip with the old content; history is never re-pointed).
There is deliberately no ?version=active keyword: a binding slot is (zone, target_type, target_id, mode) and a set may have zero or several active bindings, so "the active version" is not a function of the set alone. Resolve the version ID first — from the enriched policy set representation (active_version_id) or GET /policy-bindings — then pass it here.
The default (latest) read anchors the apply flow: the ETag response header is the JCS SHA-256 digest of the latest manifest and is the value to send as If-Match on PUT. ETag is emitted only on the default latest read — versioned reads return manifest_sha in the body but no ETag, so a stale token cannot be round-tripped as a precondition.
A policy set with no versions yet returns 200 with empty entries, null policy_set_version_id/version/schema_version/manifest_sha, and the digest of the empty manifest as ETag, so even the first apply can be conditional.
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/{policy_set_id}/manifest
- Auth
- HTTP bearer
- or OAuth 2Client credentialsToken URL: /service-account-token
Path parameters
The zone identifier
The policy set identifier
Query parameters
Policy set version public ID. Default: latest non-archived version.
Headers
API version header (date-based, e.g. 2026-02-01)
Unique request identifier specified by the originating caller and passed along by proxies.
Response
The resolved manifest
Changes
- info
endpoint added
- info