This document provides a comprehensive API reference for the Merq platform. The full OpenAPI specification is available in the backend at /api/docs (when running locally).
Environment URL Development http://localhost:8080/apiProduction https://api.merq.io/api
All API requests require authentication via JWT token.
Content-Type: application/json
"email": "user@example.com",
"password": "your-password"
"token" : " eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... " ,
"email" : " user@example.com " ,
Include the token in the Authorization header:
Authorization: Bearer <your-token>
Method Endpoint Description POST /auth/loginUser login POST /auth/registerUser registration POST /auth/refreshRefresh token POST /auth/forgot-passwordRequest password reset POST /auth/reset-passwordReset password
All office endpoints require office/v1/ prefix.
Method Endpoint Description GET /office/v1/outlet-visitsList visits POST /office/v1/outlet-visitsCreate visit POST /office/v1/outlet-visits/bulkBulk create visits POST /office/v1/outlet-visits/importImport from CSV GET /office/v1/outlet-visits/exportExport to CSV POST /office/v1/outlet-visits/send-to-fieldSend to field staff GET /office/v1/outlet-visits/:idGet visit detail PUT /office/v1/outlet-visits/:id/force-closeForce close visit PUT /office/v1/outlet-visits/:id/cancelCancel visit POST /office/v1/outlet-visits/:visit_id/assign-usersAssign users
Method Endpoint Description GET /office/v1/outlet-visits/submissionsList submissions GET /office/v1/outlet-visits/submissions/:idGet submission POST /office/v1/outlet-visits/submissions/:id/approvalApprove/reject
Method Endpoint Description GET /office/v1/outletsList outlets POST /office/v1/outletsCreate outlet GET /office/v1/outlets/:idGet outlet PUT /office/v1/outlets/:idUpdate outlet DELETE /office/v1/outlets/:idDelete outlet
Method Endpoint Description GET /office/v1/usersList users POST /office/v1/usersCreate user GET /office/v1/users/:idGet user PUT /office/v1/users/:idUpdate user DELETE /office/v1/users/:idDelete user
Method Endpoint Description GET /office/v1/teamsList teams POST /office/v1/teamsCreate team GET /office/v1/teams/:idGet team PUT /office/v1/teams/:idUpdate team DELETE /office/v1/teams/:idDelete team
Method Endpoint Description GET /office/v1/projectsList projects POST /office/v1/projectsCreate project GET /office/v1/projects/:idGet project PUT /office/v1/projects/:idUpdate project DELETE /office/v1/projects/:idDelete project
Method Endpoint Description GET /office/v1/productsList products POST /office/v1/productsCreate product GET /office/v1/products/:idGet product PUT /office/v1/products/:idUpdate product DELETE /office/v1/products/:idDelete product
Method Endpoint Description GET /office/v1/principalsList principals POST /office/v1/principalsCreate principal GET /office/v1/principals/:idGet principal PUT /office/v1/principals/:idUpdate principal DELETE /office/v1/principals/:idDelete principal
Method Endpoint Description GET /office/v1/formsList forms POST /office/v1/formsCreate form GET /office/v1/forms/:idGet form PUT /office/v1/forms/:idUpdate form DELETE /office/v1/forms/:idDelete form
Method Endpoint Description GET /office/v1/attendancesList attendances POST /office/v1/attendancesRecord attendance GET /office/v1/attendances/:idGet attendance
Method Endpoint Description GET /office/v1/dashboard/metricsDashboard metrics GET /office/v1/dashboard/summarySummary data
Method Endpoint Description GET /office/v1/notificationsList notifications GET /office/v1/notifications/unread-countUnread count PUT /office/v1/notifications/:id/readMark as read PUT /office/v1/notifications/read-allMark all read
Method Endpoint Description GET /office/v1/export/submissions/csvExport submissions CSV GET /office/v1/export/submissions/pdfExport submissions PDF GET /office/v1/export/jobsList export jobs GET /office/v1/export/jobs/:idGet export job status GET /office/v1/export/jobs/:id/downloadDownload export file
All mobile endpoints require app/v1/ prefix.
Method Endpoint Description GET /app/v1/outlet-visitsList user’s visits POST /app/v1/outlet-visitsCreate self-assigned visit GET /app/v1/outlet-visits/:idGet visit detail POST /app/v1/outlet-visits/:id/check-inCheck in to visit POST /app/v1/outlet-visits/:id/check-outCheck out from visit POST /app/v1/outlet-visits/:id/submit-formSubmit form GET /app/v1/outlet-visits/active-visitGet active visit
Method Endpoint Description GET /app/v1/outlet-visits/submissionsList submissions GET /app/v1/outlet-visits/submissions/:idGet submission
Method Endpoint Description GET /app/v1/profileGet profile PUT /app/v1/profileUpdate profile PUT /app/v1/profile/passwordChange password
Method Endpoint Description GET /app/v1/notificationsList notifications PUT /app/v1/notifications/:id/readMark as read POST /app/v1/notifications/tokensRegister FCM token
Common query parameters for list endpoints:
Parameter Type Default Description pageinteger 1 Page number limitinteger 10 Items per page keywordstring - Search keyword sort_bystring created_at Sort field sort_orderstring desc Sort direction (asc/desc)
"message" : " Error message " ,
See Rate Limiting for details.
WebSocket is available for real-time features:
Requires authentication token in query string:
wss://api.merq.io/ws?token=<jwt-token>
A Postman collection is available for testing. Import from:
merq-backend/docs/merq-api-collection.json