> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobilerun.ai/llms.txt
> Use this file to discover all available pages before exploring further.

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

> Lists SMS conversations by recent activity. Use both cursor fields from `nextCursor` to fetch the next page.



## OpenAPI

````yaml /api-reference/mobilerun-numbers/messages/conversations.yaml get /numbers/messages/conversations
openapi: 3.1.0
info:
  title: Conversations
  version: v1
servers:
  - description: Droidrun Cloud API
    url: https://api.mobilerun.ai/v1
security:
  - bearerAuth: []
paths:
  /numbers/messages/conversations:
    get:
      tags:
        - Conversations
      summary: List the caller's own SMS conversations, one row per thread
      description: >-
        Lists SMS conversations by recent activity. Use both cursor fields from
        `nextCursor` to fetch the next page.
      operationId: listConversations
      parameters:
        - in: query
          name: limit
          required: false
          schema:
            default: 20
            maximum: 100
            minimum: 1
            type: integer
        - in: query
          name: esimId
          required: false
          schema:
            format: uuid
            type: string
        - in: query
          name: numberId
          required: false
          schema:
            format: uuid
            type: string
        - in: query
          name: cursorLastOccurredAt
          required: false
          schema:
            format: date-time
            type: string
        - in: query
          name: cursorLastMessageId
          required: false
          schema:
            format: uuid
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListConversationsResponse'
          description: Conversations retrieved
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
          description: Unauthorized
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorEnvelope'
          description: Internal Server Error
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MessageErrorResponse'
          description: >-
            Messaging is unavailable when phone numbers and all eSIM providers
            are disabled. See `code` for details.
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Mobilerun from '@mobilerun/sdk';

            const client = new Mobilerun({
              apiKey: process.env['MOBILERUN_CLOUD_API_KEY'], // This is the default and can be omitted
            });

            const conversations = await client.messages.conversations.list();

            console.log(conversations.items);
        - lang: Python
          source: |-
            import os
            from mobilerun_sdk import Mobilerun

            client = Mobilerun(
                api_key=os.environ.get("MOBILERUN_CLOUD_API_KEY"),  # This is the default and can be omitted
            )
            conversations = client.messages.conversations.list()
            print(conversations.items)
components:
  schemas:
    ListConversationsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/ConversationRow'
          type: array
        nextCursor:
          $ref: '#/components/schemas/ConversationCursor'
      required:
        - items
        - nextCursor
      type: object
    ApiErrorEnvelope:
      properties:
        code:
          type: string
        details: {}
        message:
          type: string
        retryAfterSeconds:
          type: number
        traceId:
          type: string
      required:
        - code
        - message
      type: object
    MessageErrorResponse:
      description: >-
        Messaging error envelope. `code` is the canonical discriminator (see
        `MessageErrorReason` for the code set).
      properties:
        code:
          $ref: '#/components/schemas/MessageErrorReason'
        message:
          type: string
      required:
        - code
        - message
      type: object
    ConversationRow:
      properties:
        esimIds:
          items:
            format: uuid
            type: string
          type: array
        lastMessage:
          $ref: '#/components/schemas/ConversationLastMessage'
        peerKey:
          type: string
        unreadCount:
          minimum: 0
          type: integer
      required:
        - peerKey
        - lastMessage
        - unreadCount
        - esimIds
      type: object
    ConversationCursor:
      properties:
        lastMessageId:
          format: uuid
          type: string
        lastOccurredAt:
          format: date-time
          type: string
      required:
        - lastOccurredAt
        - lastMessageId
      type:
        - object
        - 'null'
    MessageErrorReason:
      description: >-
        Stable machine-readable messaging error code. Unknown future values
        should be handled as a generic error with the same HTTP status.
      enum:
        - not_installed
        - missing_device
        - missing_subscription
        - idempotency_key_reused
        - send_disabled
        - daily_cap_exceeded
        - rate_limited
        - capability_unavailable
        - invalid_recipient
        - unsupported_destination
        - body_too_long
        - daily_limit_reached
        - number_rate_limited
        - product_disabled
      type: string
    ConversationLastMessage:
      properties:
        body:
          type:
            - string
            - 'null'
        direction:
          enum:
            - inbound
            - outbound
          type: string
        id:
          format: uuid
          type: string
        occurredAt:
          format: date-time
          type: string
        status:
          description: >-
            Message status. Outbound messages move queued → sending → sent, or
            end at failed. `sent` means the mobile network accepted the message
            and is the final success status. `delivered` and `sent_unconfirmed`
            are kept for compatibility; current lines return no carrier delivery
            report, so neither is emitted.
          enum:
            - received
            - queued
            - claimed
            - sending
            - sent
            - sent_unconfirmed
            - delivered
            - failed
          type: string
      required:
        - id
        - direction
        - status
        - body
        - occurredAt
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: Opaque
      description: Bearer token via Authorization header
      scheme: bearer
      type: http

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.