Description

This API allows for the CRUD of the described resources and the student_sessions for the exam.

API Url

The current V3 API is set under /api/v3 of the application domain.

Accept header

The Accept header must also be set to “application/vnd.procwise.v3”.

Authentication required

Authentication token has to be part of the request. It needs to be passed in the Authorization header.
Example:
Authorization: “Token token=YourToken

Filtering and sorting

Filtering and sorting can be done on the index endpoints. The filter and sort parameters are passed as query string parameters in the format of stringified JSON. More examples can be found in the parameters documentation of the specific endpoints.
Example:
domain/api/v3/exams?filter={“start_time”:{“gte”:“2025-02-01”}}&sort=[{“start_time”:“desc”},{“name”:“asc”}]

Resources

Attachments

Resource Description
GET /exams/:exam_id/attachments List attachments
GET /exams/:exam_id/attachments/:id Show an attachment
POST /exams/:exam_id/attachments Create an attachment using multipart
DELETE /exams/:exam_id/attachments/:id Destroy an attachment

Documents

Resource Description
GET /exams/:exam_id/documents List documents
GET /exams/:exam_id/documents/:id Show a document
POST /exams/:exam_id/documents Create a document
PATCH /exams/:exam_id/documents/:id Update a document
PUT /exams/:exam_id/documents/:id Update a document
DELETE /exams/:exam_id/documents/:id Destroy a document

Exams

Resource Description
GET /exams List exams
GET /exams/:id Show an exam
POST /exams Create an exam
PATCH /exams/:id Update an exam
PUT /exams/:id Update an exam
DELETE /exams/:id Destroy an exam
GET /exams/:id/index_students (Deprecated) List the students in an exam
GET /exams/id/show_student (Deprecated) Show a student in an exam
GET /exams/:id/show_lti_student Show a student in an lti exam
POST /exams/:id/add_student (Deprecated) Create and add a student to an exam
DELETE /exams/:id/delete_student (Deprecated) Destroy and remove a student from an exam
POST /exams/:id/send_emails Send the exam emails for all the students in an exam
PUT /exams/:id/add_comanager Add a user as a comanager to an exam
DELETE /exams/:id/remove_comanager Remove a user as a comanger to an exam
PUT /exams/:id/generate_exam_documents_zip Request a job to create a zip file of all uploaded files by students. This endpoint does not return body.
GET /exams/:id/status_exam_documents_zip Check the status of existing job. Possible zip_job_status values are not_found, never_run, failure, queued, running, and success.
GET /exams/:id/download_exam_documents_zip Download the zip file. Before calling method clients should check if job status endpoint returns success. Successful response body of this endpoint is a binary file.

Identity providers

Resource Description
GET api/v3/identity_providers List all identity provider configurations.

Institutes

Resource Description
GET /institutes List all institutes ( Premium - Superuser only )
GET /institutes/:id Show an institute
POST /institutes Create an institute ( Premium - Superuser only )
PATCH /institutes/:id Update an institute
PUT /institutes/:id Update an institute
DELETE /institutes/:id Destroy an institute ( Premium - Superuser only )

Lti resources

Resource Description
GET api/v3/lti_resources List all lti_resources. This is the term used in the API for LTI connections.
GET api/v3/lti_resources/:id Show a lti resource by its id
POST api/v3/lti_resources Create a lti resource
PATCH api/v3/lti_resources/:id Update a lti resource
PUT api/v3/lti_resources/:id Update a lti resource
DELETE api/v3/lti_resources/:id Destroy a lti resource

Student sessions

Resource Description
GET /exams/:exam_id/student_sessions List the students in an exam
GET /student_sessions List all student_sessions
GET /student_sessions/:id Show a student by its id
POST /exams/:exam_id/student_sessions Create and add a student to an exam
PATCH /student_sessions/:id Update a student
PUT /student_sessions/:id Update a student
DELETE /student_sessions/:id Destroy and remove a student from an exam
POST /student_sessions/:id/end_exam Ends a student session, stops the recordings and sends a notification to the student
DELETE /student_sessions/:id/id_card Destroy the ID photo of a student
DELETE /student_sessions/:id/face_photo Destroy the face photo of a student
GET /student_sessions/:id/face_photo Get a expiring url, lasting for 5 minutes, for the face_photo of the student
POST /student_sessions/:id/assign_proctor Assigns proctor to a student session
DELETE /student_sessions/:id/assigned_proctor Unassigns proctor from a student session

Tool providers

Resource Description
GET api/v3/tool_providers List all tool_providers. This is the term used in the API for External Platforms.
GET api/v3/tool_provider/:id Show a tool provider by its id
POST api/v3/tool_providers Create a tool provider
PATCH api/v3/tool_providers/:id Update a tool provider
PUT api/v3/tool_providers/:id Update a tool provider
DELETE api/v3/tool_providers/:id Destroy a tool provider that no longer have Lti Resources linked to exams

Users

Resource Description
GET /institutes/:institute_id/users List users
GET /institutes/:institute_id/users/:id Show an user
POST /institutes/:institute_id/users Create an user
PATCH /institutes/:institute_id/users/:id Update an user
PUT /institutes/:institute_id/users/:id Update an user
DELETE /institutes/:institute_id/users/:id Destroy an user