---
title: "List thread replies"
method: GET
path: "/conversation-messages/{messageId}/replies"
tags: ["Messages"]
---

# List thread replies

`GET /conversation-messages/{messageId}/replies`

Returns replies for a thread root message.

## Path parameters

- `messageId` string, required — Thread root message identifier.

## Query parameters

- `limit` integer — Maximum number of records to return.
- `after` string — Cursor or ISO timestamp after which results should be returned.

## Response `200`

Thread replies.

- ThreadRepliesResponse — Thread replies response with the standard public data envelope plus legacy top-level aliases. The response-level thread_root_id identifies the requested root; individual MessageResult items do not expose reply lineage metadata.
  - `conversation_id` string, required — Conversation identifier.
  - `conversation_name` string, nullable, required — Conversation name.
  - `data` ThreadRepliesData, required — Standard thread replies payload. Use thread_root_id here to validate thread grouping; individual MessageResult items intentionally omit thread_root_id and replied_to_message_id.
    - `conversation_id` string, required — Conversation identifier.
    - `conversation_name` string, nullable, required — Conversation name.
    - `items` MessageResult[], required — Thread reply messages.
      - `authorWorkspaceMembershipId` string, required — Canonical author workspace membership identifier. Matches legacy author_id during the compatibility window.
      - `author_id` string, required — Author workspace member identifier. Deprecated: read authorWorkspaceMembershipId instead.
      - `author_name` string, nullable, required — Author workspace member display name.
      - `content` string, nullable, required — Message markdown content.
      - `conversation_id` string, required — Conversation identifier.
      - `conversation_name` string, nullable, required — Conversation name.
      - `created_at` string, date-time, required — Message creation timestamp.
      - `id` string, required — Message identifier.
      - `image_urls` string[], required — Image URLs extracted from the message.
      - `reactions` MessageReactionSummary[], required — Emoji reaction counts on the message.
        - `count` integer, required — Number of reactions for this emoji.
        - `emoji_text` string, required — Emoji text.
      - `replies_count` integer, required — Number of thread replies.
    - `page_info` PublicApiPageInfo, required — Target public API pagination metadata with snake_case field names.
      - `end_cursor` string, nullable — Cursor for the last item.
      - `has_next_page` boolean, required — Whether another page exists after this page.
      - `has_previous_page` boolean — Whether another page exists before this page.
      - `next_cursor` string, nullable — Cursor for the next page.
      - `previous_cursor` string, nullable — Cursor for the previous page.
      - `start_cursor` string, nullable — Cursor for the first item.
    - `thread_root_id` string, required — Thread root message identifier.
  - `items` MessageResult[], required — Thread reply messages.
    - `authorWorkspaceMembershipId` string, required — Canonical author workspace membership identifier. Matches legacy author_id during the compatibility window.
    - `author_id` string, required — Author workspace member identifier. Deprecated: read authorWorkspaceMembershipId instead.
    - `author_name` string, nullable, required — Author workspace member display name.
    - `content` string, nullable, required — Message markdown content.
    - `conversation_id` string, required — Conversation identifier.
    - `conversation_name` string, nullable, required — Conversation name.
    - `created_at` string, date-time, required — Message creation timestamp.
    - `id` string, required — Message identifier.
    - `image_urls` string[], required — Image URLs extracted from the message.
    - `reactions` MessageReactionSummary[], required — Emoji reaction counts on the message.
      - `count` integer, required — Number of reactions for this emoji.
      - `emoji_text` string, required — Emoji text.
    - `replies_count` integer, required — Number of thread replies.
  - `pageInfo` LegacyPageInfo, required — Current compatibility pagination metadata with camelCase field names.
    - `endCursor` string, nullable — Cursor for the last item.
    - `hasNextPage` boolean, required — Whether another page exists after this page.
    - `hasPreviousPage` boolean, required — Whether another page exists before this page.
    - `startCursor` string, nullable — Cursor for the first item.
  - `thread_root_id` string, required — Thread root message identifier.

## Other responses

- `400` — Bad request.
- `401` — Missing or invalid API key.
- `403` — Forbidden.
- `404` — Not found.
- `409` — Conflict.
- `429` — Rate limit or quota exceeded.
- `500` — Internal server error.

---

[API](https://skmtc.net/ando/apis/ando-public-api.md) · [All operations](https://skmtc.net/ando/apis/ando-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/ando/ando-public-api/versions/db1553a00d68/schema)
