Paradox Scheduling API

Manage interview scheduling, interviewers, settings, rooms, alerts, and history

OpenAPI Specification

paradox-scheduling-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Paradox Authentication Scheduling API
  description: API for the Paradox conversational AI recruiting platform powered by Olivia. Provides endpoints for managing candidates, users, interview scheduling, locations, company data, reporting, and candidate attributes. Paradox automates candidate screening, interview scheduling, and hiring workflows through chat, SMS, and mobile-driven experiences.
  version: 1.0.0
  contact:
    name: Paradox Support
    url: https://www.paradox.ai/contact
    email: support@paradox.ai
  license:
    name: Proprietary
    url: https://www.paradox.ai/legal/service-terms
  termsOfService: https://www.paradox.ai/legal/service-terms
servers:
- url: https://api.paradox.ai/api/v1/public
  description: Production (US)
- url: https://api.eu1.paradox.ai/api/v1/public
  description: Production (EU)
- url: https://stgapi.paradox.ai/api/v1/public
  description: Staging (US)
- url: https://api.stg.eu1.paradox.ai/api/v1/public
  description: Staging (EU)
- url: https://testapi.paradox.ai/api/v1/public
  description: Test
- url: https://dev2api.paradox.ai/api/v1/public
  description: Development
security:
- oauth2: []
- bearerAuth: []
tags:
- name: Scheduling
  description: Manage interview scheduling, interviewers, settings, rooms, alerts, and history
paths:
  /scheduling/multiparty-interviewers:
    get:
      operationId: getMultipartyInterviewers
      summary: Paradox Get multiparty interviewers
      description: Retrieve the list of available multiparty interviewers for scheduling.
      tags:
      - Scheduling
      responses:
        '200':
          description: Interviewers returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  interviewers:
                    type: array
                    items:
                      $ref: '#/components/schemas/Interviewer'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduling/interview-settings:
    get:
      operationId: getInterviewSettings
      summary: Paradox Get interview settings
      description: Retrieve interview scheduling configuration settings.
      tags:
      - Scheduling
      responses:
        '200':
          description: Interview settings returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  settings:
                    $ref: '#/components/schemas/InterviewSettings'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduling/job-location-rooms:
    get:
      operationId: getJobLocationRooms
      summary: Paradox Get job location rooms
      description: Retrieve available interview rooms for job locations.
      tags:
      - Scheduling
      responses:
        '200':
          description: Job location rooms returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  rooms:
                    type: array
                    items:
                      $ref: '#/components/schemas/Room'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduling/send-interview-alerts:
    put:
      operationId: sendInterviewAlerts
      summary: Paradox Send interview alerts
      description: Send interview alert notifications to candidates and/or interviewers about upcoming or changed interviews.
      tags:
      - Scheduling
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                candidate_id:
                  type: string
                  description: Candidate identifier
                interview_id:
                  type: string
                  description: Interview identifier
                alert_type:
                  type: string
                  description: Type of alert to send
      responses:
        '200':
          description: Interview alerts sent successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduling/interview-history:
    get:
      operationId: getInterviewHistory
      summary: Paradox Get interview history
      description: Retrieve interview history records.
      tags:
      - Scheduling
      parameters:
      - name: candidate_id
        in: query
        description: Filter by candidate identifier
        schema:
          type: string
      - name: start_date
        in: query
        description: Filter by start date
        schema:
          type: string
          format: date-time
      - name: end_date
        in: query
        description: Filter by end date
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: Interview history returned successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  interviews:
                    type: array
                    items:
                      $ref: '#/components/schemas/Interview'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /scheduling/communication:
    post:
      operationId: sendSchedulingCommunication
      summary: Paradox Schedule shortlist review
      description: Send an email to hiring manager(s) with a shortlist of candidates for review and scheduling.
      tags:
      - Scheduling
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - to
              - email_title
              - email_text
              - action_link
              properties:
                to:
                  type: array
                  items:
                    type: string
                  description: Hiring manager identifiers to receive the email
                email_title:
                  type: string
                  description: Email subject line
                email_text:
                  type: string
                  description: Email body content
                action_link:
                  type: string
                  format: uri
                  description: Link for the hiring manager to review candidates
      responses:
        '200':
          description: Shortlist review email sent successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SuccessResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    Interviewer:
      type: object
      description: An interviewer available for multiparty scheduling
      properties:
        id:
          type: string
          description: Interviewer identifier
        name:
          type: string
          description: Interviewer name
        email:
          type: string
          format: email
          description: Interviewer email address
        timezone:
          type: string
          description: Interviewer timezone
    Room:
      type: object
      description: A room within a location used for interviews
      properties:
        oid:
          type: string
          description: Room identifier
        name:
          type: string
          description: Room name
        location_id:
          type: string
          description: Parent location identifier
        capacity:
          type: integer
          description: Room capacity
        active:
          type: boolean
          description: Whether the room is active
    InterviewSettings:
      type: object
      description: Interview scheduling configuration
      properties:
        duration:
          type: integer
          description: Default interview duration in minutes
        buffer_time:
          type: integer
          description: Buffer time between interviews in minutes
        scheduling_window:
          type: integer
          description: Number of days to look ahead for scheduling
        confirmation_required:
          type: boolean
          description: Whether interview confirmation is required
        reminder_enabled:
          type: boolean
          description: Whether interview reminders are enabled
    SuccessResponse:
      type: object
      properties:
        success:
          type: boolean
    Interview:
      type: object
      description: An interview scheduling record
      properties:
        id:
          type: string
          description: Interview identifier
        candidate_id:
          type: string
          description: Associated candidate identifier
        interviewer_id:
          type: string
          description: Assigned interviewer identifier
        location_id:
          type: string
          description: Interview location identifier
        room_id:
          type: string
          description: Interview room identifier
        scheduled_at:
          type: string
          format: date-time
          description: Scheduled interview date and time
        duration:
          type: integer
          description: Interview duration in minutes
        status:
          type: string
          description: Interview status
        type:
          type: string
          description: Interview type
        created_at:
          type: string
          format: date-time
          description: Record creation timestamp
        updated_at:
          type: string
          format: date-time
          description: Last update timestamp
  responses:
    Unauthorized:
      description: Authentication failed
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                const: false
              message:
                type: string
    BadRequest:
      description: Invalid request data
      content:
        application/json:
          schema:
            type: object
            properties:
              success:
                type: boolean
                const: false
              message:
                type: string
  securitySchemes:
    oauth2:
      type: oauth2
      description: OAuth 2.0 client credentials authentication
      flows:
        clientCredentials:
          tokenUrl: /auth/token
          scopes: {}
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Bearer token obtained from the OAuth 2.0 token endpoint
externalDocs:
  description: Paradox API Documentation
  url: https://readme.paradox.ai/docs