> ## 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 interview flows

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



## OpenAPI

````yaml get /v1/interview-flows
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/interview-flows:
    get:
      tags:
        - Ribbon Public API
      summary: Get interview flows
      description: >-
        Retrieve all interview flows. If team_id is not provided, returns
        interview flows for all teams in the organization.
      parameters:
        - in: query
          name: limit
          description: The number of interview flows to return.
          schema:
            type: integer
            default: 100
          required: false
        - in: query
          name: offset
          description: The offset for the list of interview flows.
          schema:
            type: integer
            default: 0
          required: false
        - in: query
          name: team_id
          description: >-
            Filter interview flows by team ID. If not provided, returns
            interview flows for all teams in the organization.
          schema:
            type: string
            default: null
            nullable: true
          required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetInterviewFlowsResponse'
        '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:
    GetInterviewFlowsResponse:
      type: object
      properties:
        interview_flows:
          type: array
          description: A list of interview flows.
          items:
            $ref: '#/components/schemas/InterviewFlow'
      required:
        - interview_flows
      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
    InterviewFlow:
      type: object
      properties:
        interview_flow_id:
          type: string
          description: The ID of the interview flow.
        team_id:
          type: string
          description: The ID of the team this interview flow belongs to.
        org_name:
          type: string
          description: The name of the organization requesting the interview.
        title:
          type: string
          description: The title for the interview.
        status:
          description: >-
            The status of the interview flow. One of: open, closed, archived.
            Archived flows have been deleted.
          type: string
          enum:
            - open
            - closed
            - archived
        questions:
          type: array
          description: A list of questions to include in the interview.
          items:
            type: string
        voice_id:
          default: 11labs-Kate
          enum:
            - 11labs-Anna
            - openai-Onyx
            - openai-Shimmer
            - 11labs-Anthony
            - 11labs-Kate
            - 11labs-Amy
            - 11labs-Rahul
            - IPgYtHTNLjC7Bq7IPHrm
            - UOIqAnmS11Reiei1Ytkc
            - vUmLiNBm6MDcy1NUHaVr
            - bhJUNIXWQQ94l8eI2VUf
            - b3jcIbyC3BSnaRu8avEk
            - xF681s0UeE04gsf0mVsJ
            - uNsWM1StCcpydKYOjKyu
            - BGEU6wFi2uNm6Kje1Yhk
            - 4kCDY3HJwvO7Zp3con83
            - null
          description: The voice ID to be used for the interview agent.
          nullable: true
        language:
          default: en-US
          enum:
            - en-US
            - de-DE
            - es-419
            - hi-IN
            - ja-JP
            - pt-BR
            - fr-FR
            - zh-CN
            - ko-KR
            - vi-VN
            - th-TH
            - ar-AE
            - no-NO
            - null
          description: The language of the interview flow.
          nullable: true
        company_logo_url:
          type: string
          default: null
          description: >-
            Optional URL for the company's logo. If not provided, the Ribbon
            logo will be shown.
          nullable: true
        additional_info:
          type: string
          default: null
          description: >-
            Extra contextual information relevant to the interview. This can
            include background details, facts, or data points that the AI may
            use to enrich its questions or answers. For example: research focus,
            demographics or situational context.
          nullable: true
        additional_instructions:
          type: string
          default: null
          description: >-
            Guidelines on how the AI should behave during the interview. For
            example, adjust tone formality, avoid certain topics, or follow
            specific communication rules.
          nullable: true
        interview_type:
          default: general
          description: The type of interview.
          type: string
          enum:
            - recruitment
            - general
            - null
          nullable: true
        is_video_enabled:
          type: boolean
          default: false
          description: Whether the interview is video recorded or not.
          nullable: true
        is_doc_upload_enabled:
          type: boolean
          default: false
          description: >-
            Whether candidates can add resumes or other documents during the
            interview or not.
          nullable: true
        redirect_url:
          type: string
          default: null
          description: >-
            The URL where interviewee will be redirected after completing the
            interview. Make sure you're using the full URL, including https://
          nullable: true
        webhook_url:
          type: string
          default: null
          description: >-
            The URL that will be called after interview processing is complete.
            The payload will contain interview_flow_id, interview_id, and
            status.
          nullable: true
        webhook_secret_key:
          type: string
          default: null
          description: >-
            A secret key used to sign webhook payloads. When set, an
            X-Ribbon-Signature header containing an HMAC-SHA256 signature will
            be included with each webhook request.
          nullable: true
        intro:
          type: string
          default: null
          description: >-
            Introductory text spoken by the AI interviewer at the beginning of
            the interview.
          nullable: true
        outro:
          type: string
          default: null
          description: >-
            Concluding text spoken by the AI interviewer at the end of the
            interview.
          nullable: true
      required:
        - interview_flow_id
        - org_name
        - questions
        - status
        - team_id
        - title
      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
  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'

````