---
title: "Bulk delete selected stories"
method: POST
path: "/v1/stories/bulk-delete"
tags: ["Stories"]
---

# Bulk delete selected stories

`POST /v1/stories/bulk-delete`

## Request

- Base URL: `https://www.postquick.ai/api`
- URL: `https://www.postquick.ai/api/v1/stories/bulk-delete`
- Auth: HTTP bearer

Deletes only explicitly listed owned database records and their future schedules, across content groups. Hosted/external media is retained; storage is not reclaimed. Posts already published to social platforms are not deleted. Save platform IDs first if needed. The strict JSON body accepts only ids: 1–50 UUIDs, unique ignoring case; invalid JSON, unknown keys, and invalid IDs reject the entire request with 400 before content mutation. UUIDs are normalized to lowercase. HTTP 200 and success=true mean the batch was processed, not that every deletion succeeded. Results preserve input order. Missing/unowned records return indistinguishable 404 items; processing, pending video generation, unknown states, and concurrent changes return 409 items. Lookup or deletion failures return safe 500 items: deletion may be uncertain, so refresh before retrying. Processing is bounded to five concurrent records; no all-or-nothing transaction, filter deletion, or automatic retry.

## Request body

- object
  - `ids` string[], required: 1–50 UUIDs, unique ignoring case. Results use lowercase UUIDs in input order.

## Response `200`

Batch processed; inspect every result. Some or all items may have failed.

- object
  - `success` true, required
  - `data` object, required
    - `results` union[], required
      - union
        - object
          - `id` string, uuid, required
          - `deleted` true, required
          - `status` 200, required
          - `mediaRetained` true, required
          - `platformPostsDeleted` false, required
        - object
          - `id` string, uuid, required
          - `deleted` false, required
          - `status` union, required
            - 404
            - 409
            - 500
          - `error` object, required
            - `code` 'NOT_FOUND' | 'CONFLICT' | 'INTERNAL_ERROR', required
            - `message` string, required
    - `summary` object, required
      - `requested` integer, required
      - `deleted` integer, required
      - `failed` integer, required

## Other responses

- `400`: Invalid JSON/body. No content records mutated. Uses the existing INTERNAL_ERROR envelope code.
- `401`: Authentication failed.
- `403`: Subscription or API access denied.
- `429`: Request rate exceeded.

---

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