Quiz Authoring

Build a question bank in an afternoon

You do not need a question bank to start. Generate one with an AI assistant from a sample file, typeset real mathematics, and hang diagrams off any question — then review every answer before it goes anywhere near a candidate.

The fastest way to start

Generate questions with an AI assistant

Questions are supplied as a JSON array, which is a format any general AI assistant produces reliably. Hand it one of our sample files as the example, tell it what you want, and save the reply.

1. Start from a sample

Download one of the three files below and attach it to your chat. It carries the format, so you do not have to describe it.

2. Ask for the set

Use the prompt below, edited for your sections and counts. The limits are written into it so the reply stays inside them.

3. Review, then upload

Check the answers, save the reply as a .json file, and import it into a draft quiz.

A worked prompt — replace the sections, counts, and difficulty mix with your own:

Using the JSON format in the file I've attached, create 100 GRE-style questions
across 4 sections: "Maths", "Comprehension", "Puzzle", and "English", with 25
questions in each section.

Difficulty mix across the whole set: 50 easy questions, 25 medium, and 25 hard.

Rules:
- Every question is multiple choice with exactly 4 options.
- "correctAnswer" is the one-based index of the correct option (1 = first option).
- Use the exact section names listed above, spelled identically everywhere.
- Do not duplicate questions.
- Solve each question yourself and confirm the indexed option is the right answer.
- Return ONLY the raw JSON array. No markdown code fences, no commentary,
  no explanation before or after.

Limits - these are enforced on upload, so do not exceed any of them:
- At most 720 questions and at most 20 distinct section names in the file.
- Question "text": under 2000 characters. Keep it under 300 for readability.
- Each option: under 2000 characters. Keep options short and comparable.
- Between 1 and 5 options per question (use 4).
- "correctAnswer": an integer from 1 to the number of options.
- Each question object must serialise to under 8000 characters of JSON.

Review every generated answer. Questions are locked once submitted.

An AI assistant will produce a confident correctAnswer that is sometimes simply wrong, and a wrong key marks a right answer as a failure. Check each one against its options before you import. After questions are submitted to a quiz they are locked and cannot be edited, because changing them would alter attempts already sat against them.

Using AI to write the paper, not to sit it.

These are two different things. Here, you generate questions ahead of time and a human reviews every answer before anyone sees them. During an exam, an unknown party answers with nobody checking — which is what our anti-AI measures are aimed at. Those measures are deterrents that leave a record for a reviewer; they do not prevent cheating, and we do not claim they do.

Notation

Maths, typeset with KaTeX

Write LaTeX between dollar signs in the question text or in any option, and it renders as properly typeset mathematics for the participant.

To write Use
Square root$\\sqrt{2}$
Fraction$\\frac{3}{4}$
Exponent$x^2$, $2^{10}$
Subscript$a_1$, $H_2O$
Integral$\\int_0^1 x^2 dx$
Sum$\\sum_{i=1}^{n} i$
Times / divide$3 \\times 4$, $8 \\div 2$
Plus-minus$\\pm 5$
Not equal, ≤, ≥$\\neq$, $\\leq$, $\\geq$
Pi, theta$\\pi$, $\\theta$
Degrees$90^\\circ$
{
  "text": "Simplify $\\sqrt{12} + \\sqrt{27}$.",
  "section": "Algebra",
  "options": ["$5\\sqrt{3}$", "$6\\sqrt{3}$", "$39$", "$\\sqrt{39}$"],
  "correctAnswer": 1
}

Double every backslash

This is JSON, so a LaTeX \sqrt is written \\sqrt in the file. It is the single most common authoring mistake. A single backslash either makes the file invalid JSON, or is swallowed as an escape and the maths shows as raw source.

Close every dollar sign

An unpaired $ is treated as a literal dollar sign, so a stray one leaves the rest of the sentence unrendered. For a real dollar amount, write \\$5.

KaTeX runs with linking and image commands disabled, so \href, \url and \includegraphics stay inert in question text. Maths is notation, never a way into the page.

Diagrams

Questions with pictures

Add an optional imageUrl to any question and it is shown between the question text and the options — circuit diagrams, charts, pattern sequences, spot-the-difference. SVG works particularly well.

{
  "text": "Which shape comes next in the sequence?",
  "section": "Visual Reasoning",
  "imageUrl": "https://your-cdn.example.com/seq.svg",
  "options": ["Square", "Triangle", "Circle", "Pentagon"],
  "correctAnswer": 3
}

https:// only

Up to 500 characters, with no spaces or quotes. Plain http: is blocked by the browser as mixed content on a secure exam page, and data: URLs are rejected on upload.

Reachable without a login

A Google Drive, OneDrive, or Dropbox share link usually serves an HTML preview page rather than the image itself, and will not render. Use a direct link ending .png, .jpg, .webp, or .svg, on a host that allows hotlinking.

Images are linked, not stored — host them somewhere you control.

The participant's browser loads the image straight from whatever host you name. We check the URL is well-formed; we do not fetch the file, copy it, or watch it afterwards. If that host goes down, rate-limits, or the picture is swapped after import, the exam sees the change and we cannot warn you — so re-check your links before you activate a quiz. If an image does fail to load, the participant gets a short "image could not be loaded" line and the question stays fully answerable; a broken image never blocks an exam.

Capacity

Will this hold my exam?

One quiz stores up to 720 questions across 20 sections by default — comfortably more than a full-length aptitude paper, with room for a bank you draw randomised sets from. The rest of the numbers matter mostly when you are generating a large file at once.

Limit Default Notes
Questions stored in one quiz 720 The whole bank, not the number any one person answers.
Sections per quiz 20 Distinct section values. Watch for spelling drift — "Maths" and "Math" count as two.
Answer choices per question 1–5 Four is the norm and what we would recommend.
Question and option text 2,000 characters Aim well under 300 so a question reads without scrolling.
One question, serialised 8,192 characters The whole question object as JSON. Only a long passage or a large embedded snippet gets close.
imageUrl 500 characters Omit the field entirely when a question has no image.

correctAnswer counts from 1.

1 is the first option and 4 is the fourth; 0 is rejected. It is the field most easily got wrong — a file exported from a zero-based tool needs every answer shifted up by one.

These are defaults, not hard ceilings — every one of them is a server-side setting. If your exam needs more, tell us what you need and we will look at it.

Starting points

Sample question files

Three ready-to-edit files, each showing one capability. Download the one closest to what you are building — attach it to an AI assistant as the format example, or just edit it by hand for a small quiz.

Sample Shows you how to write
Plain text questions Numerical, verbal, and logical reasoning in plain text, including how to write angle brackets safely.
Maths with KaTeX Square roots, powers, fractions and ratios written as LaTeX — with the backslashes doubled correctly.
Questions with images Pattern sequences and chart reading, using imageUrl alongside the question text.

For the complete field reference — every field, its type, and whether it is required — see the import format on the product page.

Try it with your own questions.

Start a free trial, generate a set from one of the samples above, and import it into a draft quiz — the whole loop takes about ten minutes.

Free Trial See the import format