---
title: "Mark conversation as read"
method: POST
path: "/v1/conversations/{conversationId}/read"
tags: ["Conversations"]
---

# Mark conversation as read

`POST /v1/conversations/{conversationId}/read`

Reset the thread's `unreadCount` to zero. Marks the thread read in your own inbox only: it does not send a read receipt to the contact.

## Path parameters

- `conversationId` string, required

## Response `200`

Conversation marked as read.

- ConversationResponse
  - `conversation` Conversation, required — An inbox thread with one contact. A conversation groups every message exchanged with that contact across channels, so a contact who writes on WhatsApp and later by email stays in one thread.
    - `id` string, required
    - `contactId` string — ID of the contact this thread belongs to. Absent on group threads and on threads whose contact has not been resolved yet.
    - `contactIdentifier` string, required — The key this thread is filed under: a phone number in E.164, a WhatsApp business-scoped user ID (BSUID), a numeric chat ID (Telegram/Instagram/Messenger), or a group JID. It is not always a phone number, so do not parse it as one.
    - `email` string — Email address of the thread, when the contact was reached by email.
    - `channels` string[], required — Every channel this thread has carried messages on.
    - `lastMessage` object, required — Denormalized preview of the most recent message, so a thread list needs no extra fetch.
      - `id` string, required
      - `text` string, required — Text or caption. Empty when the last message carried no text (e.g. media).
      - `channel` 'auto' | 'sms' | 'sms_oneway' | 'whatsapp' | 'telegram' | 'email' | 'instagram' | 'messenger' | 'voice', required — Delivery channel. Use 'auto' for intelligent routing.
      - `direction` 'inbound' | 'outbound', required
      - `at` string, date-time, required
    - `senderId` string — Sender that last handled this thread. Use it as the `Zavu-Sender` header when replying so the answer leaves from the same number the contact knows.
    - `messageCount` integer, required
    - `unreadCount` integer, required — Inbound messages not yet marked read. Reset with POST /v1/conversations/{conversationId}/read.
    - `whatsapp` object — WhatsApp identity, present when the contact adopted a username.
      - `bsuid` string — Business-scoped user ID. Can be used as `to` when sending.
      - `username` string
    - `group` object — Present when the thread is a group chat rather than a one-to-one conversation.
      - `id` string, required
      - `subject` string
      - `participantCount` integer
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

- `401` — Unauthorized.
- `404` — Conversation not found.

---

[API](https://skmtc.net/zavudev/apis/zavu-unified-messaging-layer-api.md) · [All operations](https://skmtc.net/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zavudev/zavu-unified-messaging-layer-api/revisions/4dacdff2adf8/schema)
