---
title: "/posts/{post_id}"
method: DELETE
path: "/projects/{project_id}/posts/{post_id}"
tags: ["Posts"]
---

# /posts/{post_id}

`DELETE /projects/{project_id}/posts/{post_id}`

## Request

- Base URL: `https://api.productbyte.com/v1`
- URL: `https://api.productbyte.com/v1/projects/{project_id}/posts/{post_id}`
- Auth: HTTP bearer

Removes the post from ProductByte.

**Nothing is removed from the channel.** Deleting a published post forgets our record of it; the post itself stays up. Deleting a scheduled post cancels it before it publishes.

Requires the `posts:write` scope.

## Path parameters

- `project_id` string, required: The project the post belongs to.
- `post_id` string, required: The post to delete.

## Response `204`

The post was removed.

## Other responses

- `401`: Missing, unknown, revoked, or expired key (`API_KEY_UNAUTHORIZED`).
- `403`: The key lacks `posts:write`, or the project is outside its allowlist.
- `404`: No such post in this project (`API_POST_NOT_FOUND`).
- `409`: The post is in a state that cannot be deleted, such as mid-publish (`API_POST_NOT_DELETABLE`).
- `429`: Too many requests for this key (`API_RATE_LIMITED`). Back off and retry; `Retry-After` gives the window length.

---

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