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

# Submit post-call feedback

> Record the participant's own verdict on a call — a thumbs rating, plus two optional checklists split by who fixes the problem: `video_issues` for call quality (transport, devices, lip-sync) and `agent_issues` for the AI's behaviour. Issue keys must come from `GET /meetings/feedback/catalog`; unknown keys are rejected with a 400.

One row per meeting. Submitting again for the same meeting replaces the previous answer and returns `200` instead of `201`, so a participant reloading the post-call page cannot create duplicates.



## OpenAPI

````yaml POST /meetings/{meetingId}/feedback
openapi: 3.0.0
info:
  title: WaterrAI API
  version: 1.0.0
  description: >-
    REST API for the WaterrAI meeting platform — create scenarios, spin up
    AI-driven meetings, fetch transcripts and analyses.
  contact:
    name: Support
    email: harshit@waterr.ai
servers:
  - url: https://api.waterr.ai/v1
    description: Production
security:
  - apiKeyAuth: []
tags:
  - name: Users
  - name: Personas
  - name: Voices
  - name: Scenarios
  - name: Goals
  - name: Meetings
  - name: Analyses
  - name: Recordings
  - name: Transcripts
  - name: Tools
    description: >-
      Account-scoped custom function (tool) definitions the LLM can call
      mid-meeting.
  - name: Scenario Tools
    description: >-
      Per-scenario attachments linking a scenario to one or more tool
      definitions.
  - name: Guardrails
    description: >-
      Account-scoped named prompt fragments appended to a scenario's system
      prompt.
  - name: Scenario Guardrails
    description: Per-scenario attachments linking a scenario to one or more guardrails.
  - name: Meeting Skills
    description: Account-scoped invokable instruction packs the agent loads mid-meeting.
  - name: Scenario Meeting Skills
    description: Per-scenario attachments linking a scenario to one or more skills.
  - name: Memories
    description: >-
      Facts your agents remember, in containers named by user_memory_tag and
      shared across agents.
paths:
  /meetings/{meetingId}/feedback:
    post:
      tags:
        - Meetings
      summary: Submit post-call feedback
      description: >-
        Record the participant's own verdict on a call — a thumbs rating, plus
        two optional checklists split by who fixes the problem: `video_issues`
        for call quality (transport, devices, lip-sync) and `agent_issues` for
        the AI's behaviour. Issue keys must come from `GET
        /meetings/feedback/catalog`; unknown keys are rejected with a 400.


        One row per meeting. Submitting again for the same meeting replaces the
        previous answer and returns `200` instead of `201`, so a participant
        reloading the post-call page cannot create duplicates.
      parameters:
        - name: meetingId
          in: path
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - rating
              properties:
                rating:
                  type: string
                  enum:
                    - good
                    - had_issues
                  description: The participant's overall verdict.
                video_issues:
                  type: array
                  items:
                    type: string
                  description: Call-quality issue keys from the catalogue's `video` group.
                  example:
                    - video_froze
                    - av_out_of_sync
                agent_issues:
                  type: array
                  items:
                    type: string
                  description: >-
                    Agent-behaviour issue keys from the catalogue's `agent`
                    group.
                  example:
                    - interrupted_me
                    - slow_to_respond
                comment:
                  type: string
                  maxLength: 2000
                  description: >-
                    Free-text remarks. Encrypted at rest, so it cannot be
                    filtered or sorted server-side.
                client:
                  type: object
                  description: >-
                    Optional triage context. Only `user_agent`, `platform`,
                    `screen` and `connection` are stored.
                  properties:
                    user_agent:
                      type: string
                    platform:
                      type: string
                    screen:
                      type: string
                    connection:
                      type: string
      responses:
        '200':
          description: Existing feedback for this meeting was replaced
        '201':
          description: Feedback recorded
        '400':
          description: Invalid payload — unknown rating or issue key, or comment too long
        '401':
          description: Unauthorized
        '404':
          description: Meeting not found, or not yours
        '500':
          description: Server error
      security:
        - apiKeyAuth: []
components:
  securitySchemes:
    apiKeyAuth:
      type: http
      scheme: bearer
      bearerFormat: wai_...
      description: >-
        API key from waterr.ai/settings?tab=api-keys. Send as `Authorization:
        Bearer wai_<your_key>`.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.