---
title: "List conversation messages"
method: GET
path: "/conversations/{conversationId}/messages"
tags: ["Messages"]
---

# List conversation messages

`GET /conversations/{conversationId}/messages`

Returns messages in a conversation.

## Path parameters

- `conversationId` string, required — Conversation identifier.

## Query parameters

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

## Response `200`

Conversation messages.

- ConversationMessagesResponse — Conversation messages response with the standard public data envelope plus legacy top-level aliases.
  - `conversation_id` string, required — Conversation identifier.
  - `conversation_name` string, nullable, required — Conversation name.
  - `data` ConversationMessagesData, required — Standard conversation messages payload.
    - `conversation_id` string, required — Conversation identifier.
    - `conversation_name` string, nullable, required — Conversation name.
    - `items` MessageResult[], required — 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.
  - `items` MessageResult[], required — 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.

## 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)
