Skip to main content
Understanding how content moves through different states is key to building reliable integrations with Publive.

State diagram

Valid state transitions

FromToNotes
DraftApproval PendingSubmit for review
DraftPublishedDirect publish (if permissions allow)
DraftScheduledRequires scheduled_at datetime
Approval PendingPublishedApproved by checker
Approval PendingDraftRejected by checker
PublishedDraftUnpublish content
ScheduledDraftCancel scheduled publish
ScheduledPublishedAuto-triggered at scheduled_at time

Checking post status

Use the CMS API to check current status:
curl -X GET \
  'https://cms.thepublive.com/publisher/<PUBLISHER_ID>/post/<POST_ID>/' \
  -H 'Authorization: Basic <BASE64_AUTH_TOKEN>'
The response includes:
{
  "id": 50123,
  "title": "My Article",
  "status": "Published",
  "published_at": "2026-02-01T09:00:00Z",
  "created_at": "2026-01-28T14:00:00Z",
  "updated_at": "2026-02-01T09:00:00Z",
  "approver": {"id": 5, "name": "Editor"},
  "source": "HeadlessCMS"
}

Access control

The access_type field in meta_data controls content visibility:
ValueDescription
FreePublicly accessible to all readers
PaidBehind paywall, requires subscription
# Set content as paid/premium
curl -X PATCH \
  'https://cms.thepublive.com/publisher/<PUBLISHER_ID>/post/<POST_ID>/' \
  -H 'Authorization: Basic <BASE64_AUTH_TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{"meta_data": {"access_type": "Paid"}}'