QuizAPI website screenshot

QuizAPI

QuizAPI provides programmatic access to thousands of quiz questions across topics such as programming, science, mathematics, and general knowledge. Developers can use the API to power trivia apps, online assessments, learning platforms, and embedded quizzes on their own websites. Questions can be filtered by category, difficulty, and tags, and quizzes can be created and managed through a JSON REST API.

1 APIs 0 Features
QuizzesTriviaEducationAssessmentContent

APIs

QuizAPI

The QuizAPI REST API exposes endpoints for browsing categories and metadata, searching and creating quizzes, retrieving quiz details, listing questions, and batch-importing ques...

Collections

QuizAPI

OPEN

Pricing Plans

Quiz Api Plans Pricing

3 plans

PLANS

Rate Limits

Quiz Api Rate Limits

5 limits

RATE LIMITS

FinOps

Resources

🔗
Website
Website
🔗
Documentation
Documentation
📝
Signup
Signup
💬
Support
Support
🔗
LlmsText
LlmsText

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: QuizAPI
  version: 1.0.0
items:
- info:
    name: Discovery
    type: folder
  items:
  - info:
      name: Get API metadata
      type: http
    http:
      method: GET
      url: https://quizapi.io/api/v1/metadata
    docs: Returns available categories, tags, difficulties, question types, and aggregate stats. No API key required — this
      is a discovery endpoint.
  - info:
      name: List topics and categories
      type: http
    http:
      method: GET
      url: https://quizapi.io/api/v1/categories
    docs: Returns the full Topic → Category hierarchy with quiz counts and popular tags per category. Use the returned category
      `id` as the `categoryId` when creating quizzes. No API key required — this is a discovery endpoint.
- info:
    name: Quizzes
    type: folder
  items:
  - info:
      name: List quizzes
      type: http
    http:
      method: GET
      url: https://quizapi.io/api/v1/quizzes
      params:
      - name: category
        value: ''
        type: query
        description: Filter by category (case-insensitive)
      - name: difficulty
        value: ''
        type: query
        description: Filter by difficulty level
      - name: tags
        value: ''
        type: query
        description: Comma-separated list of tags
      - name: topic
        value: ''
        type: query
        description: Free-text search in title, description, and tags
      - name: sort
        value: ''
        type: query
        description: 'Sort order: popular (plays desc), newest (created desc), or title (alphabetical asc)'
      - name: limit
        value: ''
        type: query
        description: Number of results to return (1–50)
      - name: offset
        value: ''
        type: query
        description: Number of results to skip for pagination
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns a paginated list of published, approved quizzes (plus your own). Supports filtering by category, difficulty,
      tags, and free-text topic search.
  - info:
      name: Create a quiz
      type: http
    http:
      method: POST
      url: https://quizapi.io/api/v1/quizzes
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Create a new quiz. Requires a Starter or Pro plan (admins are exempt). Quiz creation limits are enforced per plan.
      Admins can set `featured: true` to display the quiz in the Practice section immediately. Non-admin users can add `featured`
      in the body but it will be silently ignored.'
  - info:
      name: Get a single quiz
      type: http
    http:
      method: GET
      url: https://quizapi.io/api/v1/quizzes/:id
      params:
      - name: id
        value: ''
        type: path
        description: The quiz ID
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Returns full details for a single quiz including all questions and answers. Only published quizzes that are approved
      or owned by the API key holder are returned.
- info:
    name: Questions
    type: folder
  items:
  - info:
      name: Get questions
      type: http
    http:
      method: GET
      url: https://quizapi.io/api/v1/questions
      params:
      - name: quiz_id
        value: ''
        type: query
        description: If provided, returns questions for this quiz (Mode 1). If omitted, enters browse mode (Mode 2).
      - name: include_answers
        value: ''
        type: query
        description: Set to "true" to include answers (Mode 1 only). In browse mode, answers are always included.
      - name: category
        value: ''
        type: query
        description: Filter by quiz category. Supports comma-separated values for multiple categories (case-insensitive).
          Browse mode only.
      - name: difficulty
        value: ''
        type: query
        description: Filter by difficulty. Supports comma-separated values (case-insensitive). Browse mode only.
      - name: type
        value: ''
        type: query
        description: Filter by question type. Supports comma-separated values. Browse mode only.
      - name: tags
        value: ''
        type: query
        description: Comma-separated tags to match (browse mode only)
      - name: limit
        value: ''
        type: query
        description: Max questions to return per page in browse mode (1–50)
      - name: offset
        value: ''
        type: query
        description: Number of questions to skip for pagination (browse mode only)
      - name: random
        value: ''
        type: query
        description: Set to "true" to shuffle the returned questions randomly (browse mode only)
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: 'Two modes: (1) Pass `quiz_id` to get ordered questions for a specific quiz. (2) Omit `quiz_id` to browse questions
      across all published quizzes with pagination, filtering, and optional randomization. Only approved quizzes and your
      own quizzes are included.'
  - info:
      name: Batch import questions
      type: http
    http:
      method: POST
      url: https://quizapi.io/api/v1/quizzes/:id/questions/batch
      params:
      - name: id
        value: ''
        type: path
        description: The quiz ID to add questions to
      body:
        type: json
        data: '{}'
      auth:
        type: bearer
        token: '{{bearerToken}}'
    docs: Import multiple questions into an existing quiz at once. Validates all questions before inserting — if any fail
      validation, the entire batch is rejected. Questions are appended after existing questions. **Requires a paid plan (Starter
      or Pro) or admin role.**
bundled: true