Master API Endpoint Map
Overview
This document provides a comprehensive reference map of all REST API endpoints provided by the NestJS backend server (server/src). All endpoints require Bearer JWT authentication via JwtAuthGuard unless explicitly marked public (@Public()).
🔐 1. Authentication & User Management (/auth, /users)
| Method | Endpoint | Access Level | Description |
|---|
POST | /auth/register | Public | Register new user (Student, Instructor, Consultant). |
POST | /auth/login | Public | Authenticate user credentials and issue JWT pair. |
POST | /auth/refresh | Public | Refresh expired access token using refresh token. |
POST | /auth/logout | Authenticated | Revoke active refresh token. |
POST | /auth/forgot-password | Public | Request password reset code via email. |
POST | /auth/reset-password | Public | Reset password using verified code. |
GET | /users/me | Authenticated | Retrieve current user profile details. |
PATCH | /users/me | Authenticated | Update user profile, avatar, and notification settings. |
📚 2. Course Engine (/course, /category)
| Method | Endpoint | Access Level | Description |
|---|
GET | /course | Public | List published courses with pagination and category filters. |
GET | /course/slug/:slug | Public | Get full course details by unique slug. |
POST | /course | Instructor / Admin | Create a new draft course. |
PATCH | /course/:id | Instructor / Admin | Update course metadata, pricing, and level. |
POST | /course/:id/sections | Instructor / Admin | Add section to course curriculum. |
POST | /course/sections/:id/subsections | Instructor / Admin | Add subsection to course section. |
POST | /course/subsections/:id/items | Instructor / Admin | Add video/quiz/document item to subsection. |
POST | /course/:id/progress | Student | Update student section/video playback progress. |
GET | /category | Public | List top-level categories and subcategories. |
🗓 3. Consultation Booking & Sessions (/consultation, /consultant)
| Method | Endpoint | Access Level | Description |
|---|
GET | /consultation | Public | List active consultations with filter criteria. |
GET | /consultation/slug/:slug | Public | Retrieve consultation profile by slug. |
POST | /consultation | Consultant | Create new one-off or recurring consultation offer. |
POST | /consultation/:id/availability | Consultant | Set weekly availability slots and buffer times. |
GET | /consultation/:id/availability | Public | Query available booking time slots for dates. |
POST | /consultation/:id/booking | Student | Create booking reservation for selected slot. |
POST | /consultation/booking/:id/reschedule | Student / Consultant | Propose alternative session time slot. |
POST | /consultation/booking/:id/complete | Consultant | Mark session completed to trigger payment release. |
💳 4. Wallet & Withdrawal System (/wallet, /withdrawals)
| Method | Endpoint | Access Level | Description |
|---|
GET | /wallet/balance | Authenticated | Get provider wallet balance (available, pending hold). |
GET | /wallet/revenue-chart | Authenticated | Retrieve earnings history broken down by period. |
GET | /withdrawals/methods | Authenticated | List configured payout bank accounts / recipient IDs. |
POST | /withdrawals/methods | Authenticated | Add new withdrawal method (OTP verification required). |
POST | /withdrawals/request | Authenticated | Initiate withdrawal request from available balance. |
POST | /withdrawals/:id/verify | Authenticated | Verify pending withdrawal using approval OTP. |
PATCH | /withdrawals/:id/approve | Admin Only | Administrative approval and execution of bank payout. |
🔍 5. Quality Validation Queue (/validation, /admin)
| Method | Endpoint | Access Level | Description |
|---|
GET | /validation/queue | Admin Only | Fetch list of courses and consultations pending review. |
POST | /validation/course/:id/submit | Instructor | Submit course for admin validation. |
POST | /product/:id/approve | Admin Only | Approve course/consultation for public marketplace. |
POST | /product/:id/reject | Admin Only | Reject product submission with feedback notes. |
⚡ 6. Real-Time & Analytics Endpoints (/instant, /analytics)
| Method | Endpoint | Access Level | Description |
|---|
GET | /instant/session-room | Authenticated | Obtain InstantDB room token and presence credentials. |
POST | /analytics/beacon | Authenticated | Ingest student active time, video heartbeats, and engagement. |
GET | /analytics/platform-overview | Admin Only | View system-wide metrics (GMV, active users, course counts). |