Skip to main content
GET
/
v2
/
task.listMessages
cURL
curl --request GET \
  --url 'https://api.manus.ai/v2/task.listMessages?task_id=<string>&order=desc&limit=10' \
  --header 'x-manus-api-key: <api-key>'
{
  "ok": true,
  "request_id": "<string>",
  "task_id": "<string>",
  "messages": [
    {
      "id": "<string>",
      "type": "user_message",
      "timestamp": 123,
      "user_message": {
        "content": "<string>",
        "message_type": "text",
        "attachments": [
          {
            "type": "image",
            "filename": "<string>",
            "url": "<string>",
            "content_type": "<string>"
          }
        ]
      },
      "assistant_message": {
        "content": "<string>",
        "attachments": [
          {
            "type": "image",
            "filename": "<string>",
            "url": "<string>",
            "content_type": "<string>"
          }
        ]
      },
      "error_message": {
        "error_type": "<string>",
        "content": "<string>"
      },
      "status_update": {
        "agent_status": "running",
        "status_detail": {
          "waiting_for_event_id": "<string>",
          "waiting_for_event_type": "<string>",
          "waiting_description": "<string>",
          "confirm_input_schema": {}
        },
        "brief": "<string>",
        "description": "<string>"
      },
      "tool_used": {
        "tool": "<string>",
        "action_id": "<string>",
        "status": "success",
        "brief": "<string>",
        "description": "<string>",
        "message": {
          "action": "<string>",
          "param": "<string>"
        }
      },
      "plan_update": {
        "steps": [
          {
            "status": "todo",
            "title": "<string>",
            "started_at": 123,
            "end_at": 123
          }
        ]
      },
      "new_plan_step": {
        "step_id": "<string>",
        "title": "<string>"
      },
      "explanation": {
        "content": "<string>"
      }
    }
  ],
  "has_more": true,
  "next_cursor": "<string>"
}
Questions or issues? Contact us at api-support@manus.ai.

Authorizations

x-manus-api-key
string
header
required

Query Parameters

task_id
string
required

The unique identifier of the task to list messages for.

limit
integer

Number of messages to return per page. Default: 50, Range: 1-200.

cursor
string

Pagination cursor from the previous response's next_cursor field. Omit for the first page.

order
enum<string>

Sort direction by timestamp. "desc" (default) returns newest first, "asc" returns oldest first (chronological order).

Available options:
asc,
desc
verbose
boolean

When true, includes detailed events: tool_used (tools the agent invoked), plan_update (full plan snapshots), new_plan_step (individual step additions), and explanation (agent reasoning). Default: false — only returns user_message, assistant_message, error_message, status_update, and user_stop.

slides_format
enum<string>

Format for slides attachments in the response. "html" (default) returns raw HTML slides. "pptx" auto-converts HTML slides to PowerPoint format.

Available options:
html,
pptx

Response

Messages retrieved successfully.

ok
boolean

Whether the request was successful.

Example:

true

request_id
string

Unique identifier for this API request.

task_id
string

The task ID these messages belong to.

messages
object[]

Array of task event objects representing the conversation and agent activity.

has_more
boolean

Whether there are more messages beyond this page.

next_cursor
string

Cursor for fetching the next page. Only present when has_more is true.