The CMS Compliance API lets apps request a compliance review of CMS content actions at the site or account level. Supported actions include publishing a new draft, publishing a changed or unchanged item, and unpublishing an item with or without pending edits.
For each successful request, the service fetches the required CMS data item versions,
returns a ComplianceReviewRequest, and emits the same object in one ReviewRequested
domain event. Authorized consumers can subscribe to the event as a webhook and process
the request in their own review, approval, or rejection workflow.
The service is independent of the calling UI and doesn't track or apply the review outcome.
Call RequestReview with the action, data item ID, and collection ID. For
UNPUBLISH_CHANGED, you can also specify which version should remain as the saved draft.
The action determines which CMS data item versions the service reads and returns:
PUBLISH_DRAFT: the proposed draft only, because nothing is live yet.PUBLISH_CHANGED: the current published version and proposed draft.PUBLISH_PUBLISHED: the same published item as both the current and proposed version.UNPUBLISH_PUBLISHED: the current published version only.UNPUBLISH_CHANGED: the current published version and proposed draft, plus the optional version the user wants to preserve as a draft.The currentDataItem is the version that's currently published. The proposedDataItem
is the version submitted for review. Comparing them shows whether the request introduces
a content change.
It's important to note the following points before starting to code:
versionOnUnpublish is used only for UNPUBLISH_CHANGED. It can be omitted, and is ignored for every other action.PUBLISH_PUBLISHED, the same as the current version.UNPUBLISH_CHANGED, whether to preserve the latest draft edits or the live published version as the saved draft.Last updated: 25 July 2026