Route map
Copied from src/index.ts — the official URL wiring.
Public / student APIs
| Mount path | Router | Purpose |
|---|---|---|
/api/v1/auth | auth.route.ts | Google login, refresh, logout |
/api/v1/users | user.route.ts | Profile, library, playlists, study stats, … |
/api/v1/users | notification.route.ts (user part) | Device tokens, notification prefs |
/api/v1/practice-pyq | practice-pyq-public.routes.ts | Official PYQ catalog + sessions |
/api/v1/practice-yt | same file (practiceYtPublicRouter) | YouTube practice catalog |
/api/v1/current-affairs | current-affairs-public.routes.ts | Daily issues, MCQs, bookmarks, revision |
/api/v1 | timestamps.route.ts | Crowd + user video timestamps |
Admin APIs
| Mount path | Router | Purpose |
|---|---|---|
/api/v1/admin | admin.route.ts | Main admin surface (large file) |
/api/v1/admin/practice-pyq | practice-pyq-admin.routes.ts (practicePyqAdminRouter) | PYQ taxonomy CRUD (nested in admin) |
/api/v1/admin/practice-yt | practice-pyq-admin.routes.ts (practiceYtAdminRouter) | YouTube practice catalog admin |
/api/v1/admin/current-affairs | current-affairs-admin.routes.ts | CA editor pipelines (nested in admin) |
/api/v1/admin/marketing | marketing-admin.routes.ts | Deals / sponsors (nested in admin) |
/api/v1/admin/notifications | notification.route.ts (adminNotificationsRouter) | Push logs, metrics |
/api/v1/admin/rate-limits | admin-rate-limits.routes.ts | Dynamic API rate-limit policies (super admin) |
Internal (not for browsers)
| Mount path | Router | Auth |
|---|---|---|
/internal/notifications | notification.route.ts | Header x-internal-key |
No auth
| Path | Response |
|---|---|
GET /health | { status: 'ok' } (always responds) |
GET /ready | { status: 'ready', db: 'connected', requestId } once MongoDB is up; 503 { status: 'not_ready', db: 'disconnected', requestId } otherwise |
CORS allowed origins (dev)
http://localhost:5173— vite-frontendhttp://localhost:5174— admin-frontendchrome-extension://…— extensionALLOWED_ORIGINenv in production
For every endpoint’s exact path strings, open the route file or use the Routes section.
Last updated on