micro1 Public API

The micro1 AI Recruiter public REST API. Create conversational AI interviews from a skill list (or from your own custom questions), preview the questions the AI will ask, invite candidates by email, list jobs and job applicants, pull completed interview reports (per-skill technical ratings, soft skills, coding evaluation, proctoring score and violations, full transcript) and interview recordings, and manage webhook subscriptions for the platform's nine event types. Authenticated with an `x-api-key` header issued from the micro1 dashboard.

Documentation

Specifications

Other Resources

OpenAPI Specification

micro1-ai-recruiter-openapi.yml Raw ↑
openapi: 3.0.3
components:
  schemas:
    1c4bf13b-ae82-4085-9b3e-e87c2c62fb92:
      title: CreateInterviewRequest
      description: Request to create an interview
      type: object
      required:
      - interview_name
      properties:
        interview_name:
          type: string
          description: Name of the interview
          example: Full Stack Engineer Interview
        skills:
          type: array
          items:
            type: object
            required:
            - name
            properties:
              name:
                type: string
                description: Name of the skill
                example: React
              description:
                type: string
                description: More information about the skill
                example: Must be proficient in React Context API
          description: Required skills for the interview (max 10)
          example:
          - name: React
            description: Must be proficient in React Context API
        custom_question_list:
          type: array
          items:
            type: object
            properties:
              question:
                type: string
                description: The question to ask the candidate
                example: What are your strengths and weaknesses?
              time:
                type: number
                description: The time limit for the question in minutes (min 1, max 4)
                example: 2
              type:
                type: string
                description: The type of question
                example: audio
                enum:
                - audio
                - text
          description: Custom questions for the interview (max 20)
          example:
          - question: What are your strengths and weaknesses?
            time: 2
            type: audio
        interview_language:
          type: string
          description: The language in which the AI interview will be conducted
          default: en
          example: en
          enum:
          - en
          - fr
          - de
          - he
          - hi
          - pt
          - es
          - es-la
          - tr
          - ja
          - sv
          - ar
          - pl
          - dk
          - kr
          - it
          - nl
          - cz
          - ua
          - ur
          - id
          - en-GB
          - es-MX
          - cn
          - zh-CN
          - zh-TW
          - zh-HK
          - ru
          - bn
          - ms
          - pt-BR
          - vi
          - tl
          - th
          - afb
          - pt-PT
        can_change_interview_language:
          type: boolean
          description: Whether the candidate can change the language
          default: false
        only_coding_round:
          type: boolean
          description: Whether the interview is a coding round only
          default: false
        is_coding_round_required:
          type: boolean
          description: ​​Whether the coding round is required
          default: false
        selected_coding_language:
          type: string
          description: The coding language for the coding round
          example: python
          default: user_choice
          enum:
          - user_choice
          - javascript
          - cpp
          - c
          - csharp
          - go
          - java
          - kotlin
          - php
          - python
          - ruby
          - rust
          - swift
          - typescript
        coding_exercise_details:
          type: string
          description: 'Add more details to tailor the coding exercise (optional) - Note: The candidate
            won''t be able to use outside libraries.'
          example: Make the DSA problem extremely difficult and focus on a problem that will require recursion
            to solve efficiently.
        is_proctoring_required:
          type: boolean
          description: Whether the proctoring is required
          default: true
    90a13fb4-c47a-4041-91de-075985b6d787:
      title: CreateInterviewResponse
      description: Response for creating an interview
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: true
        message:
          type: string
          description: The message for the response
          example: Interview created successfully
        data:
          type: object
          description: Interview details
          properties:
            interview_id:
              type: string
              description: Unique identifier for the interview
              example: 123e4567-e89b-12d3-a456-426614174000
            invite_url:
              type: string
              description: The URL to invite the candidates to the interview
              example: https://interview.micro1.ai/intro/micro1?uid=123e4567-e89b-12d3-a456-426614174000
    Access-Control-Allow-Origin:
      type: string
      default: '*'
      example: https://developer.mozilla.org
    Access-Control-Allow-Credentials:
      type: boolean
      default: true
    b94b355b-60c8-4422-8bad-e5c028d564c2:
      title: BadRequestResponse
      description: Response for bad requests
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: The error message
          example: Invalid request
    890496ef-5475-45d1-a79c-090267478eb3:
      title: InternalServerErrorResponse
      description: Response for internal server error
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
    5bf9749c-a439-449a-bbed-fc2c74dd9b39:
      title: CreateCustomQuestionInterviewRequest
      description: Request to create an interview with only custom questions
      type: object
      required:
      - interview_name
      - custom_question_list
      properties:
        interview_name:
          type: string
          description: Name of the interview
          example: Candidate Screening Interview
        custom_question_list:
          type: array
          items:
            type: object
            properties:
              question:
                type: string
                description: The question to ask the candidate
                example: What are your strengths and weaknesses?
              time:
                type: number
                description: The time limit for the question in minutes (min 1, max 4)
                example: 2
              type:
                type: string
                description: The type of question
                example: audio
                enum:
                - audio
                - text
          description: Custom questions for the interview (max 20)
          example:
          - question: What are your strengths and weaknesses?
            time: 2
            type: audio
        interview_language:
          type: string
          description: The language in which the AI interview will be conducted
          default: en
          example: en
          enum:
          - en
          - fr
          - de
          - he
          - hi
          - pt
          - es
          - es-la
          - tr
          - ja
          - sv
          - ar
          - pl
          - dk
          - kr
          - it
          - nl
          - cz
          - ua
          - ur
          - id
          - en-GB
          - es-MX
          - cn
          - zh-CN
          - zh-TW
          - zh-HK
          - ru
          - bn
          - ms
          - pt-BR
          - vi
          - tl
          - th
          - afb
          - pt-PT
        can_change_interview_language:
          type: boolean
          description: Whether the candidate can change the language
          default: false
        is_proctoring_required:
          type: boolean
          description: Whether the proctoring is required
          default: true
    fe74cb1a-f0be-4b3f-97c1-7c97f143f926:
      title: CreateInterviewResponse
      description: Response for creating an interview
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: true
        message:
          type: string
          description: The message for the response
          example: Interview created successfully
        data:
          type: object
          description: Interview details
          properties:
            interview_id:
              type: string
              description: Unique identifier for the interview
              example: 123e4567-e89b-12d3-a456-426614174000
            invite_url:
              type: string
              description: The URL to invite the candidates to the interview
              example: https://interview.micro1.ai/intro/micro1?uid=123e4567-e89b-12d3-a456-426614174000
    5333077b-0b49-46f7-bc97-51cb80bca346:
      title: BadRequestResponse
      description: Response for bad requests
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: The error message
          example: Invalid request
    0e874cf3-8175-4bc0-be8e-58d4bfc07a79:
      title: InternalServerErrorResponse
      description: Response for internal server error
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
    page:
      type: integer
    limit:
      type: integer
    keyword:
      type: string
    8b24a4dd-e959-4345-8e0e-7551d63da6e8:
      title: GetAllInterviewsResponse
      description: Response for getting all interviews
      type: object
      properties:
        status:
          type: boolean
          description: Status of the response
          example: 'true'
        message:
          type: string
          description: Message of the response
          example: Interviews fetched successfully
        data:
          type: array
          description: List of interviews
          items:
            title: Interview
            description: Interview object
            type: object
            properties:
              interview_id:
                type: string
                description: ID of the interview
                example: 123e4567-e89b-12d3-a456-426614174000
              interview_name:
                type: string
                description: Name of the interview
                example: Full Stack Engineer Interview
              invite_url:
                type: string
                description: The URL to invite the candidates to the interview
                example: https://interview.micro1.ai/intro/micro1?uid=123e4567-e89b-12d3-a456-426614174000
              skills:
                type: array
                description: Required skills for the interview
                items:
                  type: object
                  properties:
                    name:
                      type: string
                      description: Name of the skill
                      example: React
                    description:
                      type: string
                      description: Description of the skill
                      example: Must be proficient in React Context API
                example:
                - name: React
                  description: Must be proficient in React Context API
              custom_questions:
                type: array
                description: Custom questions for the interview
                items:
                  type: object
                  description: Custom question for the interview
                  properties:
                    question:
                      type: string
                      description: The question for the interview
                      example: Where do you see yourself in 5 years?
                    time:
                      type: number
                      description: The time for the question in seconds
                      example: 120
                    type:
                      type: string
                      description: The type of the question
                      example: audio
                      enum:
                      - audio
                      - text
                example:
                - question: Where do you see yourself in 5 years?
                  time: 120
                  type: audio
              interview_language:
                type: string
                description: Language of the interview
                example: English
              can_change_interview_language:
                type: boolean
                description: Whether the candidate can change the interview language
                example: false
              only_coding_round:
                type: boolean
                description: Whether the interview is a coding round only
                example: true
              is_coding_round_required:
                type: boolean
                description: ​​Whether the coding round is required
                example: true
              selected_coding_language:
                type: string
                description: The coding language for the coding round
                example: Python
              is_proctoring_required:
                type: boolean
                description: Whether the proctoring is required
                example: true
              date_created:
                type: string
                description: Date created of the interview
                example: '2021-01-01 00:00:00'
              date_modified:
                type: string
                description: Date modified of the interview
                example: '2021-01-01 00:00:00'
              status:
                type: string
                description: Status of the interview
                example: active
    3e6955c6-1b91-4818-a780-401b36e276c0:
      title: BadRequestResponse
      description: Response for bad requests
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: The error message
          example: Invalid request
    338a7eb8-2dcc-424c-a88b-59a6b4122b66:
      title: InternalServerErrorResponse
      description: Response for internal server error
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
    interviewId:
      type: string
    9126af2f-e06b-4a71-8b76-b9c8f66f552e:
      title: UpdateInterviewRequest
      description: Request to update an interview
      type: object
      properties:
        interview_name:
          type: string
          description: Name of the interview
          example: Full Stack Engineer Interview
        skills:
          type: array
          items:
            type: object
            required:
            - name
            properties:
              name:
                type: string
                description: Name of the skill
                example: React
              description:
                type: string
                description: More information about the skill
                example: Must be proficient in React Context API
          description: Required skills for the interview (max 10)
          example:
          - name: React
            description: Must be proficient in React Context API
        custom_question_list:
          type: array
          items:
            type: object
            properties:
              question:
                type: string
                description: The question to ask the candidate
                example: What are your strengths and weaknesses?
              time:
                type: number
                description: The time limit for the question in minutes (min 1, max 4)
                example: 2
              type:
                type: string
                description: The type of question
                example: audio
                enum:
                - audio
                - text
          description: Custom questions for the interview (max 20)
          example:
          - question: What are your strengths and weaknesses?
            time: 2
            type: audio
        interview_language:
          type: string
          description: The language in which the AI interview will be conducted
          default: en
          example: en
          enum:
          - en
          - fr
          - de
          - he
          - hi
          - pt
          - es
          - es-la
          - tr
          - ja
          - sv
          - ar
          - pl
          - dk
          - kr
          - it
          - nl
          - cz
          - ua
          - ur
          - id
          - en-GB
          - es-MX
          - cn
          - zh-CN
          - zh-TW
          - zh-HK
          - ru
          - bn
          - ms
          - pt-BR
          - vi
          - tl
          - th
          - afb
          - pt-PT
        can_change_interview_language:
          type: boolean
          description: Whether the candidate can change the language
          default: false
        only_coding_round:
          type: boolean
          description: Whether the interview is a coding round only
          default: false
        is_coding_round_required:
          type: boolean
          description: ​​Whether the coding round is required
          default: false
        selected_coding_language:
          type: string
          description: The coding language for the coding round
          example: python
        coding_exercise_details:
          type: string
          description: 'Add more details to tailor the coding exercise (optional) - Note: The candidate
            won''t be able to use outside libraries.'
          example: Make the DSA problem extremely difficult and focus on a problem that will require recursion
            to solve efficiently.
        is_proctoring_required:
          type: boolean
          description: Whether the proctoring is required
          default: true
    b2697d86-2b45-482c-9957-83a3cc227365:
      title: UpdateInterviewResponse
      description: Response for updating an interview
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: true
        message:
          type: string
          description: The message for the response
          example: Interview updated successfully
    0acae7b7-5e11-4fc4-a1ff-06aaa8115fbf:
      title: BadRequestResponse
      description: Response for bad requests
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: The error message
          example: Invalid request
    28d74bab-c21a-49e7-9499-82d841b8c11b:
      title: InternalServerErrorResponse
      description: Response for internal server error
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
    1488b560-7b17-47ee-862e-2c138a397929:
      title: DeleteInterviewResponse
      description: Response for deleting an interview
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: true
        message:
          type: string
          description: The message for the response
          example: Interview deleted successfully
    61381ad1-48b5-4910-b2b2-dfc5d60bb5bf:
      title: BadRequestResponse
      description: Response for bad requests
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: The error message
          example: Invalid request
    4651c8bc-45a2-444b-93d7-bcd5fb9b8c82:
      title: InternalServerErrorResponse
      description: Response for internal server error
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
    c93fc8b1-3071-4de0-8f00-c22c8ac342e8:
      title: InviteCandidateRequest
      type: object
      required:
      - interview_id
      properties:
        interview_id:
          type: string
          description: The ID of the interview to invite candidates to
          example: 123e4567-e89b-12d3-a456-426614174000
        candidates:
          type: array
          items:
            type: object
            required:
            - name
            - email
            properties:
              name:
                type: string
                description: The name of the candidate to invite
                example: John Doe
              email:
                type: string
                description: The email of the candidate to invite
                example: candidate@example.com
          description: The list of candidates to invite
          example:
          - name: John Doe
            email: candidate@example.com
        job_application_id:
          type: string
          description: The ID of the job application to invite candidates (Optional)
          example: 123e4567-e89b-12d3-a456-426614174000
        candidate_id:
          type: string
          description: The ID of the candidate to re-send the invitation (Optional)
          example: 123e4567-e89b-12d3-a456-426614174000
        disable_email_notification:
          type: boolean
          description: Whether to disable the email notification sent to the candidate for the interview
            invitation
          example: false
          default: false
    082583f8-9260-4b46-b8bc-04c7a44fded2:
      title: InviteCandidateResponse
      type: object
      properties:
        status:
          type: boolean
          description: The status of the invitation
          example: true
        message:
          type: string
          description: The message of the invitation
          example: Invitations sent successfully
        data:
          type: object
          description: The data of the invitation
          properties:
            invitations:
              type: array
              description: Invitation details of the candidates
              items:
                type: object
                description: Invitation details of the candidate
                properties:
                  candidate_id:
                    type: string
                    description: The ID of the candidate
                    example: 123e4567-e89b-12d3-a456-426614174000
                  candidate_email:
                    type: string
                    description: The email of the candidate
                    example: candidate@example.com
                  invite_url:
                    type: string
                    description: The URL of the invitation
                    example: https://interview.micro1.ai/intro/micro1?cid=123e4567-e89b-12d3-a456-426614174000
    d24a9b8f-c64f-4661-9bfb-6b0874f15289:
      title: BadRequestResponse
      description: Response for bad requests
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: The error message
          example: Invalid request
    22038d2e-01bd-4d14-8751-a35ace89f2f0:
      title: InternalServerErrorResponse
      description: Response for internal server error
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
    interview_id:
      type: string
    candidate_id:
      type: string
    ed1324fa-97e3-4327-989a-1365796365ff:
      title: GetInvitesResponse
      description: Response for getting all candidate invites
      type: object
      properties:
        status:
          type: boolean
          description: Status of the response
          example: 'true'
        message:
          type: string
          description: Message of the response
          example: Candidate invites fetched successfully
        data:
          type: array
          description: List of candidate invites
          items:
            title: Report
            type: object
            properties:
              candidate_id:
                type: string
                description: ID of the candidate
                example: h0gqkAcaDJ
              interview_id:
                type: string
                description: ID of the interview
                example: 123e4567-e89b-12d3-a456-426614174000
              interview_name:
                type: string
                description: Name of the interview
                example: Full Stack Engineer Interview
              candidate_name:
                type: string
                description: Name of the candidate
                example: John Doe
              candidate_email_id:
                type: string
                description: Email of the candidate
                example: john.doe@micro1.ai
              date_created:
                type: string
                description: Date created of the report
                example: '2021-01-01 00:00:00'
              date_modified:
                type: string
                description: Date modified of the report
                example: '2021-01-01 00:00:00'
              status:
                type: string
                description: Status of the report
                example: active
    19f58cbb-0a5c-4362-9543-e11ecc14b188:
      title: BadRequestResponse
      description: Response for bad requests
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
        message:
          type: string
          description: The error message
          example: Invalid request
    48ed7e9b-d5c0-4cac-a7f7-554cf2d38a61:
      title: InternalServerErrorResponse
      description: Response for internal server error
      type: object
      properties:
        status:
          type: boolean
          description: Whether the request was successful
          example: false
    3d3a53a2-49bc-4b72-af60-d6a25ef000db:
      title: GetInterviewReportsResponse
      type: object
      properties:
        status:
          type: boolean
          description: Status of the response
        message:
          type: string
          description: Message of the response
        data:
          type: array
          description: Data of the response
          items:
            title: Report
            type: object
            properties:
              report_id:
                type: string
                description: ID of the report
                example: h0gqkAcaDJ
              session_id:
                type: string
                description: ID of the interview session
                example: 123e4567-e89b-12d3-a456-426614174000
              interview_id:
                type: string
                description: ID of the interview
                example: 123e4567-e89b-12d3-a456-426614174000
              interview_name:
                type: string
                description: Name of the interview
                example: Full Stack Engineer Interview
              candidate_id:
                type: string
                description: ID of the candidate
                example: 123e4567-e89b-12d3-a456-426614174000
              job_applicant_id:
                type: string
                description: Optional ID of the job applicant, present only if linked to a job applicant
                example: 123e4567-e89b-12d3-a456-426614174000
              ats_job_application_id:
                type: string
                description: ID of the job application in external connected ATS
                example: 123e4567-e89b-12d3-a456-426614174000
                nullable: true
              ats_job_id:
                type: string
                description: ID of the job in external connected ATS
                example: 123e4567-e89b-12d3-a456-426614174000
                nullable: true
              candidate_name:
                type: string
                description: Name of the candidate
                example: John Doe
              candidate_email_id:
                type: string
                description: Email of the candidate
                example: john.doe@micro1.ai
              report_date:
                type: string
                description: Date of the interview
                example: '2024-01-01'
              report_url:
                type: string
                description: URL of the report
                example: https://micro1.ai/report/h0gqkAcaDJ.pdf
              interview_recording_url:
                type: string
                description: Direct URL of the interview recording. Use HLS (HTTP Live Streaming) library
                  to play the interview video
                example: https://micro1.ai/interview/h0gqkAcaDJ.m3u8
              interview_recording_player_url:
                type: string
                description: URL to view the interview recording in micro1's web player interface
                example: https://zara.micro1.ai/ai-interview-videos/abcxyz?id=123e4567-e89b-12d3-a456-426614174000
              proctoring_score:
                type: number
                description: Proctoring score of the candidate
                example: 85
              ai_match_score:
                type: number
                description: AI match score of the candidate
                example: 85
              proctoring_violations:
                type: array
                description: List of proctoring violations
                items:
                  type: object
                  properties:
                    type:
                      type: string
                      description: Type of the violation
                      example: tab_switch
                      enum:
                      - tab_switch
                      - eye_movement
                      - ai_classifier
                    value:
                      type: string
                      description: Value of the violation (number / percentage)
                      example: '3'
                    description:
                      type: string
                      description: Description of the violation
                      example: 3 tab switches detected, indicating multitasking or external searches.
              interview_transcript:
                type: array
                description: Transcript of the interview
                items:
                  type: object
                  properties:
                    timestamp:
                      type: number
                      description: Timestamp of the transcript in seconds
                      example: 100
                      nullable: true
                    role:
                      type: string
                      description: Role of the transcript
                      example: interviewer
                      enum:
                      - interviewer
                      - user
                    content:
                      type: string
                      description: Text of the transcript
                      example: Can you tell me about yourself?
              technical_skills_evaluation:
                type: array
                description: Evaluation of the technical/non-technical skills
                items:
                  type: object
                  properties:
                    skill:
                      type: string
                      description: Name of the skill
                      example: React.js
                    ai_evaluation:
      

# --- truncated at 32 KB (158 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/micro1/refs/heads/main/openapi/micro1-ai-recruiter-openapi.yml