quizbase
Back to changelog

May 29, 2026

Pre-launch sprint — content quality, performance, and developer surface

The pre-launch sprint shipped the developer surface and content quality the platform needs to go live. Every endpoint, MCP tool, and the TypeScript SDK reflect these changes.

Added

  • 5-level LLM-calibrated difficulty. Each question now carries one of trivial, easy, medium, hard, or expert — graded by an LLM with the full distractor-set in context, not just question text. The difficulty enum bumped from 3 to 5 values across the API, MCP tools, and SDK types. /api/v1/stats byDifficulty ships 6 keys (5 levels + unrated).
  • New ?quality=high filter. Surfaces only the cleanest questions (~333k EN + ~332k PL at this date). An opt-in quality field on every question response exposes the underlying grade so clients can self-filter further client-side.
  • Cultural-affinity regions. New ?regions= filter on /api/v1/questions and /api/v1/random accepts ISO 3166-1 alpha-2 codes (case-insensitive) with a curated cultural-codes whitelist (e.g. us, gb, de, fr, jp). New /api/v1/regions discovery endpoint, MCP tool quizbase_regions, and topRegions (top 20) in the stats snapshot.
  • Dashboard usage tracks MCP and OAuth requests. /dashboard/usage now also reports MCP and OAuth-authenticated traffic, with per-client breakdown alongside per-key.

Changed

  • Flat API key model — Free tier is full production access. The old qb_test_* / qb_live_* split is retired. Keys are now either qb_pk_* (publishable, CORS-safe) or qb_sk_* (secret, backend-only). One per-account counter; Free gives 500 requests/day + 10/10s burst, every endpoint, every feature, no credit card. Cap of 20 keys per account.
  • Content quality recovery. EN↔PL counts on the ?quality=high filter are now at parity (~333k each). Slug labels canonicalized — common acronyms (USA, EU, NASA, etc.) recovered, multi-word slugs normalized. Plus +16k recovered EN questions; visible catalog now ~1.14M.
  • Performance baseline refreshed. Updated numbers and methodology on /docs/performance — sustained 50 RPS with p95 ~100ms across the typical mix.
  • TypeScript SDK. @quizbase/client bumped to 0.7.x with the 5-enum difficulty, topRegions, byQualityHigh, optional quality per question, and regions filter typings.

Deprecated

  • ?count=exact on /api/v1/questions. Stripe-style behavior — pagination metadata now uses the snapshot-derived total instead. Existing clients keep working; new code should drop the parameter.

Fixed

  • Smaller performance and reliability improvements across discovery, listing, and random endpoints.