Skip to main content
PUT
Quiz Question Edit

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

course_id
string
required
module_index
integer
required
position
integer
required

Body

application/json

Request body for PUT /api/v1/courses/{id}/quiz/{module_index}/{position} (GAP3).

A human edit of one quiz question. Every field is optional: an omitted field keeps its current value (the route merges over the existing row -- a partial payload must never blank out the rest of the question).

prompt
string | null

New question text; omit to keep the current prompt

options
string[] | null

New option labels (MCQ only); omit to keep current options. Sending options REQUIRES restating correct

correct

New correct answer (str, or list for multi-select); omit to keep current. Must match the effective option set

explanation
string | null

New answer explanation; omit to keep current

type
string | null

New question type (e.g. mcq_single); omit to keep current

Response

Successful Response

Response for PUT /api/v1/courses/{id}/quiz/{module_index}/{position}: the edited question re-read through the same reader as GET /quiz/review (contract parity). Deliberately NOT named QuizReviewQuestion: the review- read models land in a parallel branch and a same-name model here would merge-collide.

id
string | null

Question identity: m{module_index}_p{position}, matching the review-queue's quiz_question artifact identity

module_index
integer | null

Module the question belongs to (0 = final exam)

position
integer | null

Tier-offset position within the module (associate 0+, professional 1000+, expert 2000+)

tier
string | null

Quiz tier: associate | professional | expert

type
string | null

Question type (e.g. mcq_single, mcq_multi, true_false)

prompt
string | null

Question text after the edit

options
QuizQuestionEditOption · object[]

Option set after the edit (empty for non-MCQ types)

correct_value

Correct answer after the edit (str, or list for multi-select)

explanation
string | null

Answer explanation after the edit