---
title: "Mark a conversation read"
method: POST
path: "/v1/threads/{id}/read"
tags: ["Emails"]
---

# Mark a conversation read

`POST /v1/threads/{id}/read`

## Request

- Base URL: `https://api.mailbeast.ai`
- URL: `https://api.mailbeast.ai/v1/threads/{id}/read`
- Auth: HTTP bearer

Mark every email in a conversation as read in one call. Read state lives on the conversation, not the individual email - this is the one call that clears it.

Requires one of the following scopes: `emails:write`, `emails:all`, `all:all`.

## Path parameters

- `id` string, required

## Headers

- `Idempotency-Key` string

## Response `200`

- MarkThreadReadApiResponseDto
  - `threadId` string, required
  - `unreadCount` number, required: Emails left unread in the conversation.

## Other responses

- `401`: Missing or invalid API key.
- `403`: The key lacks a required scope, or the plan does not include API access.
- `404`: The resource does not exist in your workspace.
- `409`: The request conflicts with current state - e.g. a request with the same Idempotency-Key is still being processed, or the operation partially applied.
- `422`: The Idempotency-Key was already used with a different request body. Use a new key for a new operation.
- `429`: Rate limit exceeded - retry after the interval in the Retry-After header.

---

[API](https://skmtc.dev/mailbeast/apis/mailbeast-public-api.md) · [All operations](https://skmtc.dev/mailbeast/apis/mailbeast-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mailbeast/apis/mailbeast-public-api/revisions/6440ce0738a4?raw)
