Drafts and publishing

Publish a saved page draft

Makes one saved page draft live now. versionId is the versionId returned by PUT /projects/{projectId}/page-drafts/{pageId}. It uses the same promotion and cache fan-out as a Studio publish. Publishing is always explicit: content:write never implies it.

Preconditions

  • The version must be a draft of pageId in projectId, and it must still be the page's current draft head. Otherwise the response is 404 PAGE_NOT_FOUND.
  • The live page and project must still be at the revisions the draft was built on. If live moved, the response is 409 STALE_PAGE, nothing is published and the draft head stays in place. Re-read the draft, save it again and publish the new version.

Replacing a schedule. Set replaceScheduledVersionId to publish now in place of the page's scheduled version. The scheduled version is closed in the same transaction (a scheduled draft returns to ACTIVE, a scheduled history version becomes CANCELLED), so the page is never left with neither a schedule nor a publication. If that id is no longer the page's single scheduled version (it fired, was cancelled or was replaced), the response is 409 CONFLICT and nothing is published. A version cannot replace itself (400).

Response. The published version row (status: "PUBLISHED"), plus the new live pageUpdatedAt and, when the project revision advanced, projectUpdatedAt. If the content committed but cache invalidation failed, the response includes cacheDelivery: "degraded"; the content is live and edge delivery is retried automatically, so do not publish again.

Required scope: content:publish

post/publish-versions/{versionId}

Request

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

Request body

projectIdstring required
pageIdstring required
replaceScheduledVersionIdstring

A scheduled version this publication replaces

Response

Published receipt

object required

Changes

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