---
title: "Clear a scheduled publish"
method: POST
path: "/content/{id}/unschedule"
tags: ["Content"]
---

# Clear a scheduled publish

`POST /content/{id}/unschedule`

## Request

- Base URL: `https://next.frase.io/api/v1`
- URL: `https://next.frase.io/api/v1/content/{id}/unschedule`
- Auth: API key in header `X-API-KEY`

Clears an armed publish schedule without publishing. Idempotent: unscheduling an article with no schedule succeeds. A scheduled_via 'plan' row is a content-plan generation promise and is refused with code plan_scheduled rather than unplanned. If the schedule already fired, responds 409 already_published_remotely with the live URL.

## Path parameters

- `id` string, uuid, required

## Response `200`

Schedule cleared (or nothing was scheduled)

- object
  - `data` object
    - `unscheduled` boolean

## Other responses

- `400`: The site's CMS connection is missing or invalid (codes no_connection, invalid_connection); permanent until reconnected
- `404`: Content not found
- `409`: Refused as a truth conflict: the schedule already fired (code already_published_remotely, published_url carries the live URL) or the date is a content-plan promise (code plan_scheduled)
- `502`: The connected CMS refused the disarm and the schedule may still fire (code publish_failed)

---

[API](https://skmtc.dev/frase/apis/frase-api.md) · [All operations](https://skmtc.dev/frase/apis/frase-api/llms.txt) · [OpenAPI document](https://skmtc.dev/frase/apis/frase-api/revisions/7fb75d89f7a4?raw)
