---
title: "Get Conversation"
method: GET
path: "/api/v1/chat-ai/conversations/{conversation_id}"
tags: ["chat-ai", "conversations"]
---

# Get Conversation

`GET /api/v1/chat-ai/conversations/{conversation_id}`

Get a conversation with its messages.

## Path parameters

- `conversation_id` string, uuid, required

## Response `200`

Successful Response

- ConversationDetailRead — Conversation with nested messages.
  - `id` string, uuid, required
  - `tenant_id` string, uuid, required
  - `user_id` string, uuid, nullable
  - `chat_agent_id` string, uuid, required
  - `property_id` string, uuid, nullable
  - `action_item_id` string, uuid, nullable
  - `title` string, nullable, required
  - `preview` string, nullable, required
  - `last_message_at` string, date-time, nullable, required
  - `message_count` integer, required
  - `langgraph_thread_id` string, nullable, required
  - `investigation_context` string, nullable
  - `channel` string
  - `external_conversation_id` string, nullable
  - `external_thread_key` string, nullable
  - `integration_connection_id` string, uuid, nullable
  - `messages` ConversationMessageRead[]
    - `id` string, uuid, required
    - `tenant_id` string, uuid, required
    - `conversation_id` string, uuid, required
    - `role` string, required
    - `content` string, nullable, required
    - `tool_calls` object[], nullable, required
    - `tokens_used` integer, nullable, required
    - `sequence` integer, required
    - `reasoning_summary` string, nullable
    - `attachments` object[], nullable
    - `sources` object[], nullable
    - `sub_agent_trace` SubAgentTraceEntryRead[], nullable
      - `agent_label` string, required
      - `tool_name` string, required
      - `tool_call_id` string, required
      - `status` 'running' | 'completed' | 'failed', required
      - `elapsed_ms` integer, required
      - `tool_params` object, nullable
    - `is_partial` boolean
    - `skill_slug` string, nullable
    - `mentions` ChatMention[]
      - `kind` 'integration' | 'source', required
      - `key` string, required
      - `offset` integer, required
      - `length` integer, required
    - `selections` union[]
      - union
        - ArtifactTextSelection — A passage highlighted in an artifact. Anchored as a W3C ``TextQuoteSelector`` — the exact text plus a little context — because prose has no durable id: ``body_json`` block ids are absent on every agent-written version. See ``doc_anchor``.
          - `title` string, required
          - `kind` 'artifact_text'
          - `artifact_id` string, required
          - `version` integer, required
          - `quote` string, required
          - `prefix` string
          - `suffix` string
          - `heading` string, nullable
        - ArtifactBlockSelection — A widget block inside an artifact, addressed by its fence id.
          - `title` string, required
          - `kind` 'artifact_block'
          - `artifact_id` string, required
          - `version` integer, required
          - `block_id` string, required
          - `block_title` string, nullable
          - `shown` string, nullable
        - BoardWidgetSelection — A widget on a report board.
          - `title` string, required
          - `kind` 'board_widget'
          - `dashboard_id` string, required
          - `widget_id` string, required
          - `board_name` string, required
          - `widget_title` string, required
          - `stored_title` string, nullable
          - `shown` string, nullable
          - `window` SelectionWindow — The period a selected widget was being read over.
            - `start_date` string, required
            - `end_date` string, required
          - `filters` object, nullable
          - `local_source` string, nullable
        - SheetRangeSelection — A range of cells in a spreadsheet artifact.
          - `title` string, required
          - `kind` 'sheet_range'
          - `artifact_id` string, required
          - `version` integer, required
          - `sheet` string, required
          - `range` string, required
          - `preview` string, nullable
    - `created_at` string, date-time, nullable

## Other responses

- `404` — Conversation not found
- `422` — Validation Error

## Changes

> 26 revisions in range; 1 not diffed.

- **2026-09-20** `59d90f796108` — 1 info
  - added the optional property `messages/items/selections` to the response with the `200` status
- **2026-09-16** `d782acd3a884` — 1 info
  - added the optional property `messages/items/mentions` to the response with the `200` status
- **2026-09-15** `41c5e4645524` — 1 info
  - added the optional property `action_item_id` to the response with the `200` status
- **2026-09-09** `14d0341c60b5` — 2 breaking, 5 info
  - the response property `user_id` became optional for the status `200`
  - response property `user_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - added the optional property `channel` to the response with the `200` status
  - added the optional property `external_conversation_id` to the response with the `200` status
  - …3 more
- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/chat-ai/conversations/:conversation_id/get.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/4df7b22a7dae?raw)
