OpenAPI Specification
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