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

# Submit Turn Feedback

> Record an interviewee's reaction to one agent turn.

Idempotent on (conversation_id, turn_index): repeated submissions for the
same turn overwrite the previous reaction and comment instead of stacking
rows. This matches the user mental model where the visible thumbs button
represents one current choice, not a history of clicks.



## OpenAPI

````yaml /openapi.json post /v1/interview/session/{session_id}/feedback
openapi: 3.1.0
info:
  title: Ontora API
  description: >-
    Ontora's public API. Covers interview campaigns, transcripts, synthesis
    reports, graph queries, webhooks, and workspace management. 


    **Authentication**: endpoints accept either a Clerk JWT (`Authorization:
    Bearer <token>`) or a workspace API key (`X-API-Key: ont_...`). Workspace
    keys are managed via `/v1/api-keys`.
  version: 0.1.0
servers: []
security:
  - ClerkJWT: []
  - WorkspaceApiKey: []
tags:
  - name: interviews
    description: Campaign CRUD, lifecycle, contacts, question sets.
  - name: campaign-insights
    description: Synthesis outputs — cartography, roadmap, personas, conversations.
  - name: interview-query
    description: Graph RAG query over campaign data.
  - name: campaign-reports
    description: Versioned synthesis Reports — manual regenerate, version history.
  - name: interview-export
    description: Markdown / ZIP exports of transcripts and reports.
  - name: api-keys
    description: Manage workspace-scoped API keys for programmatic access.
  - name: webhook-endpoints
    description: Outbound webhook endpoints for automation.
  - name: booking
    description: Public self-scheduling endpoints for interview participants.
  - name: join
    description: Public QR-code / share-link self-registration for campaign participants.
  - name: workspaces
    description: Workspace and membership management.
  - name: vaults
    description: Context vault management.
paths:
  /v1/interview/session/{session_id}/feedback:
    post:
      tags:
        - interview-feedback
      summary: Submit Turn Feedback
      description: >-
        Record an interviewee's reaction to one agent turn.


        Idempotent on (conversation_id, turn_index): repeated submissions for
        the

        same turn overwrite the previous reaction and comment instead of
        stacking

        rows. This matches the user mental model where the visible thumbs button

        represents one current choice, not a history of clicks.
      operationId: submit_turn_feedback_v1_interview_session__session_id__feedback_post
      parameters:
        - name: session_id
          in: path
          required: true
          schema:
            type: string
            title: Session Id
        - name: token
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TurnFeedbackIn'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TurnFeedbackOut'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    TurnFeedbackIn:
      properties:
        turn_index:
          type: integer
          minimum: 0
          title: Turn Index
        reaction:
          type: string
          enum:
            - up
            - down
          title: Reaction
        comment:
          anyOf:
            - type: string
              maxLength: 2000
            - type: 'null'
          title: Comment
      type: object
      required:
        - turn_index
        - reaction
      title: TurnFeedbackIn
    TurnFeedbackOut:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        turn_index:
          type: integer
          title: Turn Index
        reaction:
          type: string
          enum:
            - up
            - down
          title: Reaction
        comment:
          anyOf:
            - type: string
            - type: 'null'
          title: Comment
      type: object
      required:
        - id
        - turn_index
        - reaction
        - comment
      title: TurnFeedbackOut
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ClerkJWT:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Clerk-issued RS256 JWT.
    WorkspaceApiKey:
      type: apiKey
      in: header
      name: X-API-Key
      description: 'Workspace-scoped API key (prefix: `ont_`).'

````