---
title: "List messages in a conversation"
method: GET
path: "/api/w/{wId}/assistant/conversations/{cId}/messages"
tags: ["Private Messages"]
---

# List messages in a conversation

`GET /api/w/{wId}/assistant/conversations/{cId}/messages`

Retrieve a paginated list of messages for a specific conversation.

## Path parameters

- `wId` string, required
- `cId` string, required

## Response `200`

Successfully retrieved messages

- object
  - `messages` union[]
    - union
      - PrivateUserMessage — A user message in a conversation.
        - `id` integer
        - `type` 'user_message', required
        - `sId` string, required
        - `created` integer, required
        - `visibility` 'visible' | 'deleted'
        - `version` integer, required
        - `rank` integer, required
        - `branchId` string, nullable — Legacy, always null. Branches were removed.
        - `user` object, nullable — The user who sent the message
          - `sId` string
          - `username` string
          - `fullName` string
          - `image` string, nullable
        - `mentions` PrivateMention[]
          - `configurationId` string — Agent configuration sId (for agent mentions)
          - `type` 'user' — Present only for user mentions
          - `userId` string — User sId (for user mentions)
        - `richMentions` PrivateRichMentionWithStatus[]
          - `id` string, required
          - `type` 'agent' | 'user', required
          - `label` string, required
          - `pictureUrl` string, required
          - `description` string, required
          - `userFavorite` boolean
          - `dismissed` boolean, required
          - `status` 'pending_conversation_access' | 'pending_project_membership' | 'approved' | 'rejected' | 'user_restricted_by_conversation_access' | 'agent_restricted_by_space_usage', required
        - `content` string, required
        - `context` PrivateUserMessageContext — Context metadata for a user message.
          - `username` string, required
          - `fullName` string, nullable
          - `email` string, nullable
          - `profilePictureUrl` string, nullable
          - `timezone` string, required
          - `origin` 'web' | 'project_kickoff' | 'extension' | 'agent_sidekick' | 'api' | 'cli' | 'cli_programmatic' | 'email' | 'excel' | 'gsheet' | 'make' | 'n8n' | 'powerpoint' | 'raycast' | 'slack' | 'slack_workflow' | 'teams' | 'transcript' | 'triggered_programmatic' | 'triggered' | 'wakeup' | 'zapier' | 'zendesk' | 'onboarding_conversation', required
          - `selectedSpaceIds` string[]
        - `reactions` PrivateReaction[]
          - `emoji` string, required
          - `users` object[], required
            - `userId` string, nullable
            - `username` string
            - `fullName` string, nullable
      - PrivateLightAgentMessage — A lighter agent message used in paginated message list responses.
        - `type` 'agent_message', required
        - `sId` string, required
        - `created` integer
        - `completedTs` integer, nullable
        - `visibility` 'visible' | 'deleted'
        - `version` integer, required
        - `rank` integer, required
        - `branchId` string, nullable — Legacy, always null. Branches were removed.
        - `parentMessageId` string, required
        - `parentAgentMessageId` string, nullable
        - `status` 'created' | 'succeeded' | 'failed' | 'cancelled', required
        - `content` string, nullable
        - `chainOfThought` string, nullable
        - `error` object, nullable
          - `code` string
          - `message` string
          - `metadata` object, nullable
        - `configuration` object, required — Minimal agent configuration info
          - `sId` string
          - `name` string
          - `pictureUrl` string
          - `status` string
          - `canRead` boolean
        - `citations` object
        - `generatedFiles` object[]
          - `fileId` string, nullable — Dust file id for DB-backed files, or null for path-backed files.
          - `filePath` string — Canonical scoped path for path-backed files.
          - `title` string
          - `contentType` string
          - `publicUrl` string
        - `richMentions` PrivateRichMentionWithStatus[]
          - `id` string, required
          - `type` 'agent' | 'user', required
          - `label` string, required
          - `pictureUrl` string, required
          - `description` string, required
          - `userFavorite` boolean
          - `dismissed` boolean, required
          - `status` 'pending_conversation_access' | 'pending_project_membership' | 'approved' | 'rejected' | 'user_restricted_by_conversation_access' | 'agent_restricted_by_space_usage', required
        - `completionDurationMs` integer, nullable
        - `costCredits` integer, nullable — Cost of producing this agent message, in credits (intelligence + tool credits). Null when no billable usage is attributed to the message.
        - `subAgentCostCredits` number, nullable — Aggregated credit cost of all sub-agents (run_agent / agent_handover) spawned recursively by this message. Computed only on single-message fetches. Null otherwise.
        - `resolvedModel` object, nullable — Model triplet used to generate the message. Null when the agent ran its configured model (legacy).
          - `providerId` string
          - `modelId` string
          - `reasoningEffort` string
        - `modelResolutionMethod` 'agent' | 'user' | 'auto', nullable — How resolvedModel was chosen - agent (configured model), user (per-message picker), or auto (routed through the auto model). Null (legacy).
        - `activitySteps` object[]
          - `type` 'thinking' | 'action'
          - `content` string — Chain of thought text (thinking steps only)
          - `label` string — Action display label (action steps only)
          - `id` string
          - `actionId` string — Action string identifier (action steps only)
        - `reactions` PrivateReaction[]
          - `emoji` string, required
          - `users` object[], required
            - `userId` string, nullable
            - `username` string
            - `fullName` string, nullable
      - PrivateContentFragment — A content fragment (file or content node attachment) in a conversation.
        - `type` 'content_fragment', required
        - `id` integer
        - `sId` string, required
        - `created` integer
        - `visibility` 'visible' | 'deleted'
        - `version` integer
        - `rank` integer
        - `title` string, required
        - `contentType` string, required — MIME type of the content
        - `sourceUrl` string, nullable
        - `context` object
          - `username` string, nullable
          - `fullName` string, nullable
          - `email` string, nullable
          - `profilePictureUrl` string, nullable
        - `contentFragmentId` string
        - `contentFragmentVersion` 'superseded' | 'latest'
        - `contentFragmentType` 'file' | 'content_node', required — Whether this is a file upload or a content node reference
        - `expiredReason` 'data_source_deleted', nullable
        - `fileId` string, nullable — Present for file content fragments
        - `path` string, nullable — Path of this file inside the sandbox conversation mount.
        - `processedPath` string, nullable — Path of the plain-text sibling of this file inside the sandbox conversation mount (e.g. an audio transcript), when it has one.
        - `skipFileProcessing` boolean — Whether upload-time file processing was skipped.
        - `snippet` string, nullable
        - `textUrl` string, nullable
        - `textBytes` integer, nullable
        - `nodeId` string, nullable — Present for content node fragments
        - `nodeDataSourceViewId` string, nullable
  - `hasMore` boolean
  - `lastValue` integer, nullable

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/dust-tt/apis/dust-api-documentation.md) · [All operations](https://skmtc.net/dust-tt/apis/dust-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dust-tt/dust-api-documentation/versions/5834d690c29d/schema)
