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

# List responses of a WhatsApp Flow

> Retrieve the completed responses of a WhatsApp Flow, filtered by response date (dateFrom/dateTo). When no dates are provided, it defaults to the last 30 days; when only one date is provided, the other bound is left open. Results are ordered by response date descending and paginated with page/pageSize. Note: responded_at reflects the last time the response was updated — normally when the contact completed the flow, but it can move forward if the response is reprocessed internally (e.g. a media retry), in which case the response reappears in a later date window.



## OpenAPI

````yaml get /api/public/whatsapp-flows/{flowId}/responses
openapi: 3.0.0
info:
  title: Vambe AI API
  description: Vambe AI documentation
  version: '1.0'
  contact: {}
servers:
  - url: https://api.vambe.me
    description: Production Server
security: []
tags:
  - name: Vambe AI
    description: ''
paths:
  /api/public/whatsapp-flows/{flowId}/responses:
    get:
      tags:
        - WhatsApp Flows
      summary: List responses of a WhatsApp Flow
      description: >-
        Retrieve the completed responses of a WhatsApp Flow, filtered by
        response date (dateFrom/dateTo). When no dates are provided, it defaults
        to the last 30 days; when only one date is provided, the other bound is
        left open. Results are ordered by response date descending and paginated
        with page/pageSize. Note: responded_at reflects the last time the
        response was updated — normally when the contact completed the flow, but
        it can move forward if the response is reprocessed internally (e.g. a
        media retry), in which case the response reappears in a later date
        window.
      operationId: WhatsappFlowPublicController_listFlowResponses
      parameters:
        - name: x-api-key
          in: header
          description: >-
            API key needed to authorize the request. The key role must include
            the templates read permission.
          required: true
          schema:
            type: string
        - name: flowId
          required: true
          in: path
          description: ID of the WhatsApp Flow
          schema:
            type: string
            example: df980fc8-b6db-4820-bf22-2969482d106d
        - name: dateFrom
          required: false
          in: query
          description: >-
            Return only responses whose response date (responded_at) is at or
            after this timestamp. Must be a full ISO 8601 datetime including
            timezone, e.g. `2026-06-01T00:00:00Z` or `2026-06-01T00:00:00-04:00`
            (date-only values like `2026-06-01` are rejected). Defaults to 30
            days ago when neither dateFrom nor dateTo is provided; if dateTo is
            provided without dateFrom, no lower bound is applied.
          schema:
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            example: '2026-06-01T00:00:00.000Z'
            type: string
        - name: dateTo
          required: false
          in: query
          description: >-
            Return only responses whose response date (responded_at) is at or
            before this timestamp. Must be a full ISO 8601 datetime including
            timezone, e.g. `2026-07-01T00:00:00Z`. If omitted, no upper bound is
            applied.
          schema:
            format: date-time
            pattern: >-
              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
            example: '2026-07-01T00:00:00.000Z'
            type: string
        - name: page
          required: false
          in: query
          description: Page number, starting at 1
          schema:
            minimum: 1
            maximum: 9007199254740991
            example: 1
            type: number
        - name: pageSize
          required: false
          in: query
          description: Number of responses per page (1-200)
          schema:
            minimum: 1
            maximum: 200
            example: 50
            type: number
      responses:
        '200':
          description: Flow responses retrieved successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          example: 7c9b3f1a-2d4e-4f6a-8b0c-1d2e3f4a5b6c
                        form_data:
                          type: object
                          example:
                            rating: '5'
                            comment: Great service
                        status:
                          type: string
                          example: completed
                        sent_at:
                          type: string
                          example: '2026-06-15T10:00:00.000Z'
                        responded_at:
                          type: string
                          example: '2026-06-15T10:05:00.000Z'
                        contact:
                          type: object
                          nullable: true
                          properties:
                            id:
                              type: string
                              example: df980fc8-b6db-4820-bf22-2969482d106d
                            name:
                              type: string
                              example: John Doe
                            phone:
                              type: string
                              example: '+56912345678'
                            email:
                              type: string
                              example: john@example.com
                  page:
                    type: number
                    example: 1
                  pageSize:
                    type: number
                    example: 50
                  total:
                    type: number
                    example: 120
                  totalPages:
                    type: number
                    example: 3
                  hasNextPage:
                    type: boolean
                    example: true
        '400':
          description: Invalid query parameters.
        '401':
          description: Invalid or missing API key.
        '404':
          description: Flow not found.

````