---
search:
  tags:
    - Topics
    - PATCH
seo:
  description: >-
    Update multiple topics at once. Supports changing priority, archiving
    (archived=true), and… Reference for the PATCH /topics/bulk endpoint in the
    Modem API.
sidebar:
  label: Bulk update
  badge: PATCH
title: Bulk update
type: openapi-operation
---
Update multiple topics at once. Supports changing priority, archiving (archived=true), and unarchiving (archived=false). At least one field must be provided. Use this instead of calling the single update endpoint multiple times. IDs that match no topic are skipped, and updatedTopicIds lists only the topics that changed. If any ID names a topic archived in the v1 to v2 migration, nothing is changed and the request returns 404 with data.reason archived_in_v1_to_v2_migration.

`PATCH /topics/bulk`

**Request body** (`application/json`, required)

- `archived` (boolean) — Set to true to archive topics, false to unarchive them.
- `archivedReason` (string) — Optional reason for archiving. Only used when archived=true.
- `priority` (string) — Update all topics to this priority. Valid values: very\_low, low, default, high, very\_high.
- `topicIds` (string<uuid>[], required)

Request body example:

```json
{
  "archived": true,
  "archivedReason": "string",
  "priority": "default",
  "topicIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
}
```

**Responses**

- `200` — OK
- `400` — Invalid request (validation failed).
- `401` — Missing or invalid API key.
- `403` — The API key does not have access to this resource.
- `404` — The requested resource was not found.
- `409` — The request conflicts with an existing resource or idempotency operation.
- `429` — Rate limit exceeded.
- `500` — Internal server error.

Response example, 200:

```json
{
  "updatedCount": 0,
  "updatedTopicIds": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
}
```
