---
title: "Delete many topic clusters"
method: POST
path: "/v3/topic-clusters/topics/bulk-delete"
tags: ["Topic Clusters"]
---

# Delete many topic clusters

`POST /v3/topic-clusters/topics/bulk-delete`

## Request

- Base URL: `https://api.snowseo.com`
- URL: `https://api.snowseo.com/v3/topic-clusters/topics/bulk-delete`
- Auth: one of:
  - HTTP bearer
  - API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/snowseo/apis/snowseo-api/docs/v3/topic-clusters/topics/bulk-delete/post.ts> (a function with typed inputs; its response is checked against the schema)

DESTRUCTIVE beyond the clusters themselves: every PLANNED content item in a deleted cluster is deleted with it and cannot be recovered. Keyword and prompt links are removed, though the keywords and prompts stay in the team's lists. Published and generated articles are kept but lose their cluster. Tell the user how many planned items will be lost and get explicit confirmation first. Processes up to 50 rows per call: repeat with afterId set to the returned nextCursor until it is null.

## Request body

- object
  - `teamId` string
  - `selection` union, required
    - object
      - `mode` 'ids', required
      - `ids` string[], required
    - object
      - `mode` 'all', required
      - `filters` object, required
        - `search` string
      - `excludedIds` string[], required
  - `afterId` string: The nextCursor from the previous call; omit on the first call.

## Response `200`

Default Response

- object
  - `success` boolean
  - `succeeded` number
  - `failed` number
  - `nextCursor` string, nullable
  - `eligibility` object
    - `selected` number, required
    - `eligible` number, required
    - `skipped` number, required
    - `byReason` object, required
  - `results` object[]
    - `id` string
    - `success` boolean
    - `error` string

## Other responses

- `500`: Default Response

## Changes

- **2026-11-03** `31b321592ad7`: 4 info
  - added the optional property `code` to the response with the `500` status
  - added the optional property `message` to the response with the `500` status
  - added the optional property `reference` to the response with the `500` status
  - added the optional property `success` to the response with the `500` status
- **2026-11-01** `6d1dc4928d97`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/snowseo/apis/snowseo-api/changes/v3/topic-clusters/topics/bulk-delete/post.md)

---

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