ARC IOT Server API Endpoints
Authentication
Login
POST /api/auth/login
Send:
{"phone": "string", "password": "string"}
Response:
{"token": "jwtstring", "user": { /* user object */ }}
Register
POST /api/auth/register
Send:
{
"fullName": "string",
"email": "string",
"phone": "string",
"password": "string",
"userType": "Owner|Operator|Viewer",
"address": "string",
"ownerId": "ownerUserId (required for Operator/Viewer)"
}
Response:
{"success": true}
User Endpoints
Get My Profile
GET /api/users/me
Headers: Authorization: Bearer <token>
Response: {"user": { ...user fields... }}
List My Operators/Viewers (Owner only)
GET /api/users/profiles
Headers: Authorization: Bearer <token>
Response: {"operators": [...], "viewers": [...]}
Get My Owner Info (Operator/Viewer)
GET /api/users/myowner
Headers: Authorization: Bearer <token>
Response: {"owner": {"fullName": "string", "phone": "string"}}
Device Endpoints
Add Device (Owner only)
POST /api/devices/add
Headers: Authorization: Bearer <token>
Send:
{
"deviceId": "string",
"deviceName": "string",
"deviceType": "string",
"technicalDetails": { ... },
"purchaseDate": "YYYY-MM-DD",
"purchaseFrom": "string",
"warrantyExpiry": "YYYY-MM-DD",
"location": "string",
"mqttTopic": "string"
}
Response: {"success": true, "device": {...}}
List My Devices
GET /api/devices/mydevices
Headers: Authorization: Bearer <token>
Response: {"devices": [...]}
Assign Operator/Viewer to Device (Owner only)
POST /api/devices/assignUser
Headers: Authorization: Bearer <token>
Send:
{
"deviceId": "string",
"userId": "string",
"role": "Operator|Viewer"
}
Response: {"success": true, "device": {...}}
Super Admin Endpoints
List All Users
GET /api/users/all
Headers: Authorization: Bearer <token>
Response: {"users": [...]}
Delete User
DELETE /api/users/:userId
Headers: Authorization: Bearer <token>
Response: {"success": true}
Update User
PUT /api/users/:userId
Headers: Authorization: Bearer <token>
Send: { ...fields to update... }
Response: {"success": true, "user": {...}}
List All Devices
GET /api/devices/all
Headers: Authorization: Bearer <token>
Response: {"devices": [...]}
Delete Device
DELETE /api/devices/:deviceId
Headers: Authorization: Bearer <token>
Response: {"success": true}
Update Device
PUT /api/devices/:deviceId
Headers: Authorization: Bearer <token>
Send: { ...fields to update... }
Response: {"success": true, "device": {...}}
Quick Summary Table
Function Endpoint Method Body / Params Auth required
Login /api/auth/login POST phone, No
password
Register /api/auth/ POST see above No
register
My Profile /api/users/me GET Yes
My /api/users/ GET Yes (Owner)
Operators/Vie profiles
wers
My Owner /api/users/ GET Yes
(Op/Viewer) myowner
Add Device /api/devices/ POST see above Yes (Owner)
add
My Devices /api/devices/ GET Yes
mydevices
Assign User to /api/devices/ POST deviceId, Yes (Owner)
Device assignUser userId, role
List All Users /api/users/all GET Yes (admin)
Delete User /api/ DELETE Yes (admin)
users/:userId
Update User /api/ PUT fields to update Yes (admin)
users/:userId
List All Devices /api/devices/ GET Yes (admin)
all
Delete Device /api/ DELETE Yes (admin)
devices/:device
Id
Update Device /api/ PUT fields to update Yes (admin)
devices/:device
Id