> ## Documentation Index
> Fetch the complete documentation index at: https://snowseo.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk topic cluster actions

> Preview, track, untrack, or delete many topic clusters at once.

Every bulk action takes a `selection` and works through it in batches:

* `selection` is either `{ mode: "ids", ids: [topicId, ...] }` or `{ mode: "all", filters: { search? }, excludedIds: [...] }` (every cluster matching the search, minus the excluded ids).
* Call `POST /v3/topic-clusters/topics/bulk-preview` with the `selection` and an `action` first. It changes nothing and returns `eligibility`: `{ selected, eligible, skipped, byReason }`, e.g. clusters skipped because they are empty or already tracked.
* `POST /v3/topic-clusters/topics/selection` returns the clusters a selection matches.

| Action | Endpoint | Rows per call | Notes |
| - | - | - | - |
| Track | `POST /v3/topic-clusters/topics/bulk-track` | 10 | Tracks every keyword and prompt in each cluster; uses keyword-tracking and AI credits. A cluster that runs out fails on its own. |
| Untrack | `POST /v3/topic-clusters/topics/bulk-untrack` | 10 | History is kept. |
| Delete | `POST /v3/topic-clusters/topics/bulk-delete` | 50 | Permanent. Planned content items in a deleted cluster are deleted with it. |

Each call processes one batch of eligible clusters and returns `{ success, succeeded, failed, nextCursor, eligibility, results }`. While `nextCursor` is not `null`, call again with the same `selection` and `afterId` set to `nextCursor`. `results` has one entry per cluster with `id`, `name`, `success` and `error` when it failed. Track and untrack results also carry `trackedKeywordsCreated`, `trackedKeywordsUpdated` and `promptsSkipped` (prompts left untracked for lack of credits).

For a single cluster, use [Delete](https://snowseo.com/docs/api-reference/endpoints/topics.md) or the cluster's tracking endpoint.


## OpenAPI

````yaml POST /v3/topic-clusters/topics/bulk-preview
openapi: 3.0.0
info:
  title: SnowSEO API
  description: API documentation for SnowSEO
  version: 1.0.0
servers:
  - url: https://api.snowseo.com
    description: Production server
security:
  - bearerAuth: []
  - apiKey: []
externalDocs:
  url: https://snowseo.com/docs
  description: Find more info here
paths:
  /v3/topic-clusters/topics/bulk-preview:
    post:
      tags:
        - Topic Clusters
      summary: Count which selected topic clusters a bulk action applies to
      description: >-
        Read-only. For a selection of topic clusters (explicit ids, or all
        matching a search minus exclusions), reports how many the given bulk
        action would change and why the rest would be skipped. Call it before a
        bulk action and confirm the counts with the user.
      operationId: topicsBulkPreview
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - selection
                - action
              properties:
                teamId:
                  type: string
                selection:
                  oneOf:
                    - type: object
                      required:
                        - mode
                        - ids
                      additionalProperties: false
                      properties:
                        mode:
                          type: string
                          enum:
                            - ids
                        ids:
                          type: array
                          items:
                            type: string
                    - type: object
                      required:
                        - mode
                        - filters
                        - excludedIds
                      additionalProperties: false
                      properties:
                        mode:
                          type: string
                          enum:
                            - all
                        filters:
                          type: object
                          properties:
                            search:
                              type: string
                          additionalProperties: false
                        excludedIds:
                          type: array
                          items:
                            type: string
                action:
                  type: string
                  enum:
                    - track
                    - untrack
                    - delete
                  description: The bulk action to count eligible rows for.
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  eligibility:
                    type: object
                    required:
                      - selected
                      - eligible
                      - skipped
                      - byReason
                    properties:
                      selected:
                        type: number
                      eligible:
                        type: number
                      skipped:
                        type: number
                      byReason:
                        type: object
                        additionalProperties:
                          type: number
        '500':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                properties:
                  success:
                    type: boolean
                  error:
                    type: string
                  code:
                    type: string
                  message:
                    type: string
                  reference:
                    type: string
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your SnowSEO API key (sk_...).
    apiKey:
      type: apiKey
      name: x-api-key
      in: header

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.