---
title: "Get conversation"
method: GET
path: "/v1/conversations/{conversationId}"
tags: ["Conversations"]
---

# Get conversation

`GET /v1/conversations/{conversationId}`

## Request

- Base URL: `https://api.zavu.dev`
- URL: `https://api.zavu.dev/v1/conversations/{conversationId}`
- Auth: HTTP bearer

## Path parameters

- `conversationId` string, required

## Response `200`

Conversation details.

- 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), or a numeric chat ID (Telegram/Instagram/Messenger). 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
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required

## Other responses

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

## Changes

> 80 revisions in range; 1 not diffed.

- **2026-10-19** `70b974d2650a`: 1 warning
  - removed the optional property `conversation/group` from the response with the `200` status
- **2026-08-08** `d0b86dc88ad1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/changes/v1/conversations/:conversationId/get.md)

---

[API](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api.md) - [All operations](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/revisions/75bc777b0ffb?raw)
