---
title: "Create Exam"
method: POST
path: "/v1/installs/{installSid}/courses/{courseSid}/exams"
tags: ["Exam"]
---

# Create Exam

`POST /v1/installs/{installSid}/courses/{courseSid}/exams`

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.

## Path parameters

- `installSid` string, required — Unique SID of the application install. Pattern: `AI` + 32 hex chars.
- `courseSid` string, required — Unique SID of the course. Pattern: `CU` + 32 hex chars.

## Request body

- Exam — Payload for creating a new exam with full configuration.
  - `title` string, required — Display title for the exam.
  - `type` 'Online' | 'Written', required — Exam type. `Online` for web-based exams (requires URL and password), `Written` for paper-based exams.
  - `description` string, nullable — Optional description providing additional details about the exam.
  - `useProctorManager` boolean, required — Whether to use the proctor manager for automated proctor assignment.
  - `requireApproval` boolean, required — Whether exam sessions require manual approval before the student can begin.
  - `url` string, required — Exam URL
  - `enableAppointmentSuggestions` boolean, required — Whether to show suggested appointment time slots to students during scheduling.
  - `examDeliverySystemModule` string, nullable — Identifier for the exam delivery system module (e.g., LMS integration module name). Optional field controlled by feature flag.
  - `contactUserSid` string, nullable — SID of the user to contact for exam-related issues. Pattern: `US` + 32 hex chars.
  - `isLimitedScope` boolean — When true, the exam is assigned to specific students only. When false, all enrolled students can take the exam.
  - `configuration` Model45, required
    - `instructorAsProctor` Model42[], required — List of Instructor as Proctor
      - `location` string, required — Location
      - `timeType` 'between' | 'at', required — Time Type
      - `startTime` string, required — Start Time
      - `endTime` string, required — End Time
      - `capacity` number, nullable — Capacity
    - `examOpenDate` string, required — Exam Open Date
    - `examCloseDate` string, required — Exam Close Date
    - `scheduleOpenDate` string, nullable — Schedule Open Date
    - `scheduleCloseDate` string, nullable — Schedule Close Date
    - `password` string, required — Password
    - `duration` integer, required — Duration Minutes
    - `attempts` integer, required — Attempts Allowed
    - `requiredSoftware` string, nullable, required — Required Software
    - `studentNotes` string, nullable, required — Student Notes
    - `permittedBathroomBreak` boolean, required — Is Bathroom Break permitted
    - `permittedBathroomBreakInformation` string, nullable, required — Additional Information about bathroom break
    - `permittedBlankPaper` boolean, required — Is blank paper permitted
    - `permittedBlankPaperInformation` string, nullable, required — Additional Information about blank paper
    - `permittedCalculator` boolean, required — Is calculator permitted
    - `permittedCalculatorInformation` string, nullable, required — Additional Information about calculator
    - `permittedDictionary` boolean, required — Is Dictionary permitted
    - `permittedDictionaryInformation` string, nullable, required — Additional Information about Dictionary
    - `permittedEarplugs` boolean, required — Is Earplugs permitted
    - `permittedEarplugsInformation` string, nullable, required — Additional Information about Earplugs
    - `permittedFormulaSheet` boolean, required — Is FormulaSheet permitted
    - `permittedFormulaSheetInformation` string, nullable, required — Additional Information about FormulaSheet
    - `permittedNotes` boolean, required — Is Notes permitted
    - `permittedNotesInformation` string, nullable, required — Additional Information about Notes
    - `permittedOtherItems` string, nullable, required — Other permitted Items
    - `permittedTextbook` boolean, required — Is Textbook permitted
    - `permittedTextbookInformation` string, nullable, required — Additional Information about Textbook
    - `permittedWebsites` boolean, required — Is Websites permitted
    - `permittedWebsitesInformation` string, nullable, required — Additional Information about Websites
    - `proctorNotes` string, nullable, required — Proctor Notes
    - `proctorTypes` string[], required — Types of proctor for exam
    - `apiExamId` string, nullable — API exam ID
    - `modalityOptions` ModalityOptions — List of modality options
    - `virtualCalculatorType` 'scientific-calc' | 'graphing-calc' | 'matrix-calc' | 'four-function-calc', nullable — Calculator for student to use
  - `status` 'active' | 'draft' | 'deleted' — Status of the exam. `active` exams are visible to students, `draft` are in preparation, `deleted` are soft-deleted.

## Response `200`

Successful

- ExamResponse
  - `sessionStatus` string, nullable — Session status
  - `sid` string, nullable — Exam SID
  - `courseSid` string, nullable — Course SID
  - `applicationInstallSid` string, nullable — Application install SID
  - `title` string, nullable — Exam title
  - `bVirtualTitle` string, nullable — Virtual title
  - `type` string, nullable — Exam type
  - `description` string, nullable — Description
  - `useProctorManager` boolean, nullable — Use proctor manager
  - `requireApproval` boolean, nullable — Require approval
  - `enableAppointmentSuggestions` boolean, nullable — Enable appointment suggestions
  - `url` string, nullable — Exam URL
  - `status` string, nullable — Exam status
  - `createdDate` string, nullable — Created date
  - `editDate` string, nullable — Last modified date
  - `contactUserSid` string, nullable — Contact user SID
  - `examDeliverySystemModule` string, nullable — Exam delivery system module
  - `summary` string, nullable — Exam summary
  - `pendingApprovals` number, nullable — Pending approvals count
  - `openSessionEvents` number, nullable — Open session events count
  - `course` string, nullable — Course details
  - `configuration` string, nullable — Exam configuration
  - `examSession` string, nullable — Exam session
  - `instructorName` string, nullable — Instructor name
  - `courseName` string, nullable — Course name
  - `totalSessions` number, nullable — Total sessions
  - `needsProctorSessions` number, nullable — Sessions needing proctor
  - `scriptName` string, nullable — Script name
  - `systemName` string, nullable — System name
  - `isLimitedScope` boolean, nullable — Is limited scope
  - `platformVersion` string, nullable — Platform version

---

[API](https://skmtc.net/smarterproctoring/apis/smarterproctoring-api-2.md) · [All operations](https://skmtc.net/smarterproctoring/apis/smarterproctoring-api-2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/smarterproctoring/smarterproctoring-api-2/versions/561e0d9fd244/schema)
