CreateQuizRequest

A request or response body; the type column links to the schemas it refers to.

CreateQuizRequest

FieldTypeRequiredDescription
owner_organization_idstring (uuid)yes

Organization the quiz belongs to. Always required.

owner_department_idstring (uuid)no

Omit for a quiz owned by the organization directly.

slugstringyes

Unique within the organization. Slugs are lowercase letters and digits in words separated by single hyphens, like fire-safety-basics.

1–100 characters · matches ^[a-z0-9]+(-[a-z0-9]+)*$

namestringyes

1–200 characters

descriptionstringno

Omit or send empty for no description.

at most 2000 characters

footer_markdownstringno

Omit or send empty for no closing note.

at most 50000 characters

delivery_kindstringyes

live: takeable only while one of the quiz's scheduled sittings (scheduled_quizzes) is open — the same quiz can be scheduled year after year. async: self-scheduled, takeable whenever the quiz is published; sittings do not apply.

one of "live" | "async"

time_limit_secondsintegerno

Per-attempt time limit in seconds; a live sitting's close still caps it.

selection_modestringyes

fixed: every question in authored order, the same for everyone. shuffle: every question, order and options shuffled per attempt. random_draw: each bank link contributes draw_count randomly chosen questions (all when null), shuffled.

one of "fixed" | "shuffle" | "random_draw"

pass_percentagenumberyes

Score required to pass, as a percentage of the questions presented.

minimum 0 · maximum 100

max_attemptsintegerno

Omit for unlimited attempts.

show_results_immediatelybooleanno

Defaults to true.

show_correct_answersbooleanno

Defaults to false.

bank_linksarray of objectno

Question banks to link from the start, in presentation order; each must belong to the owning organization. Omit to link banks later via PUT /quizzes/{quiz_id}/banks.

at most 50 items

jsonExample
{
  "owner_organization_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "owner_department_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "slug": "annual-fire-safety",
  "name": "Annual fire safety quiz",
  "description": "string",
  "footer_markdown": "**Before you submit:** review every answer. Submission cannot be undone.",
  "delivery_kind": "live",
  "time_limit_seconds": 1200,
  "selection_mode": "fixed",
  "pass_percentage": 80,
  "max_attempts": 3,
  "show_results_immediately": true,
  "show_correct_answers": true,
  "bank_links": [
    {
      "question_bank_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
      "draw_count": 0
    }
  ]
}