> ## Documentation Index
> Fetch the complete documentation index at: https://docs.thepublive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Approval Flows

> Multi-step content approval workflows

Publive supports configurable approval workflows for content publishing. This guide covers how to implement approval flows using the CMS API.

## Content statuses

| Status             | Description                             |
| ------------------ | --------------------------------------- |
| `Draft`            | Work in progress, not visible to public |
| `Approval Pending` | Submitted for review                    |
| `Published`        | Live and publicly accessible            |
| `Scheduled`        | Will be published at a future date/time |

## Basic approval flow

### 1. Author creates draft

The content creator writes the article and saves as draft.

### 2. Author submits for review

Update the post status to `Approval Pending`:

```bash theme={null}
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 '{"status": "Approval Pending"}'
```

### 3. Editor reviews and approves

The editor can either publish or reject:

```bash theme={null}
# Approve and publish
curl -X PATCH ... -d '{"status": "Published"}'

# Reject back to draft
curl -X PATCH ... -d '{"status": "Draft"}'
```

### 4. Schedule for later (optional)

Instead of immediate publishing, schedule for a future time:

```bash theme={null}
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 '{
    "status": "Scheduled",
    "scheduled_at": "2026-03-01T09:00:00Z"
  }'
```

<Info>
  The `published_post` field in the post response references the live version, while edits can be made to the draft version independently.
</Info>
