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

# Create Exam

> Creates a new exam configuration under the specified course.<br/><br/>The payload includes exam metadata (title, type, URL), proctoring configuration, permitted items, scheduling windows, and instructor-as-proctor settings.



## OpenAPI

````yaml https://api.dev.smarterproctoring.com/openapi.json post /v1/installs/{installSid}/courses/{courseSid}/exams
openapi: 3.0.0
info:
  title: SmarterProctoring API
  version: 3.0.3
  description: API documentation for SmarterProctoring
servers:
  - url: https://api.smarterproctoring.com
security:
  - client: []
tags:
  - name: App Install
    description: App Install operations
    x-group: App Install
  - name: Course
    description: Course operations
    x-group: Course
  - name: Course Offering
    description: Course Offering operations
    x-group: Course Offering
  - name: Exam
    description: Exam operations
    x-group: Exam
  - name: Exam Configuration
    description: Exam Configuration operations
    x-group: Exam Configuration
  - name: Exam Events
    description: Exam Events operations
    x-group: Exam Events
  - name: Exam Session
    description: Exam Session operations
    x-group: Exam Session
  - name: Exam Session Annotation
    description: Exam Session Annotation operations
    x-group: Exam Session Annotation
  - name: Exam Session Event
    description: Exam Session Event operations
    x-group: Exam Session Event
  - name: Onboarding
    description: Onboarding operations
    x-group: Onboarding
  - name: Provision
    description: Provision operations
    x-group: Provision
  - name: Reports
    description: Reports operations
    x-group: Reports
  - name: Time Zones
    description: Time Zones operations
    x-group: Time Zones
  - name: User
    description: User operations
    x-group: User
paths:
  /v1/installs/{installSid}/courses/{courseSid}/exams:
    post:
      tags:
        - Exam
      summary: Create Exam
      description: >-
        Creates a new exam configuration under the specified
        course.<br/><br/>The payload includes exam metadata (title, type, URL),
        proctoring configuration, permitted items, scheduling windows, and
        instructor-as-proctor settings.
      operationId: postV1InstallsInstallsidCoursesCoursesidExams
      parameters:
        - name: installSid
          in: path
          schema:
            type: string
            description: >-
              Unique SID of the application install. Pattern: `AI` + 32 hex
              chars.
            example: AI1234567890abcdef1234567890abcdef
            pattern: ^AI[a-f0-9]{32}$
          description: 'Unique SID of the application install. Pattern: `AI` + 32 hex chars.'
          required: true
        - name: courseSid
          in: path
          schema:
            type: string
            description: 'Unique SID of the course. Pattern: `CU` + 32 hex chars.'
            example: CU1234567890abcdef1234567890abcdef
            pattern: ^CU[a-f0-9]{32}$
          description: 'Unique SID of the course. Pattern: `CU` + 32 hex chars.'
          required: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Exam'
      responses:
        '200':
          description: Successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExamResponse'
components:
  schemas:
    Exam:
      type: object
      description: Payload for creating a new exam with full configuration.
      properties:
        title:
          type: string
          description: Display title for the exam.
          example: Midterm Exam 1
        type:
          $ref: '#/components/schemas/Model41'
        description:
          type: string
          description: Optional description providing additional details about the exam.
          example: Covers chapters 1-5
          nullable: true
        useProctorManager:
          type: boolean
          description: Whether to use the proctor manager for automated proctor assignment.
          example: true
        requireApproval:
          type: boolean
          description: >-
            Whether exam sessions require manual approval before the student can
            begin.
          example: false
        url:
          type: string
          description: Exam URL
        enableAppointmentSuggestions:
          type: boolean
          description: >-
            Whether to show suggested appointment time slots to students during
            scheduling.
          example: true
        examDeliverySystemModule:
          type: string
          description: >-
            Identifier for the exam delivery system module (e.g., LMS
            integration module name). Optional field controlled by feature flag.
          example: canvas
          nullable: true
        contactUserSid:
          type: string
          description: >-
            SID of the user to contact for exam-related issues. Pattern: `US` +
            32 hex chars.
          example: US1234567890abcdef1234567890abcdef
          nullable: true
          pattern: ^US[a-f0-9]{32}$
        isLimitedScope:
          type: boolean
          description: >-
            When true, the exam is assigned to specific students only. When
            false, all enrolled students can take the exam.
          example: false
          default: false
        configuration:
          $ref: '#/components/schemas/Model45'
        status:
          $ref: '#/components/schemas/status'
      required:
        - title
        - type
        - useProctorManager
        - requireApproval
        - url
        - enableAppointmentSuggestions
        - configuration
    ExamResponse:
      type: object
      properties:
        sessionStatus:
          type: string
          description: Session status
          nullable: true
        sid:
          type: string
          description: Exam SID
          nullable: true
        courseSid:
          type: string
          description: Course SID
          nullable: true
        applicationInstallSid:
          type: string
          description: Application install SID
          nullable: true
        title:
          type: string
          description: Exam title
          nullable: true
        bVirtualTitle:
          type: string
          description: Virtual title
          nullable: true
        type:
          type: string
          description: Exam type
          nullable: true
        description:
          type: string
          description: Description
          nullable: true
        useProctorManager:
          type: boolean
          description: Use proctor manager
          nullable: true
        requireApproval:
          type: boolean
          description: Require approval
          nullable: true
        enableAppointmentSuggestions:
          type: boolean
          description: Enable appointment suggestions
          nullable: true
        url:
          type: string
          description: Exam URL
          nullable: true
        status:
          type: string
          description: Exam status
          nullable: true
        createdDate:
          type: string
          description: Created date
          nullable: true
        editDate:
          type: string
          description: Last modified date
          nullable: true
        contactUserSid:
          type: string
          description: Contact user SID
          nullable: true
        examDeliverySystemModule:
          type: string
          description: Exam delivery system module
          nullable: true
        summary:
          type: string
          description: Exam summary
          nullable: true
        pendingApprovals:
          type: number
          description: Pending approvals count
          nullable: true
        openSessionEvents:
          type: number
          description: Open session events count
          nullable: true
        course:
          type: string
          description: Course details
          nullable: true
        configuration:
          type: string
          description: Exam configuration
          nullable: true
        examSession:
          type: string
          description: Exam session
          nullable: true
        instructorName:
          type: string
          description: Instructor name
          nullable: true
        courseName:
          type: string
          description: Course name
          nullable: true
        totalSessions:
          type: number
          description: Total sessions
          nullable: true
        needsProctorSessions:
          type: number
          description: Sessions needing proctor
          nullable: true
        scriptName:
          type: string
          description: Script name
          nullable: true
        systemName:
          type: string
          description: System name
          nullable: true
        isLimitedScope:
          type: boolean
          description: Is limited scope
          nullable: true
        platformVersion:
          type: string
          description: Platform version
          nullable: true
    Model41:
      type: string
      description: >-
        Exam type. `Online` for web-based exams (requires URL and password),
        `Written` for paper-based exams.
      example: Online
      enum:
        - Online
        - Written
    Model45:
      type: object
      properties:
        instructorAsProctor:
          $ref: '#/components/schemas/Model43'
        examOpenDate:
          type: string
          description: Exam Open Date
          example: '1970-01-01T00:00:00.000Z'
          pattern: .*Z
          x-format:
            isoDate: true
        examCloseDate:
          type: string
          description: Exam Close Date
          example: '1970-01-01T00:00:00.000Z'
          pattern: .*Z
          x-format:
            isoDate: true
        scheduleOpenDate:
          type: string
          description: Schedule Open Date
          example: '1970-01-01T00:00:00.000Z'
          default: '2000-01-01'
          nullable: true
          pattern: .*Z
          x-format:
            isoDate: true
        scheduleCloseDate:
          type: string
          description: Schedule Close Date
          example: '1970-01-01T00:00:00.000Z'
          default: '2070-01-01'
          nullable: true
          pattern: .*Z
          x-format:
            isoDate: true
        password:
          type: string
          description: Password
        duration:
          type: integer
          description: Duration Minutes
          maximum: 480
          x-constraint:
            sign: positive
        attempts:
          type: integer
          description: Attempts Allowed
          x-constraint:
            sign: positive
        requiredSoftware:
          type: string
          description: Required Software
          nullable: true
        studentNotes:
          type: string
          description: Student Notes
          nullable: true
        permittedBathroomBreak:
          type: boolean
          description: Is Bathroom Break permitted
        permittedBathroomBreakInformation:
          type: string
          description: Additional Information about bathroom break
          nullable: true
        permittedBlankPaper:
          type: boolean
          description: Is blank paper permitted
        permittedBlankPaperInformation:
          type: string
          description: Additional Information about blank paper
          nullable: true
        permittedCalculator:
          type: boolean
          description: Is calculator permitted
        permittedCalculatorInformation:
          type: string
          description: Additional Information about calculator
          nullable: true
        permittedDictionary:
          type: boolean
          description: Is Dictionary permitted
        permittedDictionaryInformation:
          type: string
          description: Additional Information about Dictionary
          nullable: true
        permittedEarplugs:
          type: boolean
          description: Is Earplugs permitted
        permittedEarplugsInformation:
          type: string
          description: Additional Information about Earplugs
          nullable: true
        permittedFormulaSheet:
          type: boolean
          description: Is FormulaSheet permitted
        permittedFormulaSheetInformation:
          type: string
          description: Additional Information about FormulaSheet
          nullable: true
        permittedNotes:
          type: boolean
          description: Is Notes permitted
        permittedNotesInformation:
          type: string
          description: Additional Information about Notes
          nullable: true
        permittedOtherItems:
          type: string
          description: Other permitted Items
          nullable: true
        permittedTextbook:
          type: boolean
          description: Is Textbook permitted
        permittedTextbookInformation:
          type: string
          description: Additional Information about Textbook
          nullable: true
        permittedWebsites:
          type: boolean
          description: Is Websites permitted
        permittedWebsitesInformation:
          type: string
          description: Additional Information about Websites
          nullable: true
        proctorNotes:
          type: string
          description: Proctor Notes
          nullable: true
        proctorTypes:
          $ref: '#/components/schemas/Model44'
        apiExamId:
          type: string
          description: API exam ID
        modalityOptions:
          $ref: '#/components/schemas/modalityOptions'
        virtualCalculatorType:
          $ref: '#/components/schemas/virtualCalculatorType'
      required:
        - instructorAsProctor
        - examOpenDate
        - examCloseDate
        - password
        - duration
        - attempts
        - requiredSoftware
        - studentNotes
        - permittedBathroomBreak
        - permittedBathroomBreakInformation
        - permittedBlankPaper
        - permittedBlankPaperInformation
        - permittedCalculator
        - permittedCalculatorInformation
        - permittedDictionary
        - permittedDictionaryInformation
        - permittedEarplugs
        - permittedEarplugsInformation
        - permittedFormulaSheet
        - permittedFormulaSheetInformation
        - permittedNotes
        - permittedNotesInformation
        - permittedOtherItems
        - permittedTextbook
        - permittedTextbookInformation
        - permittedWebsites
        - permittedWebsitesInformation
        - proctorNotes
        - proctorTypes
    status:
      type: string
      description: >-
        Status of the exam. `active` exams are visible to students, `draft` are
        in preparation, `deleted` are soft-deleted.
      example: active
      default: active
      enum:
        - active
        - draft
        - deleted
    Model43:
      type: array
      description: List of Instructor as Proctor
      items:
        $ref: '#/components/schemas/Model42'
    Model44:
      type: array
      description: Types of proctor for exam
      minItems: 1
      items:
        type: string
        pattern: ^TS[a-f0-9]{32}$
    modalityOptions:
      type: object
      description: List of modality options
      default: {}
    virtualCalculatorType:
      type: string
      description: Calculator for student to use
      example: scientific-calc
      enum:
        - scientific-calc
        - graphing-calc
        - matrix-calc
        - four-function-calc
      nullable: true
    Model42:
      type: object
      description: Exam Configuration Instructor Proctor payload
      properties:
        location:
          type: string
          description: Location
        timeType:
          $ref: '#/components/schemas/timeType'
        startTime:
          type: string
          description: Start Time
          example: '1970-01-01T00:00:00.000Z'
          pattern: .*Z
          x-format:
            isoDate: true
        endTime:
          type: string
          description: End Time
        capacity:
          type: number
          description: Capacity
          nullable: true
      required:
        - location
        - timeType
        - startTime
        - endTime
    timeType:
      type: string
      description: Time Type
      enum:
        - between
        - at
  securitySchemes:
    client:
      type: apiKey
      name: token
      in: header

````