VCV

VCV videointerview API

The videointerview API from VCV — 4 operation(s) for videointerview.

OpenAPI Specification

vcv-videointerview-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: VCV chatbot videointerview API
  description: open api
  version: v3
servers:
- url: https://my.vcv.ai
- url: https://my.vcv.ru
- url: '{hostname}'
  variables:
    hostname:
      default: http://localhost:8080
security:
- bearerAuth: []
tags:
- name: videointerview
paths:
  /api/v3/videointerviews/response:
    get:
      tags:
      - videointerview
      description: Get response videointerviews list
      parameters:
      - $ref: '#/components/parameters/pagination_page'
      - $ref: '#/components/parameters/pagination_page_size'
      - name: with[]
        in: query
        description: Relations to retrieve
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - response
            - partitions
            - partitions.videoResponse
            - partitions.questionVideo
      - $ref: '#/components/parameters/filter_id'
      - $ref: '#/components/parameters/filter_response_id'
      - $ref: '#/components/parameters/filter_vacancy_id'
      - name: filter[date_start][from]
        in: query
        required: false
        schema:
          type: string
          format: date-time
      - name: filter[date_start][to]
        in: query
        required: false
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: list of response videointerviews
          content:
            application/json:
              schema:
                properties:
                  _total_items:
                    type: integer
                  _page:
                    type: integer
                  _page_count:
                    type: integer
                  _links:
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            format: uri
                      next:
                        type: object
                        properties:
                          href:
                            type: string
                            format: uri
                      last:
                        type: object
                        properties:
                          href:
                            type: string
                            format: uri
                    type: object
                  _embedded:
                    type: object
                    properties:
                      response_videointerviews:
                        type: array
                        items:
                          allOf:
                          - $ref: '#/components/schemas/ResponseVideointerview'
                          - type: object
                            properties:
                              _embedded:
                                type: object
                                properties:
                                  response:
                                    $ref: '#/components/schemas/Response'
                                  partitions:
                                    type: array
                                    items:
                                      allOf:
                                      - $ref: '#/components/schemas/Partition'
                                      - type: object
                                        properties:
                                          _embedded:
                                            type: object
                                            properties:
                                              video_response:
                                                $ref: '#/components/schemas/VideoResponse'
                                              question_video:
                                                $ref: '#/components/schemas/Video'
                type: object
  /api/v3/videointerviews/response/{id}:
    get:
      tags:
      - videointerview
      description: Get response videointerview
      parameters:
      - name: id
        in: path
        description: Id
        required: true
        schema:
          type: integer
      - name: with[]
        in: query
        description: Relations to retrieve
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - response
            - partitions
            - partitions.videoResponse
            - partitions.questionVideo
      - name: id_field
        in: query
        description: Model to retrieve id from
        required: true
        schema:
          type: string
          enum:
          - videointerview
          - response
      responses:
        '200':
          description: response videointerview
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/ResponseVideointerview'
                - type: object
                  properties:
                    _embedded:
                      type: object
                      properties:
                        response:
                          $ref: '#/components/schemas/Response'
                        partitions:
                          type: array
                          items:
                            allOf:
                            - $ref: '#/components/schemas/Partition'
                            - type: object
                              properties:
                                _embedded:
                                  type: object
                                  properties:
                                    video_response:
                                      $ref: '#/components/schemas/VideoResponse'
                                    question_video:
                                      $ref: '#/components/schemas/Video'
  /api/v3/videointerviews/vacancy:
    get:
      description: Get vacancy videointerviews list
      tags:
      - videointerview
      parameters:
      - $ref: '#/components/parameters/pagination_page'
      - $ref: '#/components/parameters/pagination_page_size'
      - name: with[]
        in: query
        description: Relations to retrieve
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - questions
            - questions.video
      - $ref: '#/components/parameters/filter_id'
      - $ref: '#/components/parameters/filter_vacancy_id'
      - $ref: '#/components/parameters/filter_created_at_from'
      - $ref: '#/components/parameters/filter_created_at_to'
      responses:
        '200':
          description: list of vacancy videointerviews
          content:
            application/json:
              schema:
                properties:
                  _total_items:
                    type: integer
                  _page:
                    type: integer
                  _page_count:
                    type: integer
                  _links:
                    properties:
                      self:
                        type: object
                        properties:
                          href:
                            type: string
                            format: uri
                      next:
                        type: object
                        properties:
                          href:
                            type: string
                            format: uri
                      last:
                        type: object
                        properties:
                          href:
                            type: string
                            format: uri
                    type: object
                  _embedded:
                    type: object
                    properties:
                      vacancy_videointerviews:
                        type: array
                        items:
                          allOf:
                          - $ref: '#/components/schemas/VacancyVideointerview'
                          - type: object
                            properties:
                              _embedded:
                                type: object
                                properties:
                                  questions:
                                    type: array
                                    items:
                                      allOf:
                                      - $ref: '#/components/schemas/VideointerviewQuestion'
                                      - type: object
                                        properties:
                                          _embedded:
                                            type: object
                                            properties:
                                              video:
                                                $ref: '#/components/schemas/Video'
                type: object
  /api/v3/videointerviews/vacancy/{id}:
    get:
      description: Get vacancy videointerview
      tags:
      - videointerview
      parameters:
      - name: id
        in: path
        description: Id
        required: true
        schema:
          type: integer
      - name: with[]
        in: query
        description: Relations to retrieve
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - questions
            - questions.video
      responses:
        '200':
          description: vacancy videointerview
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/VacancyVideointerview'
                - type: object
                  properties:
                    _embedded:
                      type: object
                      properties:
                        questions:
                          type: array
                          items:
                            allOf:
                            - $ref: '#/components/schemas/VideointerviewQuestion'
                            - type: object
                              properties:
                                _embedded:
                                  type: object
                                  properties:
                                    video:
                                      $ref: '#/components/schemas/Video'
    patch:
      description: Update vacancy videointerview detail
      tags:
      - videointerview
      parameters:
      - name: id
        in: path
        description: Id
        required: true
        schema:
          type: integer
      requestBody:
        required: true
        content:
          application/json:
            schema:
              properties:
                is_video_answer_enabled:
                  type: boolean
                questions:
                  type: array
                  items:
                    type: object
                    properties:
                      id:
                        type: integer
                        nullable: true
                      body:
                        type: string
                      answer_time:
                        type: integer
                      preparation_time:
                        type: integer
                      required:
                        type: boolean
                      sort_order:
                        type: integer
                      take_number:
                        type: integer
                      is_video_answer_enabled:
                        type: boolean
                      video_url:
                        type: string
                      video_title:
                        type: string
                      video_id:
                        type: integer
                        nullable: true
              type: object
      responses:
        '200':
          description: Detail vacancy videointerview
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/VacancyVideointerview'
                - type: object
                  properties:
                    _embedded:
                      type: object
                      properties:
                        questions:
                          type: array
                          items:
                            allOf:
                            - $ref: '#/components/schemas/VideointerviewQuestion'
                            - type: object
                              properties:
                                _embedded:
                                  type: object
                                  properties:
                                    video:
                                      $ref: '#/components/schemas/Video'
components:
  parameters:
    filter_id:
      name: filter[id]
      in: query
      required: false
      schema:
        oneOf:
        - type: integer
        - type: array
          items:
            type: integer
    filter_created_at_to:
      name: filter[created_at][to]
      in: query
      required: false
      schema:
        type: string
        format: date-time
    pagination_page:
      name: page
      in: query
      description: page number
      required: false
      schema:
        type: integer
        default: 1
    filter_created_at_from:
      name: filter[created_at][from]
      in: query
      required: false
      schema:
        type: string
        format: date-time
    filter_response_id:
      name: filter[response_id]
      in: query
      required: false
      schema:
        oneOf:
        - type: integer
        - type: array
          items:
            type: integer
    filter_vacancy_id:
      name: filter[vacancy_id]
      in: query
      required: false
      schema:
        oneOf:
        - type: integer
        - type: array
          items:
            type: integer
    pagination_page_size:
      name: limit
      in: query
      description: page size
      required: false
      schema:
        type: integer
        default: 20
  schemas:
    Response:
      properties:
        id:
          type: integer
        vacancy_id:
          type: integer
        candidate_id:
          type: integer
        response_status_id:
          type: integer
        response_source_id:
          type: integer
        interview_id:
          type: integer
        external_id:
          type: string
        is_hidden_by_candidate:
          type: boolean
        created_at:
          type: string
          format: date-time
        agreed_at:
          type: string
          format: date-time
          nullable: true
        date_sent:
          type: string
          format: date-time
          nullable: true
        resume_url:
          type: string
          nullable: true
        second_resume_url:
          type: string
          nullable: true
        social_source:
          type: string
          nullable: true
        utm_source:
          type: string
          nullable: true
        utm_medium:
          type: string
          nullable: true
        utm_campaign:
          type: string
          nullable: true
        utm_content:
          type: string
          nullable: true
        utm_term:
          type: string
          nullable: true
        is_paid:
          type: boolean
          nullable: true
      type: object
    ResponseVideointerview:
      properties:
        id:
          type: integer
        response_id:
          type: integer
        is_converted:
          type: boolean
        is_finished:
          type: boolean
        active:
          type: boolean
        description:
          type: string
          nullable: true
        date_start:
          type: string
          format: date-time
          nullable: true
        date_last_video_recorded:
          type: string
          format: date-time
          nullable: true
      type: object
    Partition:
      properties:
        id:
          type: integer
        response_id:
          type: integer
        max_time:
          type: integer
        name:
          type: string
        description:
          type: string
        sort_order:
          type: integer
        read_time:
          type: integer
        is_compulsory:
          type: boolean
        is_question_seen:
          type: boolean
        take_number:
          type: integer
        max_take_number:
          type: integer
        is_video_answer_enabled:
          type: boolean
        is_text_answer_enabled:
          type: boolean
        is_question_skipped:
          type: boolean
        date_show:
          type: string
          format: date-time
          nullable: true
        date_start_record:
          type: string
          format: date-time
          nullable: true
        is_blocked:
          type: boolean
        language_code:
          type: string
          nullable: true
        question_video_id:
          type: integer
        question_video_title:
          type: string
        question_video_url:
          type: string
        is_question_media_seen:
          type: boolean
      type: object
    VacancyVideointerview:
      properties:
        id:
          type: integer
        vacancy_id:
          type: integer
        is_video_answer_enabled:
          type: boolean
        created_at:
          type: string
          format: date-time
      type: object
    Video:
      nullable: true
      properties:
        id:
          type: integer
        date_modified:
          type: string
          format: date-time
        name:
          type: string
        video_status_id:
          type: integer
        duration:
          type: integer
          nullable: true
        original_extension:
          type: string
          nullable: true
        extension:
          type: string
          nullable: true
        hostname:
          type: string
        bucket:
          type: string
        size:
          type: integer
          nullable: true
        original_size:
          type: integer
          nullable: true
        token:
          type: string
        has_image_preview:
          type: string
        source:
          type: string
        preview:
          type: string
      type: object
    VideointerviewQuestion:
      properties:
        id:
          type: integer
        date_created:
          type: string
          format: date-time
        vacancy_module_videointerview_id:
          type: integer
        title:
          type: string
        body:
          type: string
        answer_time:
          type: integer
        preparation_time:
          type: integer
        required:
          type: boolean
        sort_order:
          type: integer
        take_number:
          type: integer
        is_video_answer_enabled:
          type: boolean
        is_text_answer_enabled:
          type: boolean
        language_code:
          type: string
          nullable: true
        video_id:
          type: integer
        video_title:
          type: string
        video_url:
          type: string
      type: object
    VideoResponse:
      nullable: true
      properties:
        id:
          type: integer
        date_modified:
          type: string
          format: date-time
        name:
          type: string
        video_status_id:
          type: integer
        video_response_partition_id:
          type: integer
        duration:
          type: integer
          nullable: true
        original_extension:
          type: string
          nullable: true
        format_list:
          type: string
          nullable: true
        text:
          type: string
          nullable: true
        hostname:
          type: string
        bucket:
          type: string
        original_file_size:
          type: integer
          nullable: true
        token:
          type: string
        source:
          type: string
        preview:
          type: string
        has_image_preview:
          type: string
        is_visible:
          type: string
        is_local_files_cleared:
          type: string
        id_upload_status:
          type: integer
        stream_recording_name:
          type: string
          nullable: true
      type: object
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: token