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

# List messages

> Messages the receptionist took for the team, newest first.



## OpenAPI

````yaml /api-reference/openapi.json get /messages
openapi: 3.1.0
info:
  title: LobbyStack API
  version: v1
  description: >-
    Read calls, contacts, appointments and messages, book appointments, and
    subscribe to webhooks. Authenticate with an API key in the Authorization
    header. Each key allows 120 requests per minute by default.
servers:
  - url: https://app.lobbystack.com/api/v1
security:
  - bearerAuth: []
tags:
  - name: Business
  - name: Calls
  - name: Contacts
  - name: Appointments
  - name: Messages
  - name: Knowledge
  - name: Webhooks
paths:
  /messages:
    get:
      tags:
        - Messages
      summary: List messages
      description: Messages the receptionist took for the team, newest first.
      operationId: listMessages
      parameters:
        - name: limit
          in: query
          description: Items per page, 1 to 100. Defaults to 25.
          schema:
            type: integer
            minimum: 1
            maximum: 100
        - name: cursor
          in: query
          description: The next_cursor value from the previous page.
          schema:
            type: string
        - name: status
          in: query
          description: open or done.
          schema:
            type: string
            enum:
              - open
              - done
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - next_cursor
                  - has_more
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Message'
                  next_cursor:
                    type:
                      - string
                      - 'null'
                    description: >-
                      Pass as cursor to get the next page. Null on the last
                      page.
                  has_more:
                    type: boolean
        '400':
          description: The request is invalid (invalid_request).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: The API key is missing, invalid, or revoked (unauthorized).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: The API key lacks the messages:read scope (insufficient_scope).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: >-
            Too many requests (rate_limited). Wait for the Retry-After header's
            number of seconds.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
          headers:
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait.
      security:
        - bearerAuth: []
components:
  schemas:
    Message:
      type: object
      properties:
        id:
          description: Stable identifier (UUID).
          type: string
          format: uuid
        status:
          type: string
          enum:
            - open
            - done
        title:
          type: string
        body:
          description: The full message as the team sees it.
          type: string
        caller_name:
          anyOf:
            - type: string
            - type: 'null'
        callback_phone:
          anyOf:
            - type: string
            - type: 'null'
        urgency:
          anyOf:
            - type: string
              enum:
                - low
                - normal
                - urgent
            - type: 'null'
        callback_window:
          anyOf:
            - type: string
            - type: 'null'
        channel:
          anyOf:
            - type: string
              enum:
                - voice
                - web_voice
                - web_chat
                - sms
            - type: 'null'
        call_id:
          anyOf:
            - description: Stable identifier (UUID).
              type: string
              format: uuid
            - type: 'null'
        created_at:
          description: ISO 8601 timestamp in UTC.
          type: string
          format: date-time
        updated_at:
          description: ISO 8601 timestamp in UTC.
          type: string
          format: date-time
      required:
        - id
        - status
        - title
        - body
        - caller_name
        - callback_phone
        - urgency
        - callback_window
        - channel
        - call_id
        - created_at
        - updated_at
      additionalProperties: false
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
                - invalid_request
                - unauthorized
                - forbidden
                - insufficient_scope
                - not_found
                - conflict
                - idempotency_key_reused
                - idempotency_request_in_progress
                - booking_disabled
                - booking_requires_confirmation
                - slot_unavailable
                - rate_limited
                - rate_limit_unavailable
                - method_not_allowed
                - internal_error
            message:
              type: string
            details:
              type: array
              items:
                type: object
                properties:
                  path:
                    type: string
                  message:
                    type: string
                required:
                  - path
                  - message
                additionalProperties: false
          required:
            - code
            - message
          additionalProperties: false
      required:
        - error
      additionalProperties: false
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An API key from Settings > API keys. Scopes: business:read,
        business:write, calls:read, contacts:read, contacts:write,
        appointments:read, appointments:write, messages:read, knowledge:write,
        webhooks:manage.

````