---
title: "Get conversation messages"
method: GET
path: "/api/v1/conversations/{id}/messages"
tags: ["conversation"]
---

# Get conversation messages

`GET /api/v1/conversations/{id}/messages`

## Request

- Base URL: `https://api.bundle.social`
- URL: `https://api.bundle.social/api/v1/conversations/{id}/messages`
- Auth: API key in header `x-api-key`

List the messages of a conversation. Pages walk backwards in time, while the messages inside a page are ordered oldest first, ready to render. Includes attachments, reactions and delivery state. Paginate with `offset` (`limit` max 500, default 10) or by passing the previous response's `nextCursor` back as `cursor`; the two cannot be combined. `total` is returned on the first page only.

## Path parameters

- `id` string, required

## Query parameters

- `offset` integer, nullable
- `limit` integer, nullable
- `cursor` string, nullable

## Response `200`

200

- object
  - `items` object[], required
    - `id` string, required
    - `conversationId` string, required
    - `teamId` string, required
    - `socialAccountId` string, required
    - `platform` 'INSTAGRAM' | 'FACEBOOK', required: Messaging platform. Extensible: new platforms are added over time, so handle unknown values gracefully rather than switching exhaustively.
    - `direction` 'INBOUND' | 'OUTBOUND', required
    - `status` 'PENDING' | 'SENT' | 'DELIVERED' | 'SEEN' | 'FAILED', required
    - `source` 'PRIVATE_REPLY' | 'DM' | 'WEBHOOK' | 'API' | 'ECHO', required
    - `externalMessageId` string, nullable
    - `text` string, nullable
    - `attachments` object[]
      - `type` 'IMAGE' | 'VIDEO' | 'AUDIO' | 'FILE' | 'POST' | 'STORY_MENTION' | 'UNKNOWN', required
      - `url` string, nullable
      - `externalId` string, nullable
      - `mimeType` string, nullable
      - `name` string, nullable
      - `captionTrackUrl` string, nullable
      - `captionLanguage` string, nullable
      - `captionLabel` string, nullable
    - `sentAt` string, date-time, nullable
    - `failedAt` string, date-time, nullable
    - `error` string, nullable
    - `seenAt` string, date-time, nullable
    - `replyTo` object, nullable
      - `externalMessageId` string, nullable
      - `isSelfReply` boolean, nullable
      - `messageId` string, nullable
    - `privateReplyContext` object, nullable
      - `fetchedCommentId` string, required
      - `externalCommentId` string, nullable
      - `text` string, nullable
      - `authorName` string, nullable
      - `authorAvatarUrl` string, nullable
      - `publishedAt` string, date-time, nullable
      - `postId` string, nullable
      - `externalPostId` string, nullable
      - `postPermalink` string, nullable
      - `postThumbnailUrl` string, nullable
    - `createdAt` string, date-time, nullable, required
    - `updatedAt` string, date-time, nullable, required
    - `platformData` object
      - `replyTo` object, nullable
        - `externalMessageId` string, nullable
        - `isSelfReply` boolean, nullable
      - `storyReply` object, nullable
        - `storyId` string, nullable
        - `url` string, nullable
        - `linkStickerUrl` string, nullable
      - `reactions` object[]
        - `senderId` string, required
        - `reaction` string, nullable
        - `emoji` string, nullable
        - `reactedAt` string, date-time, nullable
      - `quickReplies` object[]
        - `id` string
        - `label` string, required
        - `payload` string, required
      - `buttons` union[]
        - union
          - object
            - `id` string
            - `type` 'POSTBACK', required
            - `label` string, required
            - `payload` string, required
          - object
            - `id` string
            - `type` 'URL', required
            - `label` string, required
            - `url` string, uri, required
          - object
            - `id` string
            - `type` 'PHONE', required
            - `label` string, required
            - `phoneNumber` string, required
      - `carousel` object, nullable
        - `cards` object[], required
          - `id` string
          - `title` string, required
          - `subtitle` string, nullable
          - `imageUrl` string, uri, nullable
          - `buttons` union[]
            - union
              - …
      - `isEcho` boolean, nullable
      - `isEdited` boolean, nullable
      - `editedAt` string, date-time, nullable
      - `isPostback` boolean, nullable
      - `postbackPayload` string, nullable
      - `isUnsent` boolean, nullable
      - `unsentAt` string, date-time, nullable
  - `total` number
  - `nextCursor` string, nullable

## Other responses

- `400`: 400
- `401`: 401
- `403`: 403
- `404`: 404
- `429`: 429
- `500`: 500
- `502`: 502
- `503`: 503
- `504`: 504

## Changes

- **2026-11-03** `fb6e4fbd8d2f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/bundle/apis/bundle-social-api/changes/api/v1/conversations/:id/messages/get.md)

---

[API](https://skmtc.dev/bundle/apis/bundle-social-api.md) - [All operations](https://skmtc.dev/bundle/apis/bundle-social-api/llms.txt) - [OpenAPI document](https://skmtc.dev/bundle/apis/bundle-social-api/revisions/18efa1cb93a4?raw)
