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

# Issue Assessment

> Issue a technical assessment or video screening for a candidate. The problem type is inferred from problemId.



## OpenAPI

````yaml https://api.ropes.ai/api/docs/openapi.json post /api/public/assessments/new
openapi: 3.0.0
info:
  title: Ropes Public API
  version: 1.0.0
  description: >-
    Public API for Ropes. Authenticate using your API key in the x-api-key
    header.
servers:
  - url: https://api.ropes.ai
    description: Production server
  - url: http://localhost:3001
    description: Local development server
security: []
paths:
  /api/public/assessments/new:
    post:
      tags:
        - Assessments
      summary: Issue Assessment
      description: >-
        Issue a technical assessment or video screening for a candidate. The
        problem type is inferred from problemId.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAssessmentRequest'
      responses:
        '200':
          description: Successfully created assessment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAssessmentResponse'
        '400':
          description: Bad request - Invalid candidate or problem
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: >-
            Conflict - assessment already exists or problem creation is still in
            progress
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAssessmentConflictResponse'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - ApiKeyAuth: []
components:
  schemas:
    CreateAssessmentRequest:
      type: object
      properties:
        candidateIdentifier:
          type: string
          description: The identifier of the candidate
        problemId:
          type: string
          description: >-
            The identifier of the technical assessment or video screen to
            assign, as returned by the problems endpoints
        submitterEmail:
          type: string
          format: email
          description: Email address of the assessment submitter (optional)
        shouldSendEmail:
          type: boolean
          default: true
          description: Whether to send an email notification to the candidate
        bypassIDCheck:
          type: boolean
          default: false
          description: Whether to bypass ID verification checks
        isSelfServe:
          type: boolean
          description: Whether this assessment was created via the self-serve flow
        inviteEmailLocale:
          type: string
          enum:
            - en
            - fr
          default: en
          description: >-
            Language for the invite email. Only takes effect when the problem
            supports that spoken locale; otherwise English is used.
      required:
        - candidateIdentifier
        - problemId
    CreateAssessmentResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the operation was successful
        identifier:
          type: string
          description: Unique identifier for the newly created assessment
        message:
          type: string
          description: Success or error message
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
          description: Error message
        message:
          type: string
          description: Error message (alternative field)
    CreateAssessmentConflictResponse:
      oneOf:
        - $ref: '#/components/schemas/CreateAssessmentAlreadyExistsResponse'
        - $ref: '#/components/schemas/CreateAssessmentProblemCreatingResponse'
      discriminator:
        propertyName: errorCode
        mapping:
          INTERVIEW_ALREADY_EXISTS:
            $ref: '#/components/schemas/CreateAssessmentAlreadyExistsResponse'
          PROBLEM_CREATING:
            $ref: '#/components/schemas/CreateAssessmentProblemCreatingResponse'
    CreateAssessmentAlreadyExistsResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
          description: The assessment was not created
        errorCode:
          type: string
          enum:
            - INTERVIEW_ALREADY_EXISTS
          description: Stable error code indicating an unstarted assessment already exists
        message:
          type: string
          description: Human-readable error message
        identifier:
          type: string
          description: Identifier for the existing unstarted assessment
      required:
        - success
        - errorCode
        - message
        - identifier
    CreateAssessmentProblemCreatingResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
            - false
          description: The assessment was not created
        errorCode:
          type: string
          enum:
            - PROBLEM_CREATING
          description: Stable error code indicating the problem is still being created
        message:
          type: string
          description: Human-readable error message
        problemId:
          type: string
          description: Problem identifier from the request
        problemStatus:
          type: string
          enum:
            - Creating
          description: Current problem status
        retryable:
          type: boolean
          enum:
            - true
          description: Whether retrying after the problem is Ready can succeed
      required:
        - success
        - errorCode
        - message
        - problemId
        - problemStatus
        - retryable
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

````