---
title: "List messages for conversation"
method: GET
path: "/v1/conversations/{id}/messages"
tags: ["conversations"]
---

# List messages for conversation

`GET /v1/conversations/{id}/messages`

Returns the paginated transcript for a conversation. Messages are chronological by default; reuse `cursor` with the same filters to continue pagination.

## Path parameters

- `id` string, required — Canonical conversation id.

## Query parameters

- `workspace_id` string — Optional workspace override. If omitted, Conduit resolves the conversation's workspace automatically.
- `limit` integer
- `cursor` string
- `order` 'asc' | 'desc'

## Response `200`

Conversation messages

- object — Cursor-paginated conversation messages response.
  - `data` object[], required
    - `id` string, required
    - `workspace_id` string, required
    - `conversation_id` string, required
    - `channel` string, required
    - `body` string, required
    - `direction` 'inbound' | 'outbound', required
    - `status` string, required
    - `sent_at` string, required
    - `created_at` string, required
    - `sender` object, required
      - `user_id` string, nullable, required
      - `external_id` string, nullable, required
      - `name` string, nullable, required
    - `attachments` object[], required
      - `url` string, required — Convex storage URL for the attachment. Long-lived (no signature expiry); fetched directly without auth.
      - `content_type` string, required
      - `name` string, nullable, required
    - `widget_website_url` string, nullable
  - `next_cursor` string, nullable, required
  - `has_more` boolean, required

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `429` — Rate limit exceeded

---

[API](https://skmtc.dev/conduit/apis/conduit-api.md) · [All operations](https://skmtc.dev/conduit/apis/conduit-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/conduit/conduit-api/revisions/3ad7e17f96ad/schema)
