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

GET /v1/me#

GET /api/v1/me API key required

Returns information about the authenticated API key — the first endpoint to hit when wiring up a new client. It confirms your key, tier, and current rate-limit window in one call, with no side effects.

Use it as a smoke test in CI, after rotating keys, or whenever a request unexpectedly fails with 401 / 429 and you need to inspect what the server thinks of your key.

Parameters#

None. The key is read from the X-API-Key header (or Authorization: Bearer <key>).

Examples#

Response#

Response fields#

  • key.id — internal identifier of the API key (UUID v7). Stable across rotations of the secret.
  • key.name — the label you set when creating the key (e.g. "CI runner", "Mobile app — staging").
  • key.prefix — masked display value (e.g. qb_pk_••••1234). Safe to log; the full secret is only shown once at creation.
  • key.scope"pk" (publishable, safe for client-side / mobile apps, CORS-enabled) or "sk" (secret, server-side only).
  • tier — current subscription tier: "free", "indie", "pro", or "enterprise". Drives rate limits and feature gates.
  • rateLimit.limit / rateLimit.remaining / rateLimit.resetInSeconds — current 10s burst window. Mirrors RateLimit-* headers. Quota is per user account — shared across all your keys.
  • rateLimit.burstPer10s / rateLimit.perDay — your tier’s full limits, useful for client-side throttling logic.
  • monthlyQuota.limit / used / resetsAt — monthly quota window. All null / 0 pre-launch (subscription billing arrives in a later phase). Reserved shape; safe to read now.
  • meta.requestId — request identifier (also in X-Request-Id response header). Include in support requests so we can locate the request in logs.

Performance#

  • p50 (warm): ~40ms
  • p95: <100ms (auth lookup + locals serialization, no DB read on hit path)
  • Last measured: 2026-05-07
  • SLO: p95 < 500ms, error rate < 1%

See also#