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

# List / poll messages

> Poll messages across the workspace (active conversations), newest first. Filter to inbound to read incoming responses without webhooks.



## OpenAPI

````yaml /openapi.json get /v1/whatsapp/messages
openapi: 3.1.0
info:
  title: Briq API
  description: Karibu Briq API Documentation
  version: '0.8'
servers:
  - url: https://karibu.briq.tz
    description: Production
  - url: https://pre-release.karibu.briq.tz
    description: Pre-release
  - url: http://karibu.briq.tz
    description: LocalPass
security: []
paths:
  /v1/whatsapp/messages:
    get:
      tags:
        - Karibu-Whatsapp-Messages
      summary: List / poll messages
      description: >-
        Poll messages across the workspace (active conversations), newest first.
        Filter to inbound to read incoming responses without webhooks.
      operationId: wa_list_messages
      parameters:
        - name: conversation_id
          in: query
          required: false
          schema:
            type: string
            format: uuid
        - name: message_type
          in: query
          required: false
          schema:
            type: string
        - name: status
          in: query
          required: false
          schema:
            type: string
        - name: direction
          in: query
          required: false
          schema:
            type: string
            enum:
              - inbound
              - outbound
        - name: since
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: until
          in: query
          required: false
          schema:
            type: string
            format: date-time
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 100
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
            minimum: 0
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  data:
                    $ref: '#/components/schemas/WaMessagePage'
                  errors:
                    type: array
                    nullable: true
                    items:
                      $ref: '#/components/schemas/WaApiError'
                  request_id:
                    type: string
        '403':
          description: API key is not linked to a workspace (WORKSPACE_REQUIRED).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WaErrorEnvelope'
components:
  schemas:
    WaMessagePage:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/WaMessageItem'
        total:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
    WaApiError:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
        field:
          type: string
          nullable: true
    WaErrorEnvelope:
      type: object
      properties:
        success:
          type: boolean
          example: false
        data:
          type: object
          nullable: true
          description: >-
            On a failed send that still produced a record, carries the pollable
            message_id with status='failed'; otherwise null.
        errors:
          type: array
          items:
            $ref: '#/components/schemas/WaApiError'
        request_id:
          type: string
    WaMessageItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
        message_id:
          type: string
        conversation_id:
          type: string
          format: uuid
          nullable: true
        is_outbound:
          type: boolean
        message_type:
          type: string
          example: text
        content:
          type: object
          additionalProperties: true
        status:
          type: string
          enum:
            - pending
            - queued
            - sent
            - delivered
            - read
            - failed
        created_at:
          type: string
          format: date-time
        paired_message_id:
          type: string
          format: uuid
          nullable: true

````