QuizBase vs The Trivia API — volume, calibrated difficulty, and multilingual coverage
The Trivia API is a vetted commercial trivia catalog with 14,400 questions on its paid Complete plan. QuizBase ships over a million questions blended from 11 open sources, 5-level calibrated difficulty grading (`trivial` to `expert`), EN + PL at parity today (more languages on demand), and a Free tier that works in production — 500 requests/day, no credit card, every endpoint, every feature.
At a glance
Total questions
1.17M QuizBasevs 14.4k (The Trivia API)
Languages supported
2 QuizBasevs 8 (The Trivia API)
Difficulty grading
5 levels (trivial → expert), LLM-calibrated per question QuizBasevs 3 levels (easy / medium / hard), metadata tag, no calibration (The Trivia API)
Taxonomy density
24 categories · 30.8K+ subcategories · 81.7K+ tags · 2.2K+ curated topics · 190+ cultural regions QuizBasevs 10 flat categories, per-question tags + regions + niche flag (no top-level listing endpoint) (The Trivia API)
Topical focus
General trivia (all domains) QuizBasevs General trivia (The Trivia API)
When to use QuizBase
- Volume matters — over a million questions versus 14,400 (80×+ more catalog to draw from)
- Difficulty grading matters — 5-level calibrated difficulty per question, from `trivial` to `expert`, not metadata tags applied at write time
- You need EN + PL today (333k each on `?quality=high`) and want more languages on demand without waiting for a vendor roadmap
- Multi-layer taxonomy matters — categories, subcategories, tags, curated topics, and cultural regions for filtering by specific themes
- 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 | The Trivia API |
|---|---|---|
| Total questions | 1,173,456 | 14,400 |
| Languages supported | 2 | 8 |
| 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 | 10 flat categories, per-question tags + regions + niche flag (no top-level listing endpoint) |
| Topical focus | General trivia (all domains) | General trivia |
Reliability
| Dimension | QuizBase | The Trivia API |
|---|---|---|
| Status page | https://quizbase.runriva.com/status | n/a |
Developer surface
| Dimension | QuizBase | The Trivia API |
|---|---|---|
| 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 |
| Rate-limit headers | IETF RateLimit-* (RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, RateLimit-Policy) + Retry-After on 429 | IETF `RateLimit-*` headers |
Pricing & access
| Dimension | QuizBase | The Trivia API |
|---|---|---|
| Paid tier starts at | Indie — see /pricing | Complete subscription — price on sign-up dashboard |
Migrating from The Trivia API
// Before — The Trivia API
const response = await fetch(
'https://the-trivia-api.com/v2/questions?limit=10',
{ headers: { 'x-api-key': process.env.TRIVIA_API_KEY! } }
);
const questions = await response.json();
// questions[0].question.text, questions[0].correctAnswer, ...
// 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',
quality: 'high', // surface the LLM-graded high-quality slice
difficulty: 'medium' // pick from trivial | easy | medium | hard | expert
});
// data[0].question, data[0].correct_answer, data[0].difficulty