---
title: "Get a conversation with its messages and notes"
method: GET
path: "/support/conversations/{id}"
---

# Get a conversation with its messages and notes

`GET /support/conversations/{id}`

## Request

- Base URL: `https://api.web2wave.com/api`
- URL: `https://api.web2wave.com/api/support/conversations/{id}`
- Auth: API key in header `api_key`

The conversation, every message (oldest first), the internal notes, and `timeline` — messages and notes
merged in the order the cabinet shows them. Reading does **not** change the status unless `mark_read=1`
(then an `unread` conversation becomes `open`, as when a person opens it in the cabinet).

## Query parameters

- `mark_read` boolean
- `include_html` boolean
- `include` string

## Response `200`

Conversation

- object
  - `success` boolean
  - `conversation` SupportConversation: One customer conversation (all mail with one customer address in a project).
    - `id` integer
    - `user_email` string, email: The customer's address
    - `subject` string, nullable
    - `status` 'unread' | 'open' | 'closed': `unread` = waiting, nobody opened it; `open` = being handled; `closed` = done. A new message from the customer sets it back to `unread`.
    - `status_label` string
    - `assignee` object, nullable
      - `id` integer
      - `name` string
    - `request_type` 'refund_charge' | 'cancel_subscription' | 'pricing_payment' | 'access_login' | 'bug' | 'how_to' | 'data_compliance' | 'services_partnership' | 'feature_feedback' | 'spam_auto' | 'other', nullable: What the customer asks about. Set by AI when the conversation starts, or by hand. `null` = not classified.
    - `request_type_label` string, nullable
    - `request_type_source` 'ai' | 'manual', nullable
    - `request_type_confidence` integer, nullable: AI confidence, 0–100
    - `first_message_preview` string, nullable
    - `last_message_preview` string, nullable
    - `first_message_at` string, date-time, nullable
    - `last_message_at` string, date-time, nullable
    - `last_user_message_at` string, date-time, nullable
    - `last_agent_reply_at` string, date-time, nullable: Last reply written by a person (automatic messages do not count)
    - `auto_replied_at` string, date-time, nullable
    - `auto_followup_at` string, date-time, nullable
    - `is_demo` boolean: The built-in welcome conversation; nothing sent to it leaves the system
    - `created_at` string, date-time, nullable
  - `messages` SupportMessage[]
    - `id` integer
    - `type` 'message'
    - `direction` 'inbound' | 'outbound': `inbound` = from the customer, `outbound` = to the customer
    - `is_automated` boolean: Sent by an auto reply, follow-up or auto close
    - `automation_type` 'after_reply' | 'follow_up' | 'close', nullable
    - `sender_name` string: `User` for the customer, `System` for automatic messages, otherwise the agent's name at the time of sending
    - `sent_by_client_id` integer, nullable
    - `from_email` string
    - `to_email` string, nullable
    - `subject` string, nullable
    - `body_text` string: Plain text. For the customer's mail, converted from HTML when the mail had no text part
    - `body_html` string: Only with `include_html=1`; sanitised HTML of the customer's mail
    - `attachments` SupportAttachment[]
      - `id` integer
      - `filename` string
      - `mime_type` string, nullable
      - `size` integer: Bytes
      - `url` string, nullable
      - `is_image` boolean
      - `is_inline` boolean
    - `sent_at` string, date-time
  - `notes` SupportNote[]
    - `id` integer
    - `type` 'note'
    - `author` object
      - `id` integer, nullable
      - `name` string
    - `body` string
    - `created_at` string, date-time
  - `timeline` union[]
    - union
      - SupportMessage
        - `id` integer
        - `type` 'message'
        - `direction` 'inbound' | 'outbound': `inbound` = from the customer, `outbound` = to the customer
        - `is_automated` boolean: Sent by an auto reply, follow-up or auto close
        - `automation_type` 'after_reply' | 'follow_up' | 'close', nullable
        - `sender_name` string: `User` for the customer, `System` for automatic messages, otherwise the agent's name at the time of sending
        - `sent_by_client_id` integer, nullable
        - `from_email` string
        - `to_email` string, nullable
        - `subject` string, nullable
        - `body_text` string: Plain text. For the customer's mail, converted from HTML when the mail had no text part
        - `body_html` string: Only with `include_html=1`; sanitised HTML of the customer's mail
        - `attachments` SupportAttachment[]
          - `id` integer
          - `filename` string
          - `mime_type` string, nullable
          - `size` integer: Bytes
          - `url` string, nullable
          - `is_image` boolean
          - `is_inline` boolean
        - `sent_at` string, date-time
      - SupportNote: Internal note. Never sent to the customer.
        - `id` integer
        - `type` 'note'
        - `author` object
          - `id` integer, nullable
          - `name` string
        - `body` string
        - `created_at` string, date-time
  - `customer` object: Only with `include=customer`
  - `events` object[]: Only with `include=events`. `actor` is null when automation made the change.
    - `id` integer
    - `type` 'status' | 'assignee' | 'moved'
    - `from` string, nullable
    - `to` string, nullable
    - `actor` object, nullable
    - `created_at` string, date-time

## Other responses

- `404`: Not found in this project (or the sender is muted)

## Changes

- **2026-11-03** `eb8b2d9124ac`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/web2wave/apis/web2wave-api/changes/support/conversations/:id/get.md)

---

[API](https://skmtc.dev/web2wave/apis/web2wave-api.md) - [All operations](https://skmtc.dev/web2wave/apis/web2wave-api/llms.txt) - [OpenAPI document](https://skmtc.dev/web2wave/apis/web2wave-api/revisions/eb8b2d9124ac?raw)
