---
title: "Cancel a scheduled post, discard a draft, or retract a live one"
method: DELETE
path: "/v1/posts/{id}"
tags: ["Posts"]
---

# Cancel a scheduled post, discard a draft, or retract a live one

`DELETE /v1/posts/{id}`

## Request

- Base URL: `https://api.postlake.dev`
- URL: `https://api.postlake.dev/v1/posts/{id}`
- Auth: `bearerAuth` (a scheme the document does not define)

Cancel a future schedule, discard a personal draft, clear a failed record, or request removal of published targets where supported. Approval requests must be rejected separately. Queued/processing publication returns 409. GET /v1/posts/{id}/deletion previews the consequences; send its snapshot to reject intervening changes. Unsupported destinations stay online and keep the record visible. Accepted removals are retained on remaining targets and not repeated on retry. Uploads are kept; spent publishing credits are not refunded. Instagram and TikTok require removal in their apps.

## Path parameters

- `id` string, required

## Request body

- object
  - `snapshot` string: Full-post snapshot returned by the deletion preview.

## Response `200`

Success

- object
  - `id` string, required
  - `cancelled` boolean
  - `deleted` boolean
  - `targets` object[]
    - `account` string
    - `platform` string
    - `deleted` boolean
    - `verified` boolean
    - `reason` string
    - `url` string

## Other responses

- `207`: Retracted from some networks but not all. Part of the post is still public.
- `400`: Approval request must be rejected instead
- `401`: Unauthorized
- `404`: Post not found
- `409`: Snapshot changed or publication is still pending

---

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