canonical: https://jentic.com/apis/quizapi.io/quizapi-io

# QuizAPI

The QuizAPI API serves published quiz content and individual quiz questions across categories such as programming and science. It lists approved quizzes filtered by category, difficulty, tags, or a free-text topic, and returns the ordered questions for a chosen quiz with optional answers. A browse mode pulls questions across all published quizzes by category, difficulty, question type, and tags, with optional random shuffling. A public metadata endpoint reports the available categories, tags, difficulties, and question types.

## For AI agents

Find published quizzes by topic, category, or difficulty and pull their questions, answers, and explanations, or browse a randomized question set across all quizzes.

## Scope

Does not create or edit quizzes, record learner scores, or host embeddable quiz widgets. Use for reading published QuizAPI quizzes and questions only.

## Capabilities

- Search published quizzes by category, difficulty, tags, or a free-text topic with limit and offset pagination
- Fetch the ordered questions for one quiz by passing quiz_id, with answers included when include_answers is true
- Browse questions across all published quizzes filtered by category, difficulty, type, and tags
- Shuffle a browse-mode question set with random=true to build a fresh practice round
- Read the available categories, tags, difficulties, and question types from the public metadata endpoint before filtering

## Use cases

### AI tutor that quizzes a learner through Jentic

An AI tutoring agent needs real questions with answer keys rather than inventing them. Through Jentic the agent searches for 'get quiz questions by topic', loads the QuizAPI questions operation with its input schema, and pulls questions filtered by category and difficulty with the bearer key injected at call time. Because answers and explanations come back with each question, the agent can mark a learner's response and explain the correct option.

Example prompt: Call GET `/api/v1/questions` with category 'Programming', difficulty 'MEDIUM', limit 5, and random 'true', then ask the learner each question and grade the reply against the answer whose isCorrect is true

### Topic-based quiz discovery

A learning app lets users type a subject and pick a ready-made quiz. The QuizAPI quizzes operation accepts a free-text topic searched across title, description, and tags, plus category and difficulty filters, and returns each quiz with its questionCount and plays. The app can sort or present the matches and page through results with limit and offset.

Example prompt: Call GET `/api/v1/quizzes` with topic 'docker', difficulty 'EASY', and limit 10, then return the title, questionCount, and id of each quiz

### Run a full quiz with answer key

Once a quiz is chosen, a study tool needs its questions in order with the answer key. Passing quiz_id to the questions operation returns the ordered questions for that quiz, and setting include_answers to true adds each answer with its isCorrect flag. The tool can then present the quiz, score it, and show the explanation for questions the user missed.

Example prompt: Call GET `/api/v1/questions` with quiz_id 'cm3abc123def456' and include_answers 'true', then build a scored answer sheet from the returned answers

### Filter-aware question bank setup

Before building filters in a UI or prompt, an integration reads the QuizAPI metadata operation, which needs no API key and returns the categories, tags, difficulties, and question types the bank supports. The integration uses those values to offer only valid filter options when browsing questions.

Example prompt: Call GET `/api/v1/metadata` and list the categories and question types it returns so the user can choose filters

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/api/v1/questions` | Get questions for a quiz or browse all questions |
| GET | `/api/v1/quizzes` | List and search published quizzes |
| GET | `/api/v1/metadata` | Get categories, tags, difficulties, and question types |

## Key resources

- **Quizzes** — Published, approved quizzes with category, difficulty, tags, questionCount, and plays, searchable by topic
- **Questions** — Ordered questions for one quiz, or a filterable and shuffleable browse across all quizzes, with answers and explanations
- **Metadata** — Available categories, tags, difficulties, question types, and aggregate stats

## Why Jentic

- **Setup:** Wiring QuizAPI by hand means issuing a key, sending it as a bearer token, and remembering that the questions operation switches between quiz_id mode and browse mode with different filters. Through Jentic you install once, import QuizAPI from the API Directory, store the key once, and your agent calls it.
- **Permission scoping:** QuizAPI selects quizzes and questions through query parameters rather than URL path ids, so rules bound which of its read operations your agent may call, not which quiz it reads. You choose the operations it may call, such as fetching questions without listing quizzes.
- **Credential handling:** Your QuizAPI key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'get quiz questions by topic' or 'find a quiz about Python', and Jentic returns the matching QuizAPI operation with its input schema, including the difficulty enum and pagination parameters.

## Related APIs

- **Open Trivia Database API** — Free community trivia question bank with category and difficulty filters
- **ClassMarker API** — Online testing platform that returns graded exam results
- **Moodle Web Services API** — Learning management system for courses, enrolments, and grades
- **Google Classroom API** — Classroom courses, coursework, and student submissions

## FAQ

### What authentication does the QuizAPI API use?

QuizAPI declares HTTP bearer authentication in its OpenAPI spec: you pass your API key as a bearer token in the Authorization header. The metadata endpoint, GET `/api/v1/metadata`, is marked as needing no key, while the quizzes and questions operations expect the token. Through Jentic the key is held by your own instance and attached at call time.

### Can I get random quiz questions with answers from the QuizAPI API?

Yes. Call GET `/api/v1/questions` without quiz_id to enter browse mode, filter by category, difficulty, type, or tags, and set random to true to shuffle the results. In browse mode answers are always included, each with an isCorrect flag, and limit accepts 1 to 50 questions per page.

### What are the rate limits for the QuizAPI API?

The OpenAPI spec does not specify rate limits. Check the QuizAPI site at https://quizapi.io/ for the current limits on your plan.

### Is there a QuizAPI MCP server?

You don't need an MCP server to give your agent QuizAPI. Jentic connects it directly from the API Directory: import it, store your API key once, and your agent calls the quiz and question operations on demand without loading extra tool definitions into its context.

### How do I pull questions for a quiz through Jentic?

Search Jentic for 'get quiz questions by topic', load the GET `/api/v1/questions` operation, and run it with a quiz_id and include_answers set to true to receive the ordered questions with their answers. Use GET `/api/v1/quizzes` with a topic first if you need to find the quiz id. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Can I limit what my agent is allowed to do with the QuizAPI API?

Yes. For example, write a rule that allows only the questions operation, so your agent can fetch questions and answers but cannot list quizzes or call anything else, and each call it makes is logged for review.
