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

# Get interviews

> Retrieve all interview sessions. If team_id is not provided, returns interviews for all teams in the organization.



## OpenAPI

````yaml get /v1/interviews
openapi: 3.0.2
info:
  title: Ribbon API
  version: v1
  description: API for Ribbon
servers:
  - url: https://app.ribbon.ai/be-api/
  - url: https://staging.ribbon.ai/be-api/
security: []
tags:
  - name: Ribbon Public API
    description: ''
  - name: private_routes
    description: ''
paths:
  /v1/interviews:
    get:
      tags:
        - Ribbon Public API
      summary: Get interviews
      description: >-
        Retrieve all interview sessions. If team_id is not provided, returns
        interviews for all teams in the organization.
      parameters:
        - in: query
          name: limit
          description: The number of interviews to return.
          schema:
            type: integer
            default: 20
          required: false
        - in: query
          name: offset
          description: The offset for the list of interviews.
          schema:
            type: integer
            default: 0
          required: false
        - in: query
          name: status
          description: >-
            Filter interviews by status. Omit to return all (completed and
            incomplete).
          schema:
            default: null
            type: string
            enum:
              - incomplete
              - completed
              - null
            nullable: true
          required: false
        - in: query
          name: team_id
          description: >-
            Filter interviews by team ID. If not provided, returns interviews
            for all teams in the organization.
          schema:
            type: string
            default: null
            nullable: true
          required: false
        - in: query
          name: transcript
          description: >-
            How much transcript data to return. 'full' (default) returns the
            transcript, word-level timestamps, and question mapping. 'text'
            returns the raw transcript only. 'none' omits all transcript fields.
          schema:
            default: full
            type: string
            enum:
              - full
              - text
              - none
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInterviewsResponse'
        '403':
          description: The team_id does not belong to authenticated organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          $ref: '#/components/responses/UNPROCESSABLE_ENTITY'
        default:
          $ref: '#/components/responses/DEFAULT_ERROR'
      security:
        - BearerAuth: []
components:
  schemas:
    GetInterviewsResponse:
      type: object
      properties:
        interviews:
          type: array
          description: A list of interviews.
          items:
            $ref: '#/components/schemas/Interview'
      required:
        - interviews
      additionalProperties: false
    ErrorResponse:
      type: object
      properties:
        message:
          type: string
          description: The error message
        code:
          type: integer
          description: The status code
        status:
          type: string
          description: The status
      required:
        - code
        - message
        - status
      additionalProperties: false
    Interview:
      type: object
      properties:
        interview_flow_id:
          type: string
          description: The ID of the interview flow.
        interview_id:
          type: string
          description: The ID of the interview.
        team_id:
          type: string
          description: The ID of the team this interview belongs to.
        status:
          description: The status of the interview.
          type: string
          enum:
            - incomplete
            - completed
        interview_data:
          description: >-
            Data for the completed interview. If the interview is incomplete,
            this field will be null.
          anyOf:
            - $ref: '#/components/schemas/InterviewData'
            - type: object
              nullable: true
      required:
        - interview_data
        - interview_flow_id
        - interview_id
        - status
        - team_id
      additionalProperties: false
    Error:
      type: object
      properties:
        code:
          type: integer
          description: Error code
        status:
          type: string
          description: Error name
        message:
          type: string
          description: Error message
        errors:
          type: object
          description: Errors
          additionalProperties: {}
      additionalProperties: false
    InterviewData:
      type: object
      properties:
        transcript:
          type: string
          description: Full transcript of the interview.
        transcript_with_timestamp:
          type: array
          description: Full transcript of the interview with word-level timestamps.
          items:
            $ref: '#/components/schemas/Segment'
        questions_to_transcript_mapping:
          type: array
          description: >-
            A mapping of all the script questions to the actual interview
            transcript segments.
          items:
            $ref: '#/components/schemas/QuestionToTranscriptMapping'
        audio_url:
          type: string
          default: null
          description: Url to the interview audio recording.
          nullable: true
        video_url:
          type: string
          default: null
          description: Url to the interview video recording.
          nullable: true
        summary:
          type: string
          default: null
          description: Summary of the interview.
          nullable: true
        scores:
          default: null
          description: Interview scores grouped together.
          anyOf:
            - $ref: '#/components/schemas/Scores'
            - type: object
              nullable: true
        interviewee_email_address:
          type: string
          default: null
          description: Email address of the interviewee.
          nullable: true
        interviewee_first_name:
          type: string
          default: null
          description: First name of the interviewee.
          nullable: true
        interviewee_last_name:
          type: string
          default: null
          description: Last name of the interviewee.
          nullable: true
      required:
        - questions_to_transcript_mapping
        - transcript
        - transcript_with_timestamp
      additionalProperties: false
    Segment:
      type: object
      properties:
        content:
          type: string
        role:
          type: string
        words:
          type: array
          items:
            $ref: '#/components/schemas/Word'
      required:
        - content
        - role
        - words
      additionalProperties: false
    QuestionToTranscriptMapping:
      type: object
      properties:
        script_question:
          type: string
          description: The question as provided during interview flow creation.
        transcript_item_indices:
          type: array
          description: >-
            A list of indices. The indices are the indices of the items in
            transcript_with_timestamp which are relevant to the script question.
            It includes the question asked by the agent as well as the user
            answers, but can also include follow up questions. The indices are
            often but not necessarily consecutive.
          items:
            type: integer
        start_timestamp:
          type: number
          description: >-
            The start timestamp of the section of the recording that is relevant
            to the script question.
        end_timestamp:
          type: number
          description: >-
            The end timestamp of the section of the recording that is relevant
            to the script question.
        transcript_items:
          type: array
          description: >-
            The items in transcript_with_timestamp which are relevant to the
            script question. For brevity, these items do not include a detailed
            list of words, but these can be accessed from
            transcript_with_timestamp by the transcript_item_indices
          items:
            $ref: '#/components/schemas/BaseSegment'
      required:
        - end_timestamp
        - script_question
        - start_timestamp
        - transcript_item_indices
        - transcript_items
      additionalProperties: false
    Scores:
      type: object
      properties:
        communication:
          type: number
          default: null
          description: Communication score from the interview.
          nullable: true
        motivation:
          type: number
          default: null
          description: Motivation score from the interview.
          nullable: true
        skills:
          type: number
          default: null
          description: Skills score from the interview.
          nullable: true
        language_vocabulary_and_expression:
          type: number
          default: null
          description: Language vocabulary and expression score from the interview.
          nullable: true
        language_grammar_and_structure:
          type: number
          default: null
          description: Language grammar and structure score from the interview.
          nullable: true
        language_fluency_and_pace:
          type: number
          default: null
          description: Language fluency and pace score from the interview.
          nullable: true
        language_comprehension:
          type: number
          default: null
          description: Language comprehension score from the interview.
          nullable: true
      additionalProperties: false
    Word:
      type: object
      properties:
        end:
          type: number
        start:
          type: number
        word:
          type: string
      required:
        - end
        - start
        - word
      additionalProperties: false
    BaseSegment:
      type: object
      properties:
        content:
          type: string
        role:
          type: string
      required:
        - content
        - role
      additionalProperties: false
  responses:
    UNPROCESSABLE_ENTITY:
      description: Unprocessable Entity
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    DEFAULT_ERROR:
      description: Default error response
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: UUID
      description: >-
        Provide your API key UUID in the 'Authorization' header prefixed with
        'Bearer '.

        Example: 'Authorization: Bearer 123e4567-e89b-12d3-a456-426614174000'

````