---
title: "Pause or resume publishing"
method: POST
path: "/api/v1/publishing-pause"
tags: ["Publishing Pause"]
---

# Pause or resume publishing

`POST /api/v1/publishing-pause`

## Request

- Base URL: `https://www.poster.ly`
- URL: `https://www.poster.ly/api/v1/publishing-pause`
- Auth: HTTP bearer

Pause or resume publishing for the whole workspace, or one brand with brand_id. Requires posts:write. pause needs publisher or higher; a seat limited to some brands can pause only those brands (403 brand_scoped_seat). Without confirm: true a pause changes nothing and answers 400 confirmation_required with a preview (scope, already_paused, scheduled_posts_to_hold); show it to the person and repeat with confirm: true once they agree. resume needs admin or higher and no confirm. It returns resumed_count, the missed_post_ids whose time passed while paused (they stay paused and never publish on their own; see /api/v1/publishing-pause/publish-missed), still_held_count, disconnected_count and failed_post_ids. Every pause and resume is logged like a dashboard click.

## Request body

- object
  - `action` 'pause' | 'resume', required
  - `brand_id` string: A brand ID from /api/v1/brands. Leave it out (do not send it empty or null) for the whole workspace; an empty brand_id answers 400 empty_brand_id.
  - `confirm` boolean: pause: true only after the person agreed to the preview. resume: not needed.
  - `workspace_id` string: Workspace ID from whoami.

## Response `200`

Publishing paused or resumed

- object
  - `ok` boolean
  - `action` 'pause' | 'resume'
  - `scope` 'workspace' | 'brand'
  - `workspace_id` string
  - `brand_id` string, nullable
  - `held_count` integer: pause: scheduled posts now held.
  - `resumed_count` integer: resume: posts back on the schedule.
  - `missed_count` integer
  - `missed_post_ids` integer[]: resume: posts whose time passed while paused. They stay paused.
  - `still_held_count` integer: resume: posts still held by the other switch.
  - `disconnected_count` integer
  - `failed_post_ids` integer[]
  - `message` string

## Other responses

- `400`: Validation error
- `401`: Invalid or missing API key
- `403`: Request is authenticated but not allowed
- `404`: Resource not found
- `429`: Too many requests

---

[API](https://skmtc.dev/poster/apis/posterly-api.md) · [All operations](https://skmtc.dev/poster/apis/posterly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/poster/apis/posterly-api/revisions/60be02a61f95?raw)
