Skip to content

API: Exams endpoints

/exams

GET /exams

List owned and managed exams.

[] Input:

  • string search: optional search string to filter results
  • integer limit: limit number of results
    • default (in search mode): 16
  • integer page: page number
    • default: 1
    • not used in search mode!

[] Output:

  • list
    • string code: exam identification string
    • string name: title of the exam
    • boolean active: exam is active

/exam

GET /exam

Get/check exam.

[] Input:

  • [!] string exam: exam identification string

[] Output:

  • string exam: exam identification string
  • string name: title of the exam
  • string quiz: quiz identification string (the Quiz set the exam is attached to)
  • boolean active: exam is active
  • string status: exam status
    • INACTIVE: exam is inactive but will be activated later
    • ACTIVE: exam is active and new tests can be started
    • PAUSED: exam is active but new tests cannot be started
    • REVIEW: exam is active but already entered review period
    • EXPIRED: exam is inactive
  • datetime start: start date and time
  • datetime end: end date and time

POST /exam

Create a new exam from an existing Quiz set.

[] Input:

  • string language: desired exam language
  • [!] string title: title of the exam
  • string type: type of the exam
    • possible values: exam / championship / homework / survey
      • exam: regular exam
      • championship: exam with championship features enabled
      • homework: homework assignment, can be paused and continued during the exam period
      • survey: survey (optionally anonymous) with no grading
    • default: exam
  • [!] string quiz: the Quiz set (specified using the quiz identification string) the exam is attached to
  • [!] datetime open: exam start time
  • [!] datetime close: exam end time

[] Output:

  • string exam: exam identification string

DELETE /exam

Remove/archive exam.

[] Input:

  • [!] string exam: exam identification string

/exam:users

GET /exam:users

List all users on an exam.

[] Input:

  • [!] string exam: exam identification string

[] Output:

  • list
    • string code: user identification string
    • string name: name of the examinee

POST /exam:users

Assign user(s) to an exam.

[] Input:

  • [!] string exam: exam identification string
  • [!] string users: comma-separated list of user identification strings

DELETE /exam:users

Remove user(s) from an exam.

[] Input:

  • [!] string exam: exam identification string
  • [!] string users: comma-separated list of user identification strings

/exam:summary

POST /exam:summary

Submit a new exam summary.

[] Input:

  • [!] string exam: exam identification string
  • string language: summary language
  • string type: type of summary
    • possible values: ai
    • default: ai
  • [!] string summary: summary text
    • basic HTML formatting allowed, but avoid complex designs
    • keep the summary short and concise
    • try to avoid including personal information (such as usernames, names and contact addresses)
  • string llm: name of the Large Language Model used to generate the summary (in case of AI summaries)
    • preferred values: openai / claude / gemini
  • string model: exact LLM model name used to generate the summary (in case of AI summaries)
    • must specify llm field as well