Questions

Browse questions (cursor pagination)

Paginated browse with filters and delta-sync via updated_since. Batch by ids (up to 250, comma-separated UUIDs) fetches those exact records in a single call — anti-repeat, deep-links. Add content_language to map a set across the translation chain (e.g. an English set to Polish): for each id the sibling record in that language is returned, matched by canonical root. ids is a terminal selector (browse filters and cursor are ignored). Unresolved ids are reported in meta.missing, never dropped silently.

get/api/v1/questions

Request

  • Base URL: https://quizbase.runriva.com
  • URL: https://quizbase.runriva.com/api/v1/questions
  • Auth: one of:
    • API key in header X-API-Key
    • HTTP bearer

Query parameters

cursorstring uuid
limitinteger
lang'en' | 'pl'

Display language for category names + slug labels (subcategories/tags)

updated_sincestring date-time

ISO 8601 datetime — only questions modified after this point.

Example:2026-04-01T00:00:00.000Z
categorystring
difficulty'trivial' | 'easy' | 'medium' | 'hard' | 'expert'
type'multiple' | 'boolean' | 'text_input'
tagsstring
tags_anystring
topicstring
topics_anystring
subcategorystring
quality'high' | 'standard' | 'all'

Quality preset: "high" (default) = cleanest, most broadly-useful questions; "standard" = broader pool incl. niche; "all" = everything incl. flagged-for-review

regionsstring

Cultural affinity codes. A question is tagged with a region if residents of that country, or members of that cultural/religious group, are statistically more likely to know the answer (NOT geography of the subject). Lowercase ISO 3166-1 alpha-2 (e.g. us, pl, gb) plus cultural codes (jewish, christian-catholic, islam). AND-logic. Empty array on a question = universally accessible (no cultural advantage). Discover via GET /api/v1/regions. Uppercase tolerated on input (normalized to lowercase).

Example:pl,jewish
sourcestring

Filter by source database — one or more of: arc, creak, entityq, kqa-pro, mintaka, mkqa, nq-open, opentdb, opentriviaqa, qasc, quizbase, webq. Comma-separated for multiple (include / OR). Matches attribution.source per question.

Example:mintaka,opentdb
exclude_sourcestring

Exclude one or more source databases (comma-separated). Use to drop noisy auto-generated sources, e.g. exclude_source=entityq. Applied after source if both are present.

Example:entityq
license'CC-BY-SA-4.0' | 'CC-BY-SA-3.0' | 'CC-BY-4.0' | 'MIT' | 'proprietary'
count'exact' | 'none'
idsstring
content_language'en' | 'pl'

Content language of returned records (translation mapping when combined with ids)

Response

Questions page.

Example response

{
  "data": [
    {
      "id": "019dd2af-1e86-7991-ae22-3dc3dc5e9b2c",
      "text": "Jaka jest stolica Polski?",
      "correctAnswer": "Warszawa",
      "incorrectAnswers": [
        "Kraków",
        "Gdańsk",
        "Wrocław"
      ],
      "type": "multiple",
      "difficulty": "easy",
      "language": "pl",
      "category": {
        "id": 14,
        "slug": "geography",
        "name": "Geography"
      },
      "subcategories": [
        {
          "slug": "european-capitals",
          "label": "European Capitals"
        }
      ],
      "tags": [
        {
          "slug": "european-capitals",
          "label": "European Capitals"
        }
      ],
      "regions": [
        "pl"
      ],
      "attribution": {
        "author": "OpenTDB community",
        "source": "opentdb",
        "license": "CC-BY-SA-4.0",
        "licenseVersion": "4.0",
        "licenseUrl": "https://creativecommons.org/licenses/by-sa/4.0/",
        "sourceId": "opentdb:17243",
        "url": "https://opentdb.com/",
        "modifications": [
          "translated_pl"
        ],
        "lastModified": "2026-05-01T09:16:41.496Z"
      },
      "quality": "high",
      "createdAt": "2026-04-28T06:03:05.191Z",
      "updatedAt": "2026-05-01T09:16:41.496Z"
    }
  ],
  "meta": {
    "count": 50,
    "total": 545379,
    "countMode": "none",
    "missing": [],
    "language": "en",
    "requestId": "127fc6d1-d6fb-4771-b2a7-211a08749e5b"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.