> ## 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 Session Feedback

> Record the interviewee's overall session rating and feedback.

This is the star rating shown on the completion screen after the interview
ends. Unlike turn feedback, this captures the overall experience rather
than reactions to individual agent turns.

Uses mode='interview_turn' with turn_index=-1 to indicate session-level
feedback (avoids needing a DB migration for a new mode value). The rating
and suggestions are stored in context_log as structured JSON.

Idempotent: repeated submissions overwrite the previous session feedback.



## OpenAPI

````yaml /openapi.json post /v1/interview/session/{session_id}/feedback/session
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/session:
    post:
      tags:
        - interview-feedback
      summary: Submit Session Feedback
      description: >-
        Record the interviewee's overall session rating and feedback.


        This is the star rating shown on the completion screen after the
        interview

        ends. Unlike turn feedback, this captures the overall experience rather

        than reactions to individual agent turns.


        Uses mode='interview_turn' with turn_index=-1 to indicate session-level

        feedback (avoids needing a DB migration for a new mode value). The
        rating

        and suggestions are stored in context_log as structured JSON.


        Idempotent: repeated submissions overwrite the previous session
        feedback.
      operationId: >-
        submit_session_feedback_v1_interview_session__session_id__feedback_session_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/SessionFeedbackIn'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/app__api__interview_feedback__SessionFeedbackOut
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    SessionFeedbackIn:
      properties:
        rating:
          type: number
          maximum: 5
          minimum: 0
          title: Rating
          description: Star rating from 0 to 5 (half stars allowed)
        suggestions:
          items:
            type: string
          type: array
          maxItems: 10
          title: Suggestions
          description: Selected feedback suggestion chips
        additional_feedback:
          anyOf:
            - type: string
              maxLength: 2000
            - type: 'null'
          title: Additional Feedback
          description: Free-form additional feedback
      type: object
      required:
        - rating
      title: SessionFeedbackIn
      description: Session-level feedback submitted at the end of an interview.
    app__api__interview_feedback__SessionFeedbackOut:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        rating:
          type: number
          title: Rating
        suggestions:
          items:
            type: string
          type: array
          title: Suggestions
        additional_feedback:
          anyOf:
            - type: string
            - type: 'null'
          title: Additional Feedback
      type: object
      required:
        - id
        - rating
        - suggestions
        - additional_feedback
      title: SessionFeedbackOut
    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_`).'

````