QuizAPI Discovery API

Endpoints that require no authentication

Operations 2

GET /api/v1/metadata Get API metadata
GET /api/v1/categories List topics and categories

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/quiz-api-discovery-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

quiz-api-discovery-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Quiz Discovery API
  version: 1.0.0
  description: Access thousands of quiz questions across programming, science, and more. Browse by category, difficulty, and tags.
  contact:
    name: QuizAPI Support
    url: https://quizapi.io
servers:
- url: https://quizapi.io
  description: Production
security: []
tags:
- name: Discovery
  description: Endpoints that require no authentication
paths:
  /api/v1/metadata:
    get:
      summary: Get API metadata
      description: Returns available categories, tags, difficulties, question types, and aggregate stats. No API key required — this is a discovery endpoint.
      tags:
      - Discovery
      responses:
        '200':
          description: Metadata retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetadataResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/v1/categories:
    get:
      summary: List topics and categories
      description: 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.
      tags:
      - Discovery
      responses:
        '200':
          description: Categories retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CategoriesResponse'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    CategoryItem:
      type: object
      properties:
        id:
          type: string
          example: cm3cat789
        name:
          type: string
          example: Python
        slug:
          type: string
          example: python
        quizCount:
          type: integer
          example: 12
        tags:
          type: array
          items:
            type: string
          maxItems: 20
          example:
          - python
          - basics
          - data-structures
          description: Popular tags used in quizzes within this category (maximum 20 tags)
      required:
      - id
      - name
      - slug
      - quizCount
      - tags
      description: A category within a topic
    Difficulty:
      type: string
      enum:
      - EASY
      - MEDIUM
      - HARD
      - EXPERT
      description: Difficulty level of a quiz or question
    TopicItem:
      type: object
      properties:
        id:
          type: string
          example: cm3topic123
        name:
          type: string
          example: Programming
        slug:
          type: string
          example: programming
        icon:
          type:
          - string
          - 'null'
          example: code
        categories:
          type: array
          items:
            $ref: '#/components/schemas/CategoryItem'
      required:
      - id
      - name
      - slug
      - icon
      - categories
      description: A top-level topic containing categories
    QuestionType:
      type: string
      enum:
      - MULTIPLE_CHOICE
      - TRUE_FALSE
      - OPEN_ENDED
      description: The type of question
    ErrorResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
          example: Something went wrong.
      required:
      - success
      - error
      description: Standard error response
    MetadataResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
          - true
        data:
          type: object
          properties:
            difficulties:
              type: array
              items:
                $ref: '#/components/schemas/Difficulty'
              example:
              - EASY
              - MEDIUM
              - HARD
              - EXPERT
            questionTypes:
              type: array
              items:
                $ref: '#/components/schemas/QuestionType'
              example:
              - MULTIPLE_CHOICE
              - TRUE_FALSE
              - OPEN_ENDED
            categories:
              type: array
              items:
                type: string
              example:
              - Programming
              - DevOps
              - Science
            tags:
              type: array
              items:
                type: string
              example:
              - javascript
              - python
              - docker
            stats:
              type: object
              properties:
                totalQuizzes:
                  type: integer
                  example: 150
                totalQuestions:
                  type: integer
                  example: 3200
              required:
              - totalQuizzes
              - totalQuestions
          required:
          - difficulties
          - questionTypes
          - categories
          - tags
          - stats
      required:
      - success
      - data
    CategoriesResponse:
      type: object
      properties:
        success:
          type: boolean
          enum:
          - true
        data:
          type: array
          items:
            $ref: '#/components/schemas/TopicItem'
      required:
      - success
      - data
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: 'Pass your API key as a Bearer token: `Authorization: Bearer qza_live_...`. Alternatively, use the `api_key` query parameter.'