---
title: "List the caller's own SMS conversations, one row per thread"
method: GET
path: "/numbers/messages/conversations"
tags: ["Messages"]
---

# List the caller's own SMS conversations, one row per thread

`GET /numbers/messages/conversations`

Lists the caller's own SMS conversations, one row per thread. Each row includes the most recent message in the thread, its unread inbound count, and the eSIMs it was seen through. Optional `esimId` or `numberId` narrows to threads on one eSIM or number.

Cursor-paginated via `limit` (default 20, max 100) and `cursorLastOccurredAt`/`cursorLastMessageId` (both required together, taken from a previous page's `nextCursor`). Pagination follows each thread's most recent activity rather than a fixed snapshot, so a thread with new activity can move ahead of an in-progress page fetch. Clients that need a stable ordering should snapshot their own view.

## Query parameters

- `limit` integer
- `esimId` string, uuid
- `numberId` string, uuid
- `cursorLastOccurredAt` string, date-time
- `cursorLastMessageId` string, uuid

## Response `200`

Conversations retrieved

- object
  - `data` ListConversationsResponse, required
    - `items` ConversationRow[], required
      - `peerKey` string, required
      - `lastMessage` ConversationLastMessage, required
        - `id` string, uuid, required
        - `direction` 'inbound' | 'outbound', required
        - `status` 'received' | 'queued' | 'claimed' | 'sending' | 'sent' | 'sent_unconfirmed' | 'delivered' | 'failed', required
        - `body` string, nullable, required
        - `occurredAt` string, date-time, required
      - `unreadCount` integer, required
      - `esimIds` string[], required
    - `nextCursor` ConversationCursor, nullable, required
      - `lastOccurredAt` string, date-time, required
      - `lastMessageId` string, uuid, required

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `500` — Internal Server Error
- `503` — Service Unavailable — the relevant product is disabled for this deployment (see `reason`/`message`)

---

[API](https://skmtc.dev/droidrun/apis/droidrun-cloud.md) · [All operations](https://skmtc.dev/droidrun/apis/droidrun-cloud/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/droidrun/droidrun-cloud/revisions/a1453ac769d4/schema)
