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

# Create interview



## OpenAPI

````yaml /openapi.json post /api/v1/interviews
openapi: 3.1.0
info:
  title: Harly API
  version: 1.0.0
servers:
  - url: https://{instance}
    variables:
      instance:
        default: app.harly.dev
        description: Hostname of your Harly installation
security: []
paths:
  /api/v1/interviews:
    post:
      tags:
        - Interviews
      summary: Create interview
      operationId: createInterview
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                candidateId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                applicationId:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                type:
                  type: string
                  enum:
                    - screening
                    - culture_fit
                    - technical
                    - onsite
                    - final
                mode:
                  type: string
                  enum:
                    - video
                    - phone
                    - onsite
                scheduledAt:
                  type: string
                  format: date-time
                  pattern: >-
                    ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
                durationMins:
                  default: 45
                  type: integer
                  minimum: 5
                  maximum: 480
                interviewerId:
                  anyOf:
                    - type: string
                      maxLength: 20000
                    - type: 'null'
                title:
                  anyOf:
                    - type: string
                      maxLength: 20000
                    - type: 'null'
                location:
                  anyOf:
                    - type: string
                      maxLength: 20000
                    - type: 'null'
                notes:
                  anyOf:
                    - type: string
                      maxLength: 20000
                    - type: 'null'
              required:
                - candidateId
                - applicationId
                - type
                - mode
                - scheduledAt
                - durationMins
              additionalProperties: false
      responses:
        '201':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      applicationId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      candidateId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      jobId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      interviewerId:
                        anyOf:
                          - type: string
                          - type: 'null'
                      title:
                        anyOf:
                          - type: string
                          - type: 'null'
                      type:
                        type: string
                      mode:
                        type: string
                      status:
                        type: string
                      scheduledAt:
                        type: string
                      durationMins:
                        type: number
                      location:
                        anyOf:
                          - type: string
                          - type: 'null'
                      notes:
                        anyOf:
                          - type: string
                          - type: 'null'
                      source:
                        anyOf:
                          - type: string
                          - type: 'null'
                      meetingUrl:
                        anyOf:
                          - type: string
                          - type: 'null'
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                    required:
                      - id
                      - applicationId
                      - candidateId
                      - jobId
                      - interviewerId
                      - title
                      - type
                      - mode
                      - status
                      - scheduledAt
                      - durationMins
                      - location
                      - notes
                      - source
                      - meetingUrl
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          nextCursor:
                            anyOf:
                              - type: string
                              - type: 'null'
                          hasMore:
                            type: boolean
                          limit:
                            type: number
                        required:
                          - nextCursor
                          - hasMore
                          - limit
                        additionalProperties: false
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
        '401':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '403':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '409':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
        '422':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      code:
                        type: string
                      message:
                        type: string
                      details: {}
                    required:
                      - code
                      - message
                    additionalProperties: false
                required:
                  - error
                additionalProperties: false
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Harly API key

````