QuizBase vs Open Trivia DB — extending OpenTDB with scale, multilingual coverage, and a developer surface
Open Trivia DB is one of our source databases — a community-contributed catalog with 5,296 verified English questions under CC-BY-SA. QuizBase blends OpenTDB with 10 other open datasets into over a million questions, EN + PL at parity today (more languages on demand), 5-level calibrated difficulty grading (`trivial` to `expert`), multi-layer taxonomy (categories, subcategories, tags, curated topics, and cultural regions), and a developer surface (OpenAPI 3.1, TypeScript SDK, MCP server with OAuth).
At a glance
Total questions
1.17M QuizBasevs 5.3k (Open Trivia DB)
Languages supported
2 QuizBasevs 1 (Open Trivia DB)
Difficulty grading
5 levels (trivial → expert), LLM-calibrated per question QuizBasevs 3 levels (easy / medium / hard), metadata tag, no calibration (Open Trivia DB)
Taxonomy density
24 categories · 30.8K+ subcategories · 81.7K+ tags · 2.2K+ curated topics · 190+ cultural regions QuizBasevs 24 flat categories, no subcategories, tags, topics, or regions (Open Trivia DB)
Topical focus
General trivia (all domains) QuizBasevs General trivia (community-contributed) (Open Trivia DB)
When to use QuizBase
- Volume matters — over a million questions versus 5,296 (200×+ more catalog, blended from 11 sources including OpenTDB)
- Difficulty grading matters — 5-level calibrated difficulty per question, from `trivial` to `expert`
- You need Polish today (333k PL on `?quality=high`) or other languages on demand without running your own translation pipeline
- Multi-layer taxonomy matters — categories + subcategories + tags + topics + cultural regions, not just 24 flat categories
- Developer surface matters — OpenAPI 3.1, TypeScript SDK on npm, MCP server with OAuth 2.1 for Claude Desktop / Cursor / ChatGPT, IETF rate-limit headers, RFC 9457 errors, public status page
Content & scale
| Dimension | QuizBase | Open Trivia DB |
|---|---|---|
| Total questions | 1,173,456 | 5,296 |
| Languages supported | 2 | 1 |
| Difficulty grading | 5 levels (trivial → expert), LLM-calibrated per question | 3 levels (easy / medium / hard), metadata tag, no calibration |
| Taxonomy density | 24 categories · 30.8K+ subcategories · 81.7K+ tags · 2.2K+ curated topics · 190+ cultural regions | 24 flat categories, no subcategories, tags, topics, or regions |
| Topical focus | General trivia (all domains) | General trivia (community-contributed) |
Attribution & licenses
| Dimension | QuizBase | Open Trivia DB |
|---|---|---|
| Public data dump | CC-BY-SA dump (GitHub release, ~482k records) | Yes (CC-BY-SA via api.php with `amount=50` calls) |
Reliability
| Dimension | QuizBase | Open Trivia DB |
|---|---|---|
| Status page | https://quizbase.runriva.com/status | n/a |
Developer surface
| Dimension | QuizBase | Open Trivia DB |
|---|---|---|
| OpenAPI 3.1 spec | https://quizbase.runriva.com/openapi.json | n/a |
| TypeScript SDK | @quizbase/client (npm) | n/a |
| MCP server transport | Streamable HTTP (/mcp endpoint) | n/a |
Migrating from Open Trivia DB
// Before — Open Trivia DB
const response = await fetch('https://opentdb.com/api.php?amount=10');
const { results } = await response.json();
// results[0].question (HTML-encoded), results[0].correct_answer
// After — QuizBase
import { QuizBase } from '@quizbase/client';
const qb = new QuizBase({ apiKey: process.env.QUIZBASE_API_KEY! });
const { data } = await qb.questions.list({
limit: 10,
lang: 'en', // or 'pl', more on demand
quality: 'high', // surface the LLM-graded high-quality slice
difficulty: 'medium' // trivial | easy | medium | hard | expert
});
// data[0].question (plain text), data[0].correct_answer, data[0].difficulty