> ## Documentation Index
> Fetch the complete documentation index at: https://openphone-dev.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# List messages

> Get a paginated list of the organization's messages across all conversations, most recently created first. Supports filtering by from (the sender, equality), to (the exact recipient set, via a bare value or a comma-separated `to[all]` list), status, direction, phoneNumberId, userId, and a createdAt date range.



## OpenAPI

````yaml https://openphone-public-api-dev.s3.us-west-2.amazonaws.com/public/openphone-public-api-2026-03-30-dev.json get /messages
openapi: 3.1.0
info:
  title: Quo Public API
  version: 1.0.0
  description: API for connecting with Quo.
  contact:
    name: Quo Support
    email: support@quo.com
    url: https://support.quo.com/
  termsOfService: https://www.quo.com/terms
servers:
  - description: Development server
    url: https://dev-public-api.openphone.dev
security:
  - apiKey: []
tags:
  - description: Operations related to calls
    name: Calls
  - description: >-
      Operations related to call summaries, including AI-generated summaries and
      Sona voice assistant summaries
    name: Call Summaries
  - description: >-
      Operations related to call transcripts, including AI-generated transcripts
      and Sona voice assistant transcripts
    name: Call Transcripts
  - description: Operations related to contacts
    name: Contacts
  - description: Operations related to contact shares
    name: Contact Shares
  - description: Operations related to contact notes
    name: Contact Notes
  - description: Operations related to contact properties
    name: Contact Properties
  - description: Operations related to conversations
    name: Conversations
  - description: Operations related to workspace invitations
    name: Invites
  - description: Operations related to text messages
    name: Messages
  - description: Operations related to the organization
    name: Organization
  - description: Operations related to phone numbers
    name: Phone Numbers
  - description: Operations related to users
    name: Users
  - description: Operations related to webhooks
    name: Webhooks
  - description: >-
      Operations related to webhook events, including delivery history and test
      events
    name: Webhook Events
paths:
  /messages:
    get:
      tags:
        - Messages
      summary: List messages
      description: >-
        Get a paginated list of the organization's messages across all
        conversations, most recently created first. Supports filtering by from
        (the sender, equality), to (the exact recipient set, via a bare value or
        a comma-separated `to[all]` list), status, direction, phoneNumberId,
        userId, and a createdAt date range.
      operationId: listMessages
      parameters:
        - in: query
          name: from
          required: false
          schema:
            anyOf:
              - description: >-
                  A phone number in E.164 format, a short code (3-8 digits), or
                  a non-phone-number caller ID (Anonymous, Restricted, or
                  Blocked).
                examples:
                  - '+15555555555'
                  - '12345'
                  - Anonymous
                anyOf:
                  - description: >-
                      A phone number in E.164 format, including the country
                      code.
                    examples:
                      - '+15555555555'
                    pattern: ^\+[1-9]\d{1,14}$
                    type: string
                  - description: Short code phone number (3-8 digits, no country code)
                    pattern: ^[0-9]{3,8}$
                    type: string
                  - pattern: >-
                      ^([aA](nonymous|NONYMOUS))|([bB](locked|LOCKED))|([rR](estricted|ESTRICTED))$
                    type: string
              - type: 'null'
        - in: query
          name: to
          required: false
          schema:
            anyOf:
              - anyOf:
                  - description: >-
                      A phone number in E.164 format, a short code (3-8 digits),
                      or a non-phone-number caller ID (Anonymous, Restricted, or
                      Blocked).
                    examples:
                      - '+15555555555'
                      - '12345'
                      - Anonymous
                    anyOf:
                      - description: >-
                          A phone number in E.164 format, including the country
                          code.
                        examples:
                          - '+15555555555'
                        pattern: ^\+[1-9]\d{1,14}$
                        type: string
                      - description: Short code phone number (3-8 digits, no country code)
                        pattern: ^[0-9]{3,8}$
                        type: string
                      - pattern: >-
                          ^([aA](nonymous|NONYMOUS))|([bB](locked|LOCKED))|([rR](estricted|ESTRICTED))$
                        type: string
                  - type: object
                    required:
                      - all
                    properties:
                      all:
                        description: >-
                          Comma-separated list of values; matches messages whose
                          recipients are exactly this set (order-independent),
                          not a subset or superset of it.
                        examples:
                          - +15555555555,+15555555556
                        type: string
              - type: 'null'
          style: deepObject
          explode: true
        - in: query
          name: status
          required: false
          schema:
            anyOf:
              - type: string
                enum:
                  - queued
                  - sent
                  - delivered
                  - undelivered
                  - received
                  - failed
                description: The status of the message.
                examples:
                  - sent
              - type: 'null'
        - in: query
          name: direction
          required: false
          schema:
            anyOf:
              - type: string
                enum:
                  - incoming
                  - outgoing
                description: The direction of the message relative to the Quo number.
                examples:
                  - incoming
              - type: 'null'
        - in: query
          name: phoneNumberId
          required: false
          schema:
            anyOf:
              - pattern: ^PN(.*)$
                type: string
              - type: 'null'
        - in: query
          name: userId
          required: false
          schema:
            anyOf:
              - pattern: ^US(.*)$
                type: string
              - type: 'null'
        - in: query
          name: createdAt
          required: false
          schema:
            anyOf:
              - type: object
                properties:
                  gt:
                    anyOf:
                      - format: date-time
                        type: string
                      - type: 'null'
                  lt:
                    anyOf:
                      - format: date-time
                        type: string
                      - type: 'null'
              - type: 'null'
          style: deepObject
          explode: true
        - in: query
          name: limit
          required: false
          schema:
            description: Max number of items to return per page.
            default: 10
            maximum: 50
            minimum: 1
            type: integer
        - in: query
          name: after
          required: false
          schema:
            examples:
              - eyJsYXN0SWQiOiJVU211a09NaXBhIn0
            type: string
          example: eyJsYXN0SWQiOiJVU211a09NaXBhIn0
        - in: header
          name: Quo-Api-Version
          required: true
          schema:
            type: string
            enum:
              - '2026-03-30'
            description: 'API version header. Supported values: 2026-03-30'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                  - nextCursor
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      required:
                        - id
                        - to
                        - from
                        - text
                        - conversationId
                        - direction
                        - status
                        - createdAt
                        - updatedAt
                        - media
                      properties:
                        id:
                          description: The unique identifier of the message.
                          examples:
                            - AC123abc
                          pattern: ^AC(.*)$
                          type: string
                          example: AC123abc
                        to:
                          description: >-
                            Recipients of the message. Includes your Quo number
                            for incoming messages.
                          type: array
                          items:
                            description: >-
                              A phone number in E.164 format, a short code (3-8
                              digits), or a non-phone-number caller ID
                              (Anonymous, Restricted, or Blocked).
                            examples:
                              - '+15555555555'
                              - '12345'
                              - Anonymous
                            example: '+15555555555'
                            anyOf:
                              - description: >-
                                  A phone number in E.164 format, including the
                                  country code.
                                examples:
                                  - '+15555555555'
                                pattern: ^\+[1-9]\d{1,14}$
                                type: string
                                example: '+15555555555'
                              - description: >-
                                  Short code phone number (3-8 digits, no
                                  country code)
                                pattern: ^[0-9]{3,8}$
                                type: string
                              - pattern: >-
                                  ^([aA](nonymous|NONYMOUS))|([bB](locked|LOCKED))|([rR](estricted|ESTRICTED))$
                                type: string
                        from:
                          description: >-
                            A phone number in E.164 format, a short code (3-8
                            digits), or a non-phone-number caller ID (Anonymous,
                            Restricted, or Blocked).
                          examples:
                            - '+15555555555'
                            - '12345'
                            - Anonymous
                          example: '+15555555555'
                          anyOf:
                            - description: >-
                                A phone number in E.164 format, including the
                                country code.
                              examples:
                                - '+15555555555'
                              pattern: ^\+[1-9]\d{1,14}$
                              type: string
                              example: '+15555555555'
                            - description: >-
                                Short code phone number (3-8 digits, no country
                                code)
                              pattern: ^[0-9]{3,8}$
                              type: string
                            - pattern: >-
                                ^([aA](nonymous|NONYMOUS))|([bB](locked|LOCKED))|([rR](estricted|ESTRICTED))$
                              type: string
                        text:
                          description: The content of the message.
                          examples:
                            - Hello, world!
                          type: string
                          example: Hello, world!
                        phoneNumberId:
                          anyOf:
                            - description: >-
                                The unique identifier of the Quo phone number
                                that the message was sent from.
                              examples:
                                - PN123abc
                              pattern: ^PN(.*)$
                              type: string
                              example: PN123abc
                            - type: 'null'
                        conversationId:
                          description: The unique identifier of the conversation.
                          examples:
                            - CN123abc
                          pattern: ^CN(.*)$
                          type: string
                          example: CN123abc
                        direction:
                          type: string
                          enum:
                            - incoming
                            - outgoing
                          description: >-
                            The direction of the message relative to the Quo
                            number.
                          examples:
                            - incoming
                          example: incoming
                        userId:
                          anyOf:
                            - description: >-
                                The unique identifier of the user or system
                                actor (e.g. Sona) who sent the message. Null for
                                incoming messages.
                              examples:
                                - US123abc
                              example: US123abc
                              anyOf:
                                - pattern: ^US(.*)$
                                  type: string
                                - pattern: ^SYU(.*)$
                                  type: string
                            - type: 'null'
                        status:
                          type: string
                          enum:
                            - queued
                            - sent
                            - delivered
                            - undelivered
                            - received
                            - failed
                          description: The status of the message.
                          examples:
                            - sent
                          example: sent
                        createdAt:
                          description: >-
                            The timestamp when the message was created, in ISO
                            8601 format.
                          examples:
                            - '2022-01-01T00:00:00Z'
                          format: date-time
                          type: string
                          example: '2022-01-01T00:00:00Z'
                        updatedAt:
                          description: >-
                            The timestamp when the message status was last
                            updated, in ISO 8601 format.
                          examples:
                            - '2022-01-01T00:00:00Z'
                          format: date-time
                          type: string
                          example: '2022-01-01T00:00:00Z'
                        media:
                          description: Media attached to the message.
                          type: array
                          items:
                            type: object
                            required:
                              - url
                            properties:
                              url:
                                description: The URL of the attached media.
                                examples:
                                  - https://example.com/image.png
                                type: string
                                example: https://example.com/image.png
                              type:
                                anyOf:
                                  - description: The MIME type of the attached media.
                                    examples:
                                      - image/png
                                    type: string
                                    example: image/png
                                  - type: 'null'
                  nextCursor:
                    description: >-
                      Cursor for the next page, or null when there are no more
                      pages.
                    examples:
                      - eyJsYXN0SWQiOiJVU211a09NaXBhIn0
                    example: eyJsYXN0SWQiOiJVU211a09NaXBhIn0
                    anyOf:
                      - type: string
                      - type: 'null'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Bad Request
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: The input was invalid
                docs: https://quo.com/docs
                title: Bad Request
                errors:
                  - path: /messageId
                    message: Expected string to match '^AC(.*)$'
                    value: abc123
                    schema:
                      type: TemplateLiteral
                      pattern: ^AC(.*)$
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Unauthorized
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: Unauthorized
                docs: https://quo.com/docs
                title: Unauthorized
                trace: '6897907457496870895'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Forbidden
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: The user is forbidden from accessing the message
                docs: https://quo.com/docs
                title: Forbidden
                trace: '6897907457496870895'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Not Found
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: Message not found
                docs: https://quo.com/docs
                title: Not Found
                trace: '6897907457496870895'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Unprocessable Entity
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: The message has permanently failed and cannot be retried
                docs: https://quo.com/docs
                title: Unprocessable Entity
                trace: '6897907457496870895'
        '500':
          description: Unknown Error
          content:
            application/json:
              schema:
                type: object
                required:
                  - message
                  - docs
                  - title
                properties:
                  message:
                    type: string
                  docs:
                    const: https://quo.com/docs
                    type: string
                  title:
                    const: Unknown
                    type: string
                  trace:
                    type: string
                  errors:
                    type: array
                    items:
                      type: object
                      required:
                        - path
                        - message
                        - schema
                      properties:
                        path:
                          type: string
                        message:
                          type: string
                        value: {}
                        schema:
                          type: object
                          required:
                            - type
                          properties:
                            type:
                              type: string
              example:
                message: We have encountered an unknown error
                docs: https://quo.com/docs
                title: Unknown
                trace: '6897907457496870895'
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      in: header
      name: Authorization
      type: apiKey

````