Practice quiz

A self-marking practice quiz with answers and explanations, from a topic, your text or a document.

  • Price1 credit (10p) per session
  • Typical time15 s to 2 min
  • Scopelearning:write
  • Runs asA background job
Try it

Run practice quiz in the sandbox

No key and nothing to pay. The sandbox returns a realistic example in a couple of seconds; no AI runs and no data is kept.

A subject to study from general knowledge, for example "Photosynthesis for GCSE Biology".
Your own teaching text (at least 200 characters, at most 10,000 words). Material stays grounded in it.
A name for your text or document, such as the lesson or chapter title.
Concepts to concentrate on, in plain words.
How to pitch the material. Leave it out for upper-secondary to first-year university level.
Who the material is for, for example "Year 10 learners who find maths hard".
The language to write in. British English unless you choose another.
How many quiz items to make (3 to 20).
mixed, easy (recall), medium (apply) or hard (reason across ideas).
  1. Queued202 and a job id, straight away
  2. ProcessingPoll, stream or wait for a webhook
  3. SucceededResult and files on the job
Every AI request runs as a background job, so nothing times out.

Mixes multiple choice, true or false, fill the blank and short answer items. Every item carries its answer: the expected answer, the correct option or accepted answers, and an explanation that names the misconception behind a wrong answer. Hide answer from learners until they respond. An item may include a figure brief; its text always states everything needed to answer without it. For practice only, never an official grade.

Requires learning:write. Costs 1 credit per session. Send a unique Idempotency-Key; reuse it with the identical body when retrying. Returns 202 with a job: poll GET /jobs/{job_id}, stream GET /jobs/{job_id}/events, or use a signed webhook.

Practice quiz

POST/v1/practice/quizzes

Scope learning:write

Headers

Practice quiz: headers
FieldDetails
Idempotency-KeystringRequiredA unique key per new operation; reuse it with the identical body when retrying.
EduMark-VersionenumAPI version. Defaults to the latest.One of 2026-10-21

Request body

Practice quiz: request body
FieldDetails
topicstring, optionalA subject to study from general knowledge, for example "Photosynthesis for GCSE Biology".Up to 200 characters
source_textstring, optionalYour own teaching text (at least 200 characters, at most 10,000 words). Material stays grounded in it.Up to 120,000 characters
documentFileReference or DocumentInput, optionalA PDF, DOCX or TXT to study from: {"file_id"} from POST /v1/files, or inline base64.
file_iddocument.file_idstringRequiredThe id returned by POST /v1/files, after POST /v1/files/{id}/complete reported ready.When sending FileReferencePattern ^file_[a-f0-9]{32}$
filenamedocument.filenamestringRequiredWhen sending DocumentInputUp to 200 characters
base64document.base64stringRequiredWhen sending DocumentInputUp to 27,962,028 characters
mime_typedocument.mime_typestring, optionalWhen sending DocumentInputUp to 150 characters
titlestring, optionalA name for your text or document, such as the lesson or chapter title.Up to 200 characters
focusstringConcepts to concentrate on, in plain words.Up to 500 charactersDefault ""
levelenum, optionalHow to pitch the material. Leave it out for upper-secondary to first-year university level.One of new_to_this, foundation, intermediate, advanced, exam_revision, deep_dive
audiencestring, optionalWho the material is for, for example "Year 10 learners who find maths hard".Up to 200 characters
languageenumThe language to write in. British English unless you choose another.One of English, Welsh, Irish, Gaelic, French, Spanish, German, Italian, Portuguese, Dutch, Polish, Arabic, Urdu, Hindi, Punjabi, Bengali, Chinese, Mandarin, Cantonese, Japanese, Korean, Russian, Turkish, Greek, Swedish, Norwegian, Danish, Finnish, Romanian, Hungarian, Czech, Ukrainian, Farsi, Persian, Hebrew, Swahili, Somali, Tamil, Gujarati, Vietnamese, Thai, Indonesian, Malay, Tagalog, LatinDefault "English"
countintegerHow many quiz items to make (3 to 20).3 to 20Default 8
difficultyenummixed, easy (recall), medium (apply) or hard (reason across ideas).One of mixed, easy, medium, hardDefault "mixed"

Responses

StatusMeaning
202Successful Response
400Request rejected. Inspect error.code and request_id; failed work is not billed.
401Request rejected. Inspect error.code and request_id; failed work is not billed.
402Request rejected. Inspect error.code and request_id; failed work is not billed.
403Request rejected. Inspect error.code and request_id; failed work is not billed.
404Request rejected. Inspect error.code and request_id; failed work is not billed.
409Request rejected. Inspect error.code and request_id; failed work is not billed.
410Request rejected. Inspect error.code and request_id; failed work is not billed.
413Request rejected. Inspect error.code and request_id; failed work is not billed.
415Request rejected. Inspect error.code and request_id; failed work is not billed.
422Validation Error
429Request rejected. Inspect error.code and request_id; failed work is not billed.
503Request rejected. Inspect error.code and request_id; failed work is not billed.

Files and errors

Product errors

  • SOURCE_REQUIREDHTTP 422. Provide exactly one of topic, source_text or document.
  • SOURCE_TOO_SHORTHTTP 422. source_text needs at least 200 characters to study from.
  • INPUT_TOO_LARGEHTTP 422. source_text supports at most 10,000 words.
  • MODEL_RESULT_INVALIDOn the finished job. The generated material did not pass EduMark's checks. No charge was applied.
  • PROCESSING_UNAVAILABLEOn the finished job. Processing could not complete safely. No complete result was issued.
  • DOCUMENT_READ_FAILEDOn the finished job. The document could not be read safely.