> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trychannel3.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Read a Conversation

When the shopper refreshes the page, fetch the conversation and rebuild the chat. `GET /v1/conversations/{id}` returns metadata plus one page of messages. The first page is the **most recent** messages, so a refresh lands where they left off. Pass `cursor` to load older history.

This call is free. A client token can only read its own conversation. History is saved when a turn **finishes** — a failed turn does not add an assistant message.

<CodeGroup>
  ```typescript TypeScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const page = await client.conversations.retrieve({
    conversation_id: conversationId,
    limit: 50,
    // cursor: page.response.next_cursor,
  });

  // page.data — this page of messages, most recent first
  // page.response.has_more, page.response.next_cursor — older messages
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  page = client.conversations.retrieve(conversation_id, limit=50)
  # page.items — this page of messages, most recent first
  # page.has_next, page.response.next_cursor — older messages
  ```

  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl "https://api.trychannel3.com/v1/conversations/conv_123?limit=50" \
    -H "Authorization: Bearer c3_ct_..."
  ```
</CodeGroup>

`items` are the same user and assistant messages you streamed — text and tool parts with product cards. See [messages and parts](/conversations/messages-and-parts) for how to render them.

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "id": "conv_123",
  "created_at": 1730000000,
  "items": [
    {
      "role": "user",
      "parts": [
        {
          "type": "text",
          "text": "I need waterproof hiking boots for day hikes, under $200"
        }
      ]
    },
    {
      "role": "assistant",
      "parts": [
        { "type": "text", "text": "Let me pull up some options." },
        {
          "type": "tool",
          "tool_call_id": "call_1",
          "tool_name": "search_products",
          "input": {
            "query": "waterproof hiking boots for day hikes under $200"
          },
          "output": { "products": [] }
        },
        {
          "type": "text",
          "text": "Here are a few solid day-hiking picks under $200."
        }
      ]
    }
  ],
  "has_more": false,
  "next_cursor": null
}
```
