Drafts and publishing

Get a page's editable content and revision tokens

Returns the content you should edit for one page, plus the revision tokens that a later save must send back unchanged. This is step 1 of draft-first editing.

Workflow. Drafts and publishing work together like this:

  1. GET /projects/{projectId}/page-drafts/{pageId} reads the editable content and its revision tokens.
  2. PUT on the same path saves a new draft head (versionId). Live content is not touched.
  3. Publish the draft with POST /publish-versions/{versionId}, or schedule it with POST /versions/{versionId}/schedule.
  4. Manage history and the schedule with GET /projects/{projectId}/versions, /versions/{versionId} (read, reschedule, replace content, cancel), publish-now and restore.

What is returned

  • When the page has a draft head: the draft's items, with headVersionId set to that draft. pageUpdatedAt and projectUpdatedAt are the live revisions the draft was built on, not the current live revisions. If live content has changed since the draft was saved, a save from this read is refused with 409 STALE_PAGE, so a draft can never quietly publish over a newer live edit.
  • When there is no draft: the live items, with headVersionId: null and the current live pageUpdatedAt / projectUpdatedAt.
  • Items are a flat list. Each item has id, type, data and children (child id references). rootId names the root item.
  • pageUpdatedAt or projectUpdatedAt is null for a legacy row whose revision was never set. Send that null back as is. A read never repairs it.

Addressing. The page is addressed by pageId only. There is no locale or handle fallback, so a draft can never be read from or saved onto another assignment. A page that is not a live page of this project, or a draft head whose snapshot cannot be read, returns 404.

Required scope: content:read

get/projects/{projectId}/page-drafts/{pageId}

Request

  • Base URL
    https://studio.weaverse.io/api/v1/content
  • Auth
    HTTP bearer

Response

Draft basis (draft snapshot or live items)

object required

Changes

No recorded changes to this operation across all 1 revision of this API.