Local: http://localhost:8000
Production: https://your-app.onrender.com
POST /api/v1/user/register
Content-Type: application/json
{
"fullname": "John Doe",
"email": "john.doe@example.com",
"password": "password123"
}POST /api/v1/user/login
Content-Type: application/json
{
"email": "john.doe@example.com",
"password": "password123"
}GET /api/v1/user/profile
Cookie: token=<jwt_token>PUT /api/v1/user/profile
Cookie: token=<jwt_token>
Content-Type: application/json
{
"fullname": "John Updated"
}POST /api/v1/user/logout
Cookie: token=<jwt_token>POST /api/v1/session/create
Cookie: token=<jwt_token>
Content-Type: application/json
{
"role": "Backend Developer",
"experience": "mid-level",
"topicsToFocus": ["Node.js", "MongoDB", "REST APIs"]
}GET /api/v1/session
Cookie: token=<jwt_token>GET /api/v1/session/:id
Cookie: token=<jwt_token>PUT /api/v1/session/:id
Cookie: token=<jwt_token>
Content-Type: application/json
{
"status": "completed",
"duration": 90
}DELETE /api/v1/session/:id
Cookie: token=<jwt_token>POST /api/v1/question/generate
Cookie: token=<jwt_token>
Content-Type: application/json
{
"role": "Backend Developer",
"experience": "mid-level",
"topicsToFocus": ["Node.js", "Express.js"],
"sessionId": "SESSION_ID"
}GET /api/v1/question/session/:sessionId
Cookie: token=<jwt_token>GET /api/v1/question/:id
Cookie: token=<jwt_token>GET /api/v1/question/search?q=node&limit=20
Cookie: token=<jwt_token>GET /api/v1/question/session/:sessionId/pinned
Cookie: token=<jwt_token>GET /api/v1/question/session/:sessionId/stats
Cookie: token=<jwt_token>POST /api/v1/question/custom
Cookie: token=<jwt_token>
Content-Type: application/json
{
"sessionId": "SESSION_ID",
"question": "What is REST API?",
"answer": "REST API is..."
}PUT /api/v1/question/:id
Cookie: token=<jwt_token>
Content-Type: application/json
{
"question": "Updated question",
"answer": "Updated answer"
}PATCH /api/v1/question/:id/toggle-pin
Cookie: token=<jwt_token>POST /api/v1/question/:id/regenerate
Cookie: token=<jwt_token>DELETE /api/v1/question/:id
Cookie: token=<jwt_token>POST /api/v1/export/export/:sessionId?format=pdf
Cookie: token=<jwt_token>POST /api/v1/export/export/:sessionId?format=csv
Cookie: token=<jwt_token>POST /api/v1/export/export/:sessionId?format=docx
Cookie: token=<jwt_token>GET /api/v1/export/status/:jobId
Cookie: token=<jwt_token>GET /api/v1/export/download/:filename
Cookie: token=<jwt_token>GET /api/v1/queue/question/:jobId
Cookie: token=<jwt_token>GET /api/v1/queue/export/:jobId
Cookie: token=<jwt_token>GET /api/v1/analytics/user
Cookie: token=<jwt_token>GET /api/v1/analytics/session/:sessionId
Cookie: token=<jwt_token>GET /api/v1/analytics/trending?limit=10GET /api/v1/notifications?limit=20
Cookie: token=<jwt_token>POST /api/v1/notifications/read
Cookie: token=<jwt_token>
Content-Type: application/json
{
"notificationIds": ["notif_123", "notif_456"]
}DELETE /api/v1/notifications/clear
Cookie: token=<jwt_token>POST /api/v1/bulk/delete
Cookie: token=<jwt_token>
Content-Type: application/json
{
"questionIds": ["id1", "id2", "id3"]
}POST /api/v1/bulk/difficulty
Cookie: token=<jwt_token>
Content-Type: application/json
{
"questionIds": ["id1", "id2"],
"difficulty": "hard"
}POST /api/v1/bulk/toggle-pin
Cookie: token=<jwt_token>
Content-Type: application/json
{
"questionIds": ["id1", "id2"],
"isPinned": true
}GET /health| Category | Count |
|---|---|
| Authentication | 5 |
| Sessions | 5 |
| Questions | 12 |
| Exports | 3 |
| Queue Status | 2 |
| Analytics | 3 |
| Notifications | 3 |
| Bulk Operations | 3 |
| Health | 1 |
| TOTAL | 36 |
All endpoints except the following require authentication:
- POST /api/v1/user/register
- POST /api/v1/user/login
- GET /health
- GET /api/v1/analytics/trending
Authentication is done via JWT token in HTTP-only cookie.
- Backend Developer
- Frontend Developer
- Full Stack Developer
- DevOps Engineer
- Data Scientist
- interviewer
- interviewee
- mock-interview
- practice
- entry-level
- junior
- mid-level
- senior
- lead
- expert
- pending
- in-progress
- completed
- cancelled
- easy
- medium
- hard
- csv
- docx
| Endpoint Type | Limit |
|---|---|
| General API | 100 req/15min |
| Authentication | 10 req/15min |
| AI Generation | 20 req/hour |
| Export | 5 req/10min |
| Pin Toggle | 30 req/min |
- Register → Login → Create Session
- Generate Questions → Check Status → View Questions
- Get Analytics → Get Notifications
- Export PDF → Check Status → Download
- Bulk Operations → Verify Changes
All 36 endpoints documented! 🚀