# Mark conversation as read

**POST** `/conversations/{id}:markRead`

Records messages through the specified message as read for the authenticated reader. The latest eligible incoming customer message at or before the boundary is acknowledged asynchronously on supported channels on a best-effort basis. The boundary may be outgoing. Success confirms local read state, not customer notification or display. Unsupported channels, scheduling failures, and receipt delivery failures do not undo local read state.

Authentication: bearerAuth
Required scopes: `conversation:read`
Allowed roles: `owner`, `admin`, `agent`
Authorization: Mark a conversation in scope as read.

## Parameters

- `id` (path string, required)

## Request body

- `application/json`: `MarkConversationReadRequest` required.

## Responses

- `200`: Conversation marked as read
- `default`: Error
