Quick Start
1
Provide a quiz — paste raw JSON (either a bare array or an object with questions) into the text area, enter a URL to a .json file, or drag-and-drop / upload a file.
2
Pick a mode — Practice or Test (see below).
3
Click Load Quiz (or press Ctrl+Enter). The quiz begins immediately.
Quiz Modes
Practice
After each answer you see instant color-coded feedback — green for correct, red for wrong — plus the right answer highlighted. Great for learning.
Test
No feedback until the end. Answer every question, then review a full scorecard with all correct and incorrect answers.
Loading a Quiz
You can load questions in three ways:
- Raw JSON — paste either a bare JSON array of questions or a wrapper object (commonly under
questions).
- URL — enter a public URL pointing to a
.json file. If you enter an .html URL the loader will also try a matching .json path automatically.
- File upload — click Upload .json or drag a file onto the input area.
You can also prefill the loader by opening Quiz King with a ?url= query parameter in the page URL.
https://ethanpost.github.io/quizk.ing/index.html?url=https://example.com/quiz.json
Use url as the parameter name, and make sure the value points to a publicly accessible JSON file.
Question Format
Each question object needs a question string, an options array, and an answer that matches one of the options.
[
{
"question": "What is the capital of France?",
"options": ["Berlin", "Madrid", "Paris", "Rome"],
"answer": "Paris"
},
{
"question": "Which planet is closest to the Sun?",
"options": ["Venus", "Mercury", "Earth", "Mars"],
"answer": "Mercury"
}
]
If you prefer a wrapper object, put your question array under questions (and optionally add meta / metadata for the header card):
{
"meta": { "title": "My Quiz", "author": "Me", "date": "2026-03-19", "url": "https://example.com" },
"questions": [
{ "question": "...", "options": ["A", "B", "C"], "answer": "A" }
]
}
Alternatively, you can use a "correct" field instead of "answer" — either as a zero-based index into the options array (e.g. "correct": 2) or as the literal answer string. Both styles work interchangeably.
Other Details
- Answer order is randomized each time you start a quiz.
- Questions with fewer than two options or missing correct answers are silently skipped.
- You can re-load the same quiz to get a fresh shuffle, or switch modes at any time from the start screen.
- The question list can be either a bare array or a wrapper object (for example
{ "questions": [...] }). The loader is also tolerant of other wrapper keys as long as it can find an array of question objects.
- If the top-level wrapper includes
meta or metadata (with title, author, date, and/or url), those populate the "Loaded Quiz" card.