Skip to main content

Scope

Platform APIs include utility routes that support app infrastructure or cross-domain behavior.

Endpoint map

  • Utility and media: /api/image-proxy, /api/upload/banner, /api/upload/binder-cover, /api/upload/locker-media, /api/upload/profile
  • Liveness: GET /api/health (no auth, no database)
  • Public sports catalog: GET /api/config/sports (see Teams and leagues)
  • Public accessibility matrix: GET /api/accessibility (used by native and the marketing site)
  • Notifications inbox: GET /api/notifications, POST /api/notifications/{notificationId}/read, POST /api/notifications/read-all, POST /api/notifications/{notificationId}/archive. Types include GAME_ALERT and RATING.
  • Behavioral feed ingest: POST /api/feed/signals (authenticated). The server drops the payload when UserSettings.analyticsPersonalization is false. Opted-in batches are stored as FeedSignal rows: at most 50 events, a 64KB body, and 30 batches per minute (429). The response includes accepted. The operation description covers the body; there is still no requestBody schema.
  • Platform status/data surfaces: /api/dashboard, /api/dashboard/stats, /api/dashboard/balance, /api/dashboard/quests
  • Maintenance utility: /api/sync-quest-points
  • Integration sync references: /api/webhooks/leagues-sync (behavior reference), admin sync triggers documented in domain guides
Unknown /api/* paths return JSON 404 with code NOT_FOUND. They do not fall through to the HTML app 404.

Integration notes

  • Some utility routes are intended for specific client contexts; avoid treating all as generic public services.
  • Keep route usage aligned with deep-dive operational guidance.
  • Internal cron/debug operations are intentionally excluded from public API docs.
  • Teams/leagues sync internals are documented in public-safe terms only.

Deep-dive documentation