---
title: "List messages for a chat session"
method: GET
path: "/assistant/chat/messages"
tags: ["Chat"]
---

# List messages for a chat session

`GET /assistant/chat/messages`

## Request

- Base URL: `https://api.mobilerun.ai`
- URL: `https://api.mobilerun.ai/assistant/chat/messages`
- Auth: HTTP bearer

Return the user's chat history for the given session. History remains readable after the session is no longer active.

## Query parameters

- `sessionId` string, uuid, required
- `limit` integer

## Response `200`

User chat history

- object
  - `turnState` object, nullable
    - `id` string, uuid, required
    - `revision` integer, required
    - `phase` 'created' | 'running' | 'closed' | 'delivered' | 'failed', required
    - `outcome` string, nullable, required
    - `startedAt` string, required
    - `claimHeld` boolean, required
    - `attachable` boolean, required
    - `abortRequested` boolean, required
    - `reaping` boolean, required
  - `messages` object[], required
    - `id` string, required
    - `role` 'user' | 'assistant' | 'system', required
    - `turnId` string, uuid, nullable
    - `parts` object[], required
      - `type` string, required
    - `source` 'cloud' | 'telegram' | 'api' | 'workflow' | 'notification'
    - `synthetic` boolean
    - `feedback` boolean, nullable
    - `createdAt` string, date-time
    - `userId` string, nullable: Deprecated: use createdBy.
    - `createdBy` string, nullable
    - `metadata` object
      - `steer` object: Steer user rows appear directly above the collapsed assistant group of their turn, matching live cloud ordering.
        - `agentMessageId` string, required
        - `targetRole` 'root' | 'worker', required
        - `state` 'accepted' | 'consumed' | 'dropped', required
        - `consumedAt` string, date-time
        - `dropReason` 'turn_closed' | 'aborted'
      - `agentMessageId` string
      - `turnAnchorMessageId` string
      - `agentSessionId` string
      - `agent` string
  - `turnActive` boolean, required
  - `lastTurnOutcome` string, nullable
  - `truncated` boolean

## Other responses

- `401`: Unauthorized
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-10-21** `ea7a3d026d7f`: 1 breaking, 1 info
  - removed the required property `messages/items/metadata/steer/kiloMessageID` from the response with the `200` status
  - added the required property `messages/items/metadata/steer/agentMessageId` to the response with the `200` status
- **2026-10-16** `4ad548c528a8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/droidrun/apis/droidrun-cloud/changes/assistant/chat/messages/get.md)

---

[API](https://skmtc.dev/droidrun/apis/droidrun-cloud.md) - [All operations](https://skmtc.dev/droidrun/apis/droidrun-cloud/llms.txt) - [OpenAPI document](https://skmtc.dev/droidrun/apis/droidrun-cloud/revisions/1cc95586c933?raw)
