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

# Read a private conversation page

> Account-bound messages with another wallet, at most 60 per page. Send via POST /account kind dm; mark read with dm-seen. Never cache for another user.



## OpenAPI

````yaml /api-reference/vibemarket_openapi.json get /dm/messages
openapi: 3.0.3
info:
  title: vibe.market API
  version: '2026-09-10'
  description: >-
    Consumer HTTP API for the current vibe.market at
    https://vibechain.com/market. This is an experimental protocol; review
    https://vibechain.com/terms. Public reads do not require Classic API keys.
    Discover runtime graphs rather than hardcoding a revision. The
    /api/vibemarket2 namespace is intentional. Operational provider webhooks and
    operator-only controls are excluded.
  termsOfService: https://vibechain.com/terms
servers:
  - url: https://build.vibechain.com/api/vibemarket2
    description: Current-market backend
security: []
tags:
  - name: Discovery
  - name: Indexed market
  - name: Board
  - name: Live updates
  - name: Creators
  - name: Artwork
  - name: Accounts
  - name: Community
  - name: Private messages
  - name: Scoped sessions
paths:
  /dm/messages:
    get:
      tags:
        - Private messages
      summary: Read a private conversation page
      description: >-
        Account-bound messages with another wallet, at most 60 per page. Send
        via POST /account kind dm; mark read with dm-seen. Never cache for
        another user.
      operationId: vm2048
      parameters:
        - name: Origin
          in: header
          required: true
          schema:
            type: string
            enum:
              - https://vibechain.com
              - https://www.vibechain.com
              - https://vibe.market
              - https://www.vibe.market
          description: Must match the approved origin in the signed consent.
        - name: X-VM2-Wallet
          in: header
          required: true
          schema:
            $ref: '#/components/schemas/Address'
          description: Must match the account session wallet.
        - name: with
          in: query
          required: true
          schema:
            $ref: '#/components/schemas/Address'
          description: Other wallet.
        - name: before
          in: query
          required: false
          schema:
            type: string
            pattern: ^[a-f0-9]{0,40}$
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  lines:
                    type: array
                    items:
                      $ref: '#/components/schemas/DmLine'
                  next:
                    type: string
                    nullable: true
                required:
                  - lines
                  - next
        '400':
          description: Invalid input, signature or action.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session missing or invalid.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Origin, wallet or action not authorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate/admission limit. Honor Retry-After if present.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '503':
          description: Dependency or capacity unavailable. Retry with backoff.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - AccountSession: []
components:
  schemas:
    Address:
      type: string
      pattern: ^0x[0-9a-fA-F]{40}$
    DmLine:
      type: object
      properties:
        id:
          type: string
        thread:
          type: string
        from:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        to:
          type: string
          pattern: ^0x[0-9a-fA-F]{40}$
        text:
          type: string
        at:
          type: integer
          format: int64
      required:
        - id
        - thread
        - from
        - to
        - text
        - at
    Error:
      type: object
      properties:
        error:
          type: string
      required:
        - error
  securitySchemes:
    AccountSession:
      type: http
      scheme: bearer
      bearerFormat: 64-character lowercase hexadecimal token
      description: >-
        Origin-bound account token. Also send Origin and X-VM2-Wallet.
        First-party website proxies use the HttpOnly vm2-session cookie;
        arbitrary third-party origins are not supported.

````