Open Trivia DB Questions API

Retrieve trivia questions.

OpenAPI Specification

open-trivia-db-questions-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Open Trivia DB Categories Questions API
  description: Free JSON API providing trivia questions across multiple categories, difficulties, and types. No API key is required. Supports session tokens to avoid duplicate questions across requests, multiple response encodings, and rate limiting of one request per IP every 5 seconds.
  version: '1.0'
  contact:
    name: Open Trivia DB
    url: https://opentdb.com
  license:
    name: Creative Commons Attribution-ShareAlike 4.0 International
    url: https://creativecommons.org/licenses/by-sa/4.0/
servers:
- url: https://opentdb.com
  description: Open Trivia DB Production
tags:
- name: Questions
  description: Retrieve trivia questions.
paths:
  /api.php:
    get:
      tags:
      - Questions
      summary: Retrieve trivia questions
      description: Returns a list of trivia questions filtered by amount, category, difficulty, type, and encoding. Up to 50 questions per request.
      operationId: getQuestions
      parameters:
      - name: amount
        in: query
        required: true
        description: Number of questions to return (1-50).
        schema:
          type: integer
          minimum: 1
          maximum: 50
      - name: category
        in: query
        description: Category ID to filter by. Omit for any category.
        schema:
          type: integer
      - name: difficulty
        in: query
        description: Question difficulty.
        schema:
          type: string
          enum:
          - easy
          - medium
          - hard
      - name: type
        in: query
        description: Question type.
        schema:
          type: string
          enum:
          - multiple
          - boolean
      - name: encode
        in: query
        description: Response encoding format.
        schema:
          type: string
          enum:
          - url3986
          - base64
      - name: token
        in: query
        description: Session token to avoid duplicate questions.
        schema:
          type: string
      responses:
        '200':
          description: Trivia questions response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionsResponse'
components:
  schemas:
    Question:
      type: object
      properties:
        category:
          type: string
        type:
          type: string
          enum:
          - multiple
          - boolean
        difficulty:
          type: string
          enum:
          - easy
          - medium
          - hard
        question:
          type: string
        correct_answer:
          type: string
        incorrect_answers:
          type: array
          items:
            type: string
    QuestionsResponse:
      type: object
      properties:
        response_code:
          type: integer
          description: 0 = Success, 1 = No Results, 2 = Invalid Parameter, 3 = Token Not Found, 4 = Token Empty, 5 = Rate Limit.
        results:
          type: array
          items:
            $ref: '#/components/schemas/Question'
externalDocs:
  description: Open Trivia DB API Documentation
  url: https://opentdb.com/api_config.php