Skip to content

Complete Routes Map

All routes are defined in /src/routes/ and prefixed with /api.

Authentication Routes

File: auth.routes.ts

MethodPathControllerAuthDescription
POST/auth/send-verification-codeAuthController.sendVerificationCodeNoneSend SMS OTP
POST/auth/verify-codeAuthController.verifyCodeNoneVerify OTP code
POST/auth/resend-codeAuthController.resendCodeNoneResend OTP
POST/auth/register/userAuthController.registerUserNoneComplete user registration
POST/auth/register/employerAuthController.registerEmployerNoneComplete employer registration
POST/auth/login/userAuthController.loginUserNoneUser login
POST/auth/login/employerAuthController.loginEmployerNoneEmployer login
POST/auth/refreshAuthController.refreshTokenNoneRefresh JWT tokens
POST/auth/logoutAuthController.logoutauthMiddlewareClear refresh token

Job Routes

File: job.routes.ts

MethodPathControllerAuthDescription
GET/jobs/searchJobController.searchJobsNoneFull-text search
GET/jobsJobController.getJobsNoneList jobs (paginated)
GET/jobs/:idJobController.getJobNoneGet single job
POST/jobsJobController.createJobemployerAuthCreate job
PUT/jobs/:idJobController.updateJobemployerAuthUpdate job
DELETE/jobs/:idJobController.deleteJobemployerAuthDelete job

User Routes

File: user.routes.ts

MethodPathControllerAuthDescription
GET/users/meUserController.getCurrentUseruserAuthGet current user
PUT/users/meUserController.updateCurrentUseruserAuthUpdate profile
POST/users/swipeUserController.addSwipeHistoryuserAuthRecord swipe
POST/users/save/:jobIdUserController.saveJobuserAuthSave job
DELETE/users/save/:jobIdUserController.unsaveJobuserAuthUnsave job
GET/users/savedUserController.getSavedJobsuserAuthGet saved jobs
GET/users/profile-completenessUserController.getProfileCompletenessuserAuthCheck completion
POST/users/educationUserController.addEducationuserAuthAdd education
PUT/users/education/:idUserController.updateEducationuserAuthUpdate education
DELETE/users/education/:idUserController.deleteEducationuserAuthDelete education
POST/users/experienceUserController.addExperienceuserAuthAdd experience
PUT/users/experience/:idUserController.updateExperienceuserAuthUpdate experience
DELETE/users/experience/:idUserController.deleteExperienceuserAuthDelete experience

Application Routes

File: application.routes.ts

MethodPathControllerAuthDescription
POST/applicationsApplicationController.createApplicationuserAuthSubmit application
GET/applications/userApplicationController.getUserApplicationsuserAuthMy applications
GET/applications/employerApplicationController.getEmployerApplicationsemployerAuthReceived apps
GET/applications/:idApplicationController.getApplicationauthMiddlewareGet application
PATCH/applications/:id/statusApplicationController.updateApplicationStatusemployerAuthUpdate status
DELETE/applications/:idApplicationController.deleteApplicationuserAuthWithdraw

Employer Routes

File: employer.routes.ts

MethodPathControllerAuthDescription
GET/employers/meEmployerController.getCurrentEmployeremployerAuthGet current employer
PUT/employers/meEmployerController.updateCurrentEmployeremployerAuthUpdate profile
GET/employers/:idEmployerController.getEmployerNoneGet employer (public)
GET/employers/:id/jobsEmployerController.getEmployerJobsNoneEmployer's jobs

Services Routes (Informal Workers)

File: services.routes.ts

MethodPathControllerAuthDescription
POST/services/workerServicesController.createWorkerProfileuserAuthCreate worker profile
GET/services/worker/meServicesController.getMyWorkerProfileuserAuthGet my profile
PUT/services/worker/meServicesController.updateWorkerProfileuserAuthUpdate profile
PATCH/services/worker/availabilityServicesController.toggleAvailabilityuserAuthToggle availability
GET/services/workers/nearbyServicesController.getNearbyWorkersoptionalAuthGPS search
GET/services/workers/feedServicesController.getWorkerFeedoptionalAuthTikTok feed
POST/services/workers/:id/swipeServicesController.swipeWorkeruserAuthSwipe on worker
GET/services/workers/:id/likesServicesController.getWorkerLikesuserAuthWho liked me
GET/services/categoriesServicesController.getCategoriesNoneList categories
POST/services/categoriesServicesController.createCategoryauthMiddlewareCreate category
GET/services/workers/searchServicesController.searchWorkersoptionalAuthSearch workers

Bookings Routes

File: bookings.routes.ts

MethodPathControllerAuthDescription
POST/bookings/requestsBookingsController.createRequestuserAuthPost request
GET/bookings/requests/mineBookingsController.getMyRequestsuserAuthMy requests
GET/bookings/requests/nearbyBookingsController.getNearbyRequestsuserAuthNearby requests
GET/bookings/requests/:idBookingsController.getRequestauthMiddlewareGet request
PATCH/bookings/requests/:id/statusBookingsController.updateRequestStatususerAuthUpdate status
POST/bookings/requests/:id/swipeBookingsController.swipeRequestuserAuthWorker swipes
POST/bookings/quotesBookingsController.createQuoteuserAuthSubmit quote
GET/bookings/requests/:id/quotesBookingsController.getQuotesauthMiddlewareGet quotes
POST/bookings/quotes/:id/acceptBookingsController.acceptQuoteuserAuthAccept quote
POST/bookings/quotes/:id/rejectBookingsController.rejectQuoteuserAuthReject quote
POST/bookingsBookingsController.createBookinguserAuthDirect booking
GET/bookings/clientBookingsController.getClientBookingsuserAuthMy bookings
GET/bookings/workerBookingsController.getWorkerBookingsuserAuthWorker's bookings
GET/bookings/:idBookingsController.getBookingauthMiddlewareGet booking
PATCH/bookings/:id/statusBookingsController.updateBookingStatusauthMiddlewareUpdate status

Messages Routes

File: messages.routes.ts

MethodPathControllerAuthDescription
GET/messages/conversationsMessagesController.getConversationsauthMiddlewareList conversations
GET/messages/conversations/:idMessagesController.getConversationauthMiddlewareGet conversation
GET/messages/conversations/:id/messagesMessagesController.getMessagesauthMiddlewareGet messages
POST/messages/conversations/:id/messagesMessagesController.sendMessageauthMiddlewareSend message
POST/messages/conversations/:id/readMessagesController.markAsReadauthMiddlewareMark read
DELETE/messages/:messageIdMessagesController.deleteMessageauthMiddlewareDelete message
POST/messages/conversations/:id/typingMessagesController.updateTypingStatusauthMiddlewareTyping status
GET/messages/conversations/:id/typingMessagesController.getTypingUsersauthMiddlewareGet typing
POST/messages/conversations/:id/pinMessagesController.togglePinauthMiddlewareToggle pin
POST/messages/conversations/:id/muteMessagesController.toggleMuteauthMiddlewareToggle mute
POST/messages/conversations/:id/archiveMessagesController.archiveConversationauthMiddlewareArchive
POST/messages/conversations/:id/unarchiveMessagesController.unarchiveConversationauthMiddlewareUnarchive
GET/messages/unread-countMessagesController.getUnreadCountauthMiddlewareUnread count

Credits Routes

File: credits.routes.ts

MethodPathControllerAuthDescription
GET/credits/balanceCreditsController.getBalanceuserAuthGet balance
GET/credits/transactionsCreditsController.getTransactionsuserAuthTransaction history
GET/credits/packagesCreditsController.getPackagesNoneAvailable packages
GET/credits/currenciesCreditsController.getCurrenciesNoneSupported currencies
GET/credits/payment-methodsCreditsController.getPaymentMethodsNonePayment options
POST/credits/payment-requestCreditsController.createPaymentRequestuserAuthRequest to buy
POST/credits/payment-request/:id/referenceCreditsController.submitPaymentReferenceuserAuthSubmit ref
GET/credits/payment-requestsCreditsController.getPaymentRequestsuserAuthMy requests
POST/credits/cashoutCreditsController.createCashoutRequestuserAuthRequest cashout
GET/credits/cashout-requestsCreditsController.getCashoutRequestsuserAuthMy cashouts

Billing Routes (Stripe)

File: billing.routes.ts

MethodPathControllerAuthDescription
GET/billing/plansBillingController.getPlansNoneGet plans
POST/billing/checkoutBillingController.createCheckoutauthMiddlewareCreate checkout
POST/billing/webhookBillingController.handleWebhookNoneStripe webhook
GET/billing/modeBillingController.getModeNoneGet mode

Interview Routes

File: interview.routes.ts

MethodPathControllerAuthDescription
POST/interviews/createInterviewController.createSessionemployerAuthCreate session
GET/interviews/status/:applicationIdInterviewController.getStatusauthMiddlewareGet status
GET/interviews/pendingInterviewController.getPendingInterviewsuserAuthPending interviews
GET/interviews/allInterviewController.getAllInterviewsuserAuthAll interviews
GET/interviews/session/:applicationIdInterviewController.getSessionForUseruserAuthGet session URL
PATCH/interviews/privacyInterviewController.updatePrivacyuserAuthToggle privacy
POST/interviews/webhook/completedInterviewController.handleWebhookNoneOkia webhook

Experience Routes

File: experience.routes.ts

MethodPathControllerAuthDescription
GET/experience/tracksExperienceController.getTracksNoneList tracks
GET/experience/tracks/:slugExperienceController.getTrackNoneGet track
POST/experience/tracks/:id/enrollExperienceController.enrollInTrackuserAuthEnroll
GET/experience/enrollmentsExperienceController.getEnrollmentsuserAuthMy enrollments
GET/experience/tasks/:idExperienceController.getTaskuserAuthGet task
POST/experience/tasks/:id/submitExperienceController.submitTaskuserAuthSubmit answer
GET/experience/progressExperienceController.getProgressuserAuthMy progress
GET/experience/certificatesExperienceController.getCertificatesuserAuthMy certificates
GET/experience/verify/:codeExperienceController.verifyCertificateNoneVerify cert
GET/experience/leaderboardExperienceController.getLeaderboardNoneTop users

CV Routes

File: cv.routes.ts

MethodPathControllerAuthDescription
GET/cvCVController.getMyCVsuserAuthList my CVs
GET/cv/:idCVController.getCVuserAuthGet CV
POST/cvCVController.createCVuserAuthCreate CV
PUT/cv/:idCVController.updateCVuserAuthUpdate CV
DELETE/cv/:idCVController.deleteCVuserAuthDelete CV
PATCH/cv/:id/defaultCVController.setDefaultuserAuthSet as default

Health & Utility

MethodPathDescription
GET/healthHealth check
GET/API info

One chat. Everything done.