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

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/micro1-public-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

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