---
title: "Mark threads as unread"
method: POST
path: "/v3/inbox/threads/mark-as-unread"
tags: ["Inbox"]
---

# Mark threads as unread

`POST /v3/inbox/threads/mark-as-unread`

<small>_Requires the `inbox:operate` scope (or a broader one that includes it)._</small>

Non-atomic bulk update — flips `isRead` to `false` on each supplied thread. Per-item failures are returned in a dictionary keyed by thread id.

**Per-item error codes**

| Error code | Meaning |
| --- | --- |
| `notFound` | Thread not found |
| `forbidden` | User not allowed to access this thread |

## Request body

- object — Identifier list for non-atomic bulk thread operations.
  - `threadIds` integer[], required

## Response `200`

Per-item results. Threads not present in the dictionary succeeded.

- object

## Other responses

- `400` — Body validation failure, or a business-rule rejection.
- `401` — Unauthorized. The response body is empty; check the `WWW-Authenticate` header for the expected scheme.
- `403` — Inbox feature is not available for this user or team.
- `429` — Too Many Requests

---

[API](https://skmtc.net/reply/apis/reply-api.md) · [All operations](https://skmtc.net/reply/apis/reply-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reply/reply-api/revisions/1c3d32eaf95e/schema)
