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

# List the current conversation window

> Requires `conversations:read`. This endpoint returns the first live window and does not currently accept a continuation cursor.



## OpenAPI

````yaml /openapi.json get /conversations
openapi: 3.0.3
info:
  title: Visito M2M API
  version: 1.0.0
  description: >-
    Tenant-scoped server-to-server API for channels, conversations, commerce,
    custom AI tools, and WhatsApp templates. Send operations are asynchronous
    and return queued acknowledgements. Expansion adds conversation controls,
    knowledge, sales opportunities, delivery status, reporting, and signed
    webhooks.
servers:
  - url: https://platform-api.visitoai.com/m2m/v1
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Channels
  - name: Conversations
  - name: Commerce
  - name: Custom tools
  - name: WhatsApp templates
  - name: Properties
  - name: Knowledge
  - name: Sales CRM
  - name: Delivery
  - name: Reporting
  - name: Webhooks
paths:
  /conversations:
    get:
      tags:
        - Conversations
      summary: List the current conversation window
      description: >-
        Requires `conversations:read`. This endpoint returns the first live
        window and does not currently accept a continuation cursor.
      operationId: listConversations
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
        - name: view
          in: query
          schema:
            type: string
            enum:
              - all
              - needs_reply
              - handoff
            default: all
        - name: replyState
          in: query
          schema:
            type: string
            enum:
              - all
              - failed
            default: all
        - name: policyStatus
          in: query
          schema:
            type: string
            enum:
              - all
              - active
              - archived
              - blocked
            default: all
        - name: responseMode
          in: query
          schema:
            type: string
            enum:
              - all
              - ai
              - manual
              - frozen
            default: all
        - name: optedOut
          in: query
          description: Filter conversations by the current contact opt-out state.
          schema:
            type: boolean
      responses:
        '200':
          description: Current conversation window
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversationsResponse'
        default:
          $ref: '#/components/responses/Error'
components:
  schemas:
    ConversationsResponse:
      type: object
      required:
        - conversations
        - needsReplyCount
        - handoffCount
        - hasMore
        - asOf
        - version
        - liveWindow
      properties:
        conversations:
          type: array
          items:
            $ref: '#/components/schemas/Conversation'
        needsReplyCount:
          type: integer
        handoffCount:
          type: integer
        nextCursor:
          type: string
        hasMore:
          type: boolean
        asOf:
          type: string
          format: date-time
        version:
          type: integer
        liveWindow:
          type: object
          required:
            - limit
            - maxRows
            - mode
          properties:
            limit:
              type: integer
            maxRows:
              type: integer
            mode:
              type: string
              enum:
                - first_page_realtime
                - cursor_page
    Conversation:
      type: object
      required:
        - conversationId
        - tenantId
        - channel
        - participant
        - unreadCount
        - needsReply
        - lastMessageAt
        - lastMessageText
        - lastMessageRole
        - messageCount
      properties:
        conversationId:
          type: string
        conversationKey:
          type: string
        tenantId:
          type: string
        channel:
          type: string
          enum:
            - whatsapp
            - instagram
            - messenger
            - webchat
        participant:
          $ref: '#/components/schemas/ConversationParticipant'
        unreadCount:
          type: integer
        needsReply:
          type: boolean
        lastMessageAt:
          type: string
          format: date-time
        lastMessageText:
          type: string
        lastMessageRole:
          type: string
        latestReplyStatus:
          type: string
          enum:
            - queued
            - sent
            - failed
            - blocked
            - publish_failed
        policyStatus:
          type: string
          enum:
            - active
            - waiting_tool
            - handoff_requested
            - closed
            - archived
            - blocked
        responseMode:
          type: string
          enum:
            - ai
            - manual
            - frozen
        messageCount:
          type: integer
      additionalProperties: true
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
              example: M2M_AUTH_INSUFFICIENT_SCOPE
            message:
              type: string
            details:
              type: object
              additionalProperties: true
      example:
        error:
          code: M2M_AUTH_INSUFFICIENT_SCOPE
          message: M2M credential does not have required scope.
          details:
            requiredScopes:
              - conversations:write
            missingScopes:
              - conversations:write
    ConversationParticipant:
      type: object
      required:
        - id
      properties:
        id:
          type: string
        displayName:
          type: string
        email:
          type: string
        phone:
          type: string
        username:
          type: string
        avatarUrl:
          type: string
          format: uri
  responses:
    Error:
      description: Structured error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Visito M2M API key
      description: Server-side tenant-scoped credential created from Build > API Keys.

````