The Exams API is the core of ExamPlatform’s content management surface. Examiners and admins use these endpoints to draft new exams, configure scoring rules and AI evaluation settings, assign students, and publish exams when they are ready. Students accessing the API see only the exams they have been assigned to. All mutating endpoints require at minimum theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Saurabh-07586/examplatform/llms.txt
Use this file to discover all available pages before exploring further.
examiner role; deletion and force-sensitive operations require admin.
GET /api/exams
Retrieve the list of exams accessible to the authenticated user. For examiners and admins, this returns all exams on the platform. For students, only exams they have been assigned to are returned.Query Parameters
Filter by exam status. Accepted values:
draft, upcoming, active, live, completed.Filter by subject name (case-insensitive partial match).
Example Request
Example Response
POST /api/exams
Create a new exam indraft status. The exam is not visible to students and cannot be started until it is published via POST /api/exams/:id/publish. Requires Examiner or Admin role.
Request Body
Display title of the exam (e.g.,
"Final Examination — Computer Science").Subject or course the exam belongs to.
ISO 8601 datetime for when the exam window opens (e.g.,
"2024-11-15T09:00:00Z").ISO 8601 datetime for when the exam window closes. Must be after
start_time.Time limit in minutes that a student has to complete the exam once they begin.
Number of questions to include in this exam.
If
true, incorrect answers deduct marks as configured per question.If
true, subjective answers are automatically evaluated by the AI grading engine after submission.If
true, examiners can manually override AI-assigned grades.If
true, all AI-evaluated answers are flagged for human review before results are published.Minimum score percentage required to pass the exam. Defaults to
40 if not provided.Exam instructions shown to students before they begin. Supports plain text.
Example Request
Example Response
PATCH /api/exams/:id
Update fields on an existing exam. Most fields are editable while the exam is indraft status. Structural changes (questions, timing, scoring) may be restricted once the exam is published. Requires Examiner or Admin role.
Path Parameters
The unique identifier of the exam to update.
Request Body
Send any subset of the fields accepted byPOST /api/exams. Only provided fields are updated; omitted fields remain unchanged.
Example Request
Example Response
DELETE /api/exams/:id
Permanently delete an exam draft. Requires Admin role. Only exams indraft status can be deleted; published or live exams must be handled through other administrative workflows.
Path Parameters
The unique identifier of the exam to delete.
Example Request
Response
Returns204 No Content on success with no response body.
POST /api/exams/:id/publish
Publish an exam, transitioning its status fromdraft to upcoming. Once published, the exam becomes visible to assigned students and will become live when the start_time is reached. Requires Examiner or Admin role.
Path Parameters
The unique identifier of the exam to publish.
Example Request
Example Response
POST /api/exams/:id/assign
Assign one or more students to an exam. Only assigned students can access and sit the exam. This endpoint can be called multiple times to add students incrementally; re-assigning a student who is already enrolled has no effect. Requires Examiner or Admin role.Path Parameters
The unique identifier of the exam.
Request Body
An array of user ID strings identifying the students to assign. Example:
["usr_01J2K9XMAB", "usr_01J3P7RQZN"].