Skip to content
Command Palette
Search for a command to run...
QuizBase · Docs

GET /v1/topics#

GET /api/v1/topics Public — no key

List of curated topics — stable conceptual identifiers (e.g. star-wars, world-war-ii) with all aliases that map to them in the dataset, plus question counts. No API key required. Cached for 1h server-side, with Cache-Control: public, s-maxage=3600.

Counts freshness: question counts are pre-aggregated and refreshed when the dataset changes. Refresh cadence is irregular at launch — focus is on dataset quality and new languages, not a fixed import schedule. Once that pipeline lands we’ll publish the schedule.

Use this for typeahead search, dropdown filters, or as the first step of any “give me questions about X” flow.

Parameters#

ParameterTypeDefaultDescription
lang enumenDisplay language for `label`. Supported: `en`, `pl`. Other values return `400`.
q stringSubstring search across label, slug, and aliases (case-insensitive, 1–64 chars).
kind enum`tag` or `subcategory`. Limits results to one taxonomy layer.
cursor stringSlug of the last item from the previous page. Use `_links.next` to navigate.
limit int100Page size, 1–500.

Examples#

Response#

Performance#

  • p50 (warm): ~23ms
  • p95: ~28ms (sustained 50 RPS, baseline)
  • Last measured: 2026-05-07
  • SLO: p95 < 500ms, error rate < 1%
  • Backed by pre-aggregated topic counts + 1h response cache.

See also#