# Discard a Social Post

> Delete a draft or cancel a scheduled post

- **URL**: https://orshot.com/docs/api-reference/social-post-discard

---

## Overview

Permanently deletes a post that never reached a platform. That covers drafts, scheduled posts not yet fired, posts that failed outright, and posts still in flight that have not landed anywhere. Where the post is still cancellable on the platform queue, it is cancelled there too.

The one thing you cannot discard is a post that is already live on at least one account — including a `partial` post, where some accounts succeeded and others failed. Deleting those would destroy your only record of something public. Remove those on the platform itself.

Check `is_discardable` on the post rather than guessing from `status`: `is_editable` and `is_discardable` are different tests. A failed post can be discarded but not edited.

Discarding a post whose status is `processing` races the platform. Those posts have been handed over and may land moments after the record is gone. [Sync the post](https://orshot.com/docs/api-reference/social-post-get) first if you want to know where it actually stands.

```markdown tab="Endpoint"
https://api.orshot.com/v1/social/posts/{postId}
```

## Request

**Request**
```js
await fetch("https://api.orshot.com/v1/social/posts/512", {
  method: "DELETE",
  headers: {
    Authorization: "Bearer <ORSHOT_API_KEY>",
  },
});
```

**Response**
```json
{
  "data": {
    "success": true
  }
}
```

## Error Responses

### Already live (400)

```json
{
  "error": "This post has already been published to at least one account",
  "message": "Discarding it would delete the record of a live post. Delete it on the platform instead."
}
```

### Not found (404)

```json
{
  "error": "Post not found"
}
```

### Unauthorized (403)

```json
{
  "error": "Access Forbidden"
}
```

## Rate Limits

- 20 requests per minute per workspace, shared across all social endpoints