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

# List Conversations

> Your DM conversations, newest first. Each conversation includes its details and participants. Provide your `encryption_code` (your XChat PIN — the code you set when enabling encrypted chats on X) to also include a decrypted `last_message` preview of the most recent message in each conversation. Use `cursor_id` and `graph_snapshot_id` from `next_cursor` to load more.



## OpenAPI

````yaml /api-reference/openapi.json get /dm/list
openapi: 3.1.0
info:
  title: OmniX API
  version: 1.0.0
  description: >-
    The fastest X (Twitter) API. Read and write tweets, users, lists, media and
    articles with a single API key. Every request runs as a real X account you
    supply via `auth_token`. Flat $0.001 per successful call.
servers:
  - url: https://api.omnixapi.com/api/v1/twitter
security:
  - bearerAuth: []
tags:
  - name: Tweets
    description: Search, read and write tweets.
  - name: Users
    description: Profiles, timelines, networks and profile actions.
  - name: Lists
    description: X List data.
  - name: Media
    description: Upload images, GIFs and video.
  - name: Articles
    description: Long-form X Articles.
  - name: Direct Messages
    description: >-
      Read and send X (XChat) direct messages. Encrypted operations require your
      `encryption_code` (XChat PIN).
  - name: Webhooks
    description: >-
      Real-time event delivery. Register an https URL and OmniX POSTs typed,
      signed events for DMs, mentions, replies, likes and follows.
  - name: Account
    description: >-
      Your OmniX account details, credit balance, usage and payment history.
      Free — no credits deducted, and no X account token required.
paths:
  /dm/list:
    get:
      tags:
        - Direct Messages
      summary: List Conversations
      description: >-
        Your DM conversations, newest first. Each conversation includes its
        details and participants. Provide your `encryption_code` (your XChat PIN
        — the code you set when enabling encrypted chats on X) to also include a
        decrypted `last_message` preview of the most recent message in each
        conversation. Use `cursor_id` and `graph_snapshot_id` from `next_cursor`
        to load more.
      operationId: dmList
      parameters:
        - $ref: '#/components/parameters/AuthToken'
        - $ref: '#/components/parameters/EncryptionCode'
        - $ref: '#/components/parameters/Count'
        - $ref: '#/components/parameters/CursorId'
        - $ref: '#/components/parameters/GraphSnapshotId'
        - $ref: '#/components/parameters/Proxy'
      responses:
        '200':
          description: Conversation list.
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Envelope'
                  - type: object
                    properties:
                      data:
                        type: object
                        properties:
                          userId:
                            type: string
                          has_message_requests:
                            type: boolean
                          conversation_count:
                            type: integer
                          has_more:
                            type: boolean
                          next_cursor:
                            type: object
                            nullable: true
                            properties:
                              cursor_id:
                                type: string
                              graph_snapshot_id:
                                type: string
                          conversations:
                            type: array
                            items:
                              $ref: '#/components/schemas/DmConversation'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  parameters:
    AuthToken:
      name: auth_token
      in: query
      required: true
      schema:
        type: string
      description: The X account `auth_token` cookie the action runs as.
      example: YOUR_X_AUTH_TOKEN
    EncryptionCode:
      name: encryption_code
      in: query
      required: false
      schema:
        type: string
      description: >-
        Your XChat PIN. Provide it to include a preview of the most recent
        message in each conversation. Without it, you'll get the conversation
        details and participants, but no message preview.
      example: YOUR_XCHAT_PIN
    Count:
      name: count
      in: query
      required: false
      schema:
        type: integer
        default: 20
      description: Page size (1–100).
    CursorId:
      name: cursor_id
      in: query
      required: false
      schema:
        type: string
      description: >-
        From a previous response `next_cursor.cursor_id` — paginate to the next
        page of conversations.
    GraphSnapshotId:
      name: graph_snapshot_id
      in: query
      required: false
      schema:
        type: string
      description: >-
        From a previous response `next_cursor.graph_snapshot_id` — paired with
        `cursor_id`.
    Proxy:
      name: proxy
      in: query
      required: false
      schema:
        type: string
      description: >-
        Optional outbound proxy for this call (`http://` or `https://`,
        optionally `user:pass@host:port`). The X request runs through it —
        useful for geo-routing or spreading calls across IPs. SOCKS proxies are
        not supported.
      example: http://user:pass@host:8080
  schemas:
    Envelope:
      type: object
      properties:
        status:
          type: boolean
          example: true
        data:
          type: object
        error:
          type: string
          nullable: true
          example: null
    DmConversation:
      type: object
      properties:
        conversation_id:
          type: string
          example: '1000000000000000001:3000000000000000003'
        type:
          type: string
          enum:
            - one_to_one
            - group
        is_muted:
          type: boolean
        has_more:
          type: boolean
          description: Whether this conversation has older messages beyond the preview.
        last_message:
          $ref: '#/components/schemas/DmLastMessage'
        participant_count:
          type: integer
        participants:
          type: array
          items:
            $ref: '#/components/schemas/DmParticipant'
    DmLastMessage:
      type: object
      nullable: true
      description: >-
        Decrypted preview of the most recent message. Only present when
        `encryption_code` is supplied.
      properties:
        text:
          type: string
          example: ok
        sender_id:
          type: string
        from_me:
          type: boolean
        seq_id:
          type: string
        createdAt:
          type: string
          format: date-time
    DmParticipant:
      type: object
      properties:
        type:
          type: string
          example: user
        id:
          type: string
          example: '3000000000000000003'
        userName:
          type: string
          example: jane_doe
        name:
          type: string
          example: Jane Doe
        url:
          type: string
          example: https://x.com/jane_doe
        profilePicture:
          type: string
          nullable: true
        isVerified:
          type: boolean
        isBlueVerified:
          type: boolean
        canDm:
          type: boolean
        hasPublicKey:
          type: boolean
          description: Whether this user has XChat (encrypted DMs) enabled.
        createdAt:
          type: string
          format: date-time
          nullable: true
    Error:
      type: object
      properties:
        status:
          type: boolean
          example: false
        data:
          type: object
          nullable: true
          example: null
        error:
          type: string
  responses:
    BadRequest:
      description: A required field is missing or malformed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            status: false
            data: null
            error: 'Missing required field: text'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Your OmniX API key, e.g. `omnix_live_...`. Billed per call.

````