Fundamentals
Review and publishing
Save drafts with expected revisions, propose coordinated changes, and publish through human review.
PeopleTide Content · HTTP integration guides
A draft is not a release.
PUT /api/v1/sites/{site}/content/{id} accepts expectedRevision and document. Use 0 for a new document with a client-generated UUID; for an update use the current revision. A revision conflict means you must read and reconcile the latest document.
Propose the documents that belong together.
POST /api/v1/sites/{site}/changesets with a title and changes. Each change supplies id, expectedRevision, and either document or unpublish: true. Validate the changeset before human review.
{
"title": "Update the welcome article",
"changes": [{
"id": "CONTENT_UUID", "expectedRevision": 1,
"document": { "type": "article", "slug": "welcome", "title": "A new welcome", "fields": { "body": "Reviewed copy." } }
}]
}A human publisher makes the decision.
Publishers inspect differences and approve or reject. Optional scheduledAt is an ISO timestamp with an offset. Approval freezes source and dependency revisions; a later conflict requires a fresh proposal. Agents cannot approve.
Wait for the release to become active.
Approval queues publication. The publisher resolves dependencies and activates a complete release. Confirm the release in the workspace and public current.json; an accepted approval response is not proof of activation.
Rollback changes the active release.
A publisher can request rollback to an earlier release. It does not undo draft history, delete public immutable URLs, or restore infrastructure. Check current.json again after the operation becomes active.