---
title: "Mark a conversation's inbound messages read up to a cursor"
method: POST
path: "/numbers/messages/conversations/read"
tags: ["Messages"]
---

# Mark a conversation's inbound messages read up to a cursor

`POST /numbers/messages/conversations/read`

Marks the caller's own inbound messages in a conversation thread as read, up to and including the given `(upToOccurredAt, upToMessageId)` cursor — typically a conversation row's `lastMessage`. Idempotent: repeating the call with the same cursor updates 0 rows. Returns the number of rows updated.

## Request body

- MarkConversationReadInput
  - `peerKey` string, required — The thread's canonical peer key (see GET .../conversations)
  - `upToOccurredAt` string, date-time, required — Mark inbound messages read up to (and including) this occurredAt/upToMessageId cursor
  - `upToMessageId` string, uuid, required

## Response `200`

Read state updated

- object
  - `data` MarkConversationReadResponse, required
    - `updated` integer, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error
- `503` — Service Unavailable — the relevant product is disabled for this deployment (see `reason`/`message`)

## Changes

- **2026-08-13** `02da4f9ce3fd` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/droidrun/apis/droidrun-cloud/changes/numbers/messages/conversations/read/post.md)

---

[API](https://skmtc.dev/droidrun/apis/droidrun-cloud.md) · [All operations](https://skmtc.dev/droidrun/apis/droidrun-cloud/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/droidrun/droidrun-cloud/revisions/a1453ac769d4/schema)
