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

# List in-app messages

> List eligible in-app messages for a customer. Returns pending messages that are scheduled, not expired, and within impression limits.



## OpenAPI

````yaml GET /customers/{id}/inapp-messages
openapi: 3.0.1
info:
  title: Masivo's REST API
  description: Learn how to use Masivo's REST API
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://app.masivo.ai/api/storefront/v1
security:
  - bearerAuth: []
paths:
  /customers/{id}/inapp-messages:
    get:
      description: >-
        List eligible in-app messages for a customer. Returns pending messages
        that are scheduled, not expired, and within impression limits.
      parameters:
        - in: path
          name: id
          description: The customer unique identifier in your system
          required: true
          schema:
            type: string
        - in: query
          name: brand_id
          description: Filter messages by brand id
          schema:
            type: string
        - in: query
          name: trigger
          description: >-
            Filter by trigger event type. Returns messages with no trigger or a
            matching trigger_event
          schema:
            type: string
        - in: query
          name: types
          description: Comma-separated message types to include
          schema:
            type: string
            example: modal,banner
        - in: query
          name: limit
          description: Maximum messages to return (1–50, default 10)
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 10
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      messages:
                        type: array
                        items:
                          $ref: '#/components/schemas/InAppMessage'
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    InAppMessage:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: The in-app message unique identifier
        template_id:
          type: string
          format: uuid
          description: Source template id
          nullable: true
        campaign_id:
          type: string
          format: uuid
          description: Linked campaign id
          nullable: true
        type:
          type: string
          enum:
            - modal
            - fullscreen
            - slideup
            - banner
          description: Message surface type
        priority:
          type: integer
          description: Higher values are returned first
        expires_at:
          type: string
          format: date-time
          description: Expiration timestamp
          nullable: true
        trigger:
          type: object
          properties:
            event:
              type: string
              description: Event type that must be active to show this message
        content:
          $ref: '#/components/schemas/InAppMessageContent'
        display_rules:
          $ref: '#/components/schemas/InAppDisplayRules'
        data:
          type: object
          description: Additional payload metadata
    Error:
      required:
        - error
        - details
      type: object
      properties:
        error:
          type: string
        details:
          type: string
    InAppMessageContent:
      type: object
      properties:
        title:
          type: string
        body:
          type: string
        image_url:
          type: string
          description: Optional hero image URL
        html:
          type: string
          description: Optional HTML body for rich content
        sections:
          type: array
          items:
            type: object
            properties:
              title:
                type: string
              items:
                type: array
                items:
                  type: object
                  properties:
                    label:
                      type: string
                    value:
                      type: string
                    highlight:
                      type: boolean
        buttons:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              text:
                type: string
              action:
                type: string
                enum:
                  - dismiss
                  - deeplink
                  - url
                  - custom
              value:
                type: string
        link:
          type: string
        pinned:
          type: boolean
    InAppDisplayRules:
      type: object
      properties:
        max_impressions:
          type: integer
          description: Maximum times the message can be shown
        min_interval_seconds:
          type: integer
          description: Minimum seconds between shown impressions
        priority:
          type: integer
          description: Display priority when multiple messages are eligible
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````