openapi: 3.0.0
info:
  title: Unified.to ASSESSMENT API
  version: "1.0"
  description: One API to Rule Them All
  contact:
    email: hello@unified.to
    url: https://unified.to/contact
  termsOfService: https://unified.to/tos
externalDocs:
  description: API Documentation
  url: https://docs.unified.to
tags:
  - name: unifiedapi
    description: Unified.to API
  - name: assessment
  - name: package
  - name: order
security:
  - jwt: []
servers:
  - url: https://api.unified.to
    description: North American data region
  - url: https://api-eu.unified.to
    description: European data region
  - url: https://api-au.unified.to
    description: Australian data region
components:
  securitySchemes:
    jwt:
      type: apiKey
      name: authorization
      in: header
  requestBodies:
    AssessmentPackage:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/AssessmentPackage"
    AssessmentOrder:
      required: true
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/AssessmentOrder"
  schemas:
    property_AssessmentPackage_integration_types:
      type: array
      items:
        type: string
      description: Integration types that support this package
    property_AssessmentPackage_aliases:
      type: array
      items:
        type: string
      description: Alternative namesidentifiers for this package
    property_AssessmentPackage_tags:
      type: array
      items:
        type: string
      description: Category tags (e.g., "Assessment", "Background Check")
    property_AssessmentParameter_options:
      type: array
      items:
        type: string
      description: Options for MULTIPLE_CHOICE and MULTIPLE_SELECT
    property_AssessmentParameter_file_types:
      type: array
      items:
        type: string
      description: Valid file MIME types for FILE type
    property_AssessmentParameter_valid_regions:
      type: array
      items:
        type: string
      description: Regions where this parameter is valid ({country}-{state} or {country})
    AssessmentParameter:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        public_question:
          type: string
        type:
          type: string
          enum:
            - TEXT
            - NUMBER
            - MULTIPLE_CHOICE
            - MULTIPLE_SELECT
            - DATE
            - FILE
          x-speakeasy-unknown-values: allow
        options:
          $ref: "#/components/schemas/property_AssessmentParameter_options"
        file_types:
          $ref: "#/components/schemas/property_AssessmentParameter_file_types"
        valid_regions:
          $ref: "#/components/schemas/property_AssessmentParameter_valid_regions"
        is_required:
          type: boolean
      required:
        - name
    property_AssessmentPackage_parameters:
      type: array
      items:
        $ref: "#/components/schemas/AssessmentParameter"
      description: Questionsinputs needed for this assessment (aligned with verification)
    property_AssessmentPackageRegion_regions:
      type: array
      items:
        type: string
      description: Countryregion codes where this package is available ({country}-{state} or {country})
    AssessmentPackageRegion:
      type: object
      properties:
        regions:
          $ref: "#/components/schemas/property_AssessmentPackageRegion_regions"
        cost_amount:
          type: number
        currency:
          type: string
        processing_time:
          type: number
      required:
        - regions
        - cost_amount
    property_AssessmentPackage_regions:
      type: array
      items:
        $ref: "#/components/schemas/AssessmentPackageRegion"
    AssessmentPackage:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        workspace_id:
          type: string
        connection_id:
          type: string
        integration_types:
          $ref: "#/components/schemas/property_AssessmentPackage_integration_types"
        name:
          type: string
        type:
          type: string
          enum:
            - SKILLS_TEST
            - BEHAVIORAL_ASSESSMENT
            - VIDEO_INTERVIEW
            - BACKGROUND_CHECK
            - REFERENCE_CHECK
            - OTHER
          x-speakeasy-unknown-values: allow
        aliases:
          $ref: "#/components/schemas/property_AssessmentPackage_aliases"
        tags:
          $ref: "#/components/schemas/property_AssessmentPackage_tags"
        description:
          type: string
        parameters:
          $ref: "#/components/schemas/property_AssessmentPackage_parameters"
        has_redirect_url:
          type: boolean
        has_target_url:
          type: boolean
        needs_ip_address:
          type: boolean
        max_score:
          type: number
        info_url:
          type: string
        regions:
          $ref: "#/components/schemas/property_AssessmentPackage_regions"
        raw:
          type: object
          additionalProperties: true
      required:
        - id
        - name
        - type
      description: Used by assessment providers to SUBMIT packages to ATS systems
    AssessmentPackages:
      type: array
      items:
        $ref: "#/components/schemas/AssessmentPackage"
    property_AssessmentParameterInput_inputs:
      type: array
      items:
        type: string
    AssessmentParameterInput:
      type: object
      properties:
        parameter_id:
          type: string
        name:
          type: string
        inputs:
          $ref: "#/components/schemas/property_AssessmentParameterInput_inputs"
    property_AssessmentOrder_parameters:
      type: array
      items:
        $ref: "#/components/schemas/AssessmentParameterInput"
      description: Filled-in answers to the package's parameter questions
    AssessmentAddress:
      type: object
      properties:
        address1:
          type: string
        address2:
          type: string
        city:
          type: string
        region:
          type: string
        region_code:
          type: string
        postal_code:
          type: string
        country:
          type: string
        country_code:
          type: string
    property_AssessmentOrder_profile_addresses:
      type: array
      items:
        $ref: "#/components/schemas/AssessmentAddress"
    property_AssessmentOrder_profile_emails:
      type: array
      items:
        type: string
    property_AssessmentOrder_profile_telephones:
      type: array
      items:
        type: string
    property_AssessmentOrder_profile_social_media_urls:
      type: array
      items:
        type: string
    property_AssessmentOrder_response_download_urls:
      type: array
      items:
        type: string
      description: Report download URLs
    AssessmentResponseDetail:
      type: object
      properties:
        title:
          type: string
        text:
          type: string
        is_private:
          type: boolean
        is_failed_reason:
          type: boolean
        parameter_id:
          type: string
        download_url:
          type: string
    property_AssessmentOrder_response_details:
      type: array
      items:
        $ref: "#/components/schemas/AssessmentResponseDetail"
    AssessmentAttribute:
      type: object
      properties:
        type:
          type: string
          enum:
            - TEXT
            - NUMBER
            - SUB_RESULT
          x-speakeasy-unknown-values: allow
        label:
          type: string
        value:
          type: string
        reference:
          type: string
        score_value:
          type: number
        score_max:
          type: number
        status:
          type: string
          enum:
            - OPEN
            - IN_PROGRESS
            - COMPLETED
            - FAILED
            - REJECTED
          x-speakeasy-unknown-values: allow
      required:
        - type
        - label
    property_AssessmentOrder_response_attributes:
      type: array
      items:
        $ref: "#/components/schemas/AssessmentAttribute"
      description: Additional result attributes
    AssessmentOrder:
      type: object
      properties:
        id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        workspace_id:
          type: string
        connection_id:
          type: string
        webhook_id:
          type: string
        package_id:
          type: string
        parameters:
          $ref: "#/components/schemas/property_AssessmentOrder_parameters"
        target_url:
          type: string
        status:
          type: string
          enum:
            - OPEN
            - IN_PROGRESS
            - COMPLETED
            - FAILED
            - REJECTED
          x-speakeasy-unknown-values: allow
        reference:
          type: string
        application_id:
          type: string
        job_id:
          type: string
        company_id:
          type: string
        candidate_id:
          type: string
        employee_id:
          type: string
        profile_name:
          type: string
        profile_first_name:
          type: string
        profile_last_name:
          type: string
        profile_resume_url:
          type: string
        profile_ip_address:
          type: string
        profile_date_of_birth:
          type: string
        profile_addresses:
          $ref: "#/components/schemas/property_AssessmentOrder_profile_addresses"
        profile_gender:
          type: string
          enum:
            - MALE
            - FEMALE
            - INTERSEX
            - TRANS
            - NON_BINARY
          x-speakeasy-unknown-values: allow
        profile_emails:
          $ref: "#/components/schemas/property_AssessmentOrder_profile_emails"
        profile_telephones:
          $ref: "#/components/schemas/property_AssessmentOrder_profile_telephones"
        profile_national_identifier:
          type: string
        profile_social_media_urls:
          $ref: "#/components/schemas/property_AssessmentOrder_profile_social_media_urls"
        response_completed_at:
          type: string
          format: date-time
        response_expires_at:
          type: string
          format: date-time
        response_issued_at:
          type: string
          format: date-time
        response_status:
          type: string
          enum:
            - OPEN
            - IN_PROGRESS
            - COMPLETED
            - FAILED
            - REJECTED
          x-speakeasy-unknown-values: allow
        response_score:
          type: number
        response_max_score:
          type: number
        response_url:
          type: string
        response_redirect_url:
          type: string
        response_download_urls:
          $ref: "#/components/schemas/property_AssessmentOrder_response_download_urls"
        response_details:
          $ref: "#/components/schemas/property_AssessmentOrder_response_details"
        response_source:
          type: string
        response_attributes:
          $ref: "#/components/schemas/property_AssessmentOrder_response_attributes"
        raw:
          type: object
          additionalProperties: true
      required:
        - workspace_id
        - connection_id
paths:
  /assessment/{connection_id}/package:
    post:
      summary: Create an assessment package
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - assessment
        - package
      requestBody:
        description: Used by assessment providers to SUBMIT packages to ATS systems
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssessmentPackage"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentPackage"
          description: Successful
      security:
        - jwt: []
      operationId: createAssessmentPackage
    get:
      summary: List assessment packages
      parameters:
        - schema:
            type: number
          name: limit
          in: query
          required: false
        - schema:
            type: number
          name: offset
          in: query
          required: false
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
      tags:
        - assessment
        - package
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentPackages"
          description: Successful
      security:
        - jwt: []
      operationId: listAssessmentPackages
  /assessment/{connection_id}/package/{id}:
    get:
      summary: Get an assessment package
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Package
          name: id
          in: path
          required: true
      tags:
        - assessment
        - package
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentPackage"
          description: Successful
      security:
        - jwt: []
      operationId: getAssessmentPackage
    put:
      summary: Update an assessment package
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Package
          name: id
          in: path
          required: true
      tags:
        - assessment
        - package
      requestBody:
        description: Used by assessment providers to SUBMIT packages to ATS systems
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssessmentPackage"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentPackage"
          description: Successful
      security:
        - jwt: []
      operationId: updateAssessmentPackage
    patch:
      summary: Update an assessment package
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Package
          name: id
          in: path
          required: true
      tags:
        - assessment
        - package
      requestBody:
        description: Used by assessment providers to SUBMIT packages to ATS systems
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssessmentPackage"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentPackage"
          description: Successful
      security:
        - jwt: []
      operationId: patchAssessmentPackage
    delete:
      summary: Delete an assessment package
      parameters:
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Package
          name: id
          in: path
          required: true
      tags:
        - assessment
        - package
      responses:
        "200":
          description: Successful
        default:
          headers:
            Content-Type:
              required: false
              schema:
                type: string
          content: {}
          description: Successful
      security:
        - jwt: []
      operationId: removeAssessmentPackage
  /assessment/{connection_id}/order/{id}:
    put:
      summary: Update an order
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - workspace_id
                - connection_id
                - webhook_id
                - package_id
                - parameters
                - target_url
                - status
                - reference
                - application_id
                - job_id
                - company_id
                - candidate_id
                - employee_id
                - profile_name
                - profile_first_name
                - profile_last_name
                - profile_resume_url
                - profile_ip_address
                - profile_date_of_birth
                - profile_addresses
                - profile_gender
                - profile_emails
                - profile_telephones
                - profile_national_identifier
                - profile_social_media_urls
                - response_completed_at
                - response_expires_at
                - response_issued_at
                - response_status
                - response_score
                - response_max_score
                - response_url
                - response_redirect_url
                - response_download_urls
                - response_details
                - response_source
                - response_attributes
                - raw
          name: fields
          in: query
          required: false
          type: array
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Order
          name: id
          in: path
          required: true
      tags:
        - assessment
        - order
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssessmentOrder"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentOrder"
          description: Successful
      security:
        - jwt: []
      operationId: updateAssessmentOrder
    patch:
      summary: Update an order
      parameters:
        - schema:
            type: array
            items:
              type: string
              enum:
                - id
                - created_at
                - updated_at
                - workspace_id
                - connection_id
                - webhook_id
                - package_id
                - parameters
                - target_url
                - status
                - reference
                - application_id
                - job_id
                - company_id
                - candidate_id
                - employee_id
                - profile_name
                - profile_first_name
                - profile_last_name
                - profile_resume_url
                - profile_ip_address
                - profile_date_of_birth
                - profile_addresses
                - profile_gender
                - profile_emails
                - profile_telephones
                - profile_national_identifier
                - profile_social_media_urls
                - response_completed_at
                - response_expires_at
                - response_issued_at
                - response_status
                - response_score
                - response_max_score
                - response_url
                - response_redirect_url
                - response_download_urls
                - response_details
                - response_source
                - response_attributes
                - raw
          name: fields
          in: query
          required: false
          type: array
          description: Fields to return
        - schema:
            type: string
          name: raw
          in: query
          required: false
          description: "Raw parameters to include in the 3rd-party request. Encoded as a URL component. eg. raw parameters: foo=bar&zoo=bar -> raw=foo%3Dbar%26zoo%3Dbar"
        - schema:
            type: string
          description: ID of the connection
          name: connection_id
          in: path
          required: true
        - schema:
            type: string
          description: ID of the Order
          name: id
          in: path
          required: true
      tags:
        - assessment
        - order
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssessmentOrder"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AssessmentOrder"
          description: Successful
      security:
        - jwt: []
      operationId: patchAssessmentOrder
