{"message":"VectorNode API","version":"1.0.0","status":"running","baseUrl":"/api","documentation":{"quickReference":"See QUICK_REFERENCE.md for quick endpoint reference","fullDocumentation":"See API_DOCUMENTATION.md for complete API documentation","readme":"See README.md for setup and development guide"},"endpoints":{"health":{"method":"GET","path":"/api/health","description":"Check server status"},"auth":{"register":{"method":"POST","path":"/api/auth/register","description":"Register a new user","roles":["SHIPPER","CARRIER","WAREHOUSE"]},"login":{"method":"POST","path":"/api/auth/login","description":"Login with email and password"},"logout":{"method":"POST","path":"/api/auth/logout","description":"Logout current user"},"me":{"method":"GET","path":"/api/auth/me","description":"Get current user information","auth":"Required"}},"shipments":{"list":{"method":"GET","path":"/api/shipments","description":"Get all shipments","auth":"Required"},"create":{"method":"POST","path":"/api/shipments","description":"Create a new shipment","auth":"Required","role":"SHIPPER"},"get":{"method":"GET","path":"/api/shipments/:id","description":"Get shipment by ID","auth":"Required"},"update":{"method":"PUT","path":"/api/shipments/:id","description":"Update shipment","auth":"Required","role":"SHIPPER or ADMIN"},"delete":{"method":"DELETE","path":"/api/shipments/:id","description":"Delete shipment","auth":"Required","role":"SHIPPER or ADMIN"},"selectBid":{"method":"POST","path":"/api/shipments/:id/select-bid","description":"Select a bid for shipment","auth":"Required","role":"SHIPPER"}},"bids":{"myBids":{"method":"GET","path":"/api/bids/my-bids","description":"Get all bids for current carrier","auth":"Required","role":"CARRIER"},"create":{"method":"POST","path":"/api/bids","description":"Place a bid on a shipment","auth":"Required","role":"CARRIER"},"withdraw":{"method":"DELETE","path":"/api/bids/:id","description":"Withdraw a bid","auth":"Required","role":"CARRIER"}},"carriers":{"list":{"method":"GET","path":"/api/carriers","description":"Get all carriers","auth":"Optional"},"get":{"method":"GET","path":"/api/carriers/:id","description":"Get carrier by ID","auth":"Optional"}},"users":{"profile":{"method":"GET","path":"/api/users/profile","description":"Get current user profile","auth":"Required"},"updateProfile":{"method":"PUT","path":"/api/users/profile","description":"Update user profile","auth":"Required"},"changePassword":{"method":"PUT","path":"/api/users/change-password","description":"Change user password","auth":"Required"}},"qr":{"getToken":{"method":"GET","path":"/api/qr/token/:token","description":"Get unit info by QR token","auth":"Optional"},"getActions":{"method":"GET","path":"/api/qr/token/:token/actions","description":"Get allowed actions for user","auth":"Required"},"scan":{"method":"POST","path":"/api/qr/scan","description":"Universal scan endpoint","auth":"Required","actions":["PICKUP","INBOUND","OUTBOUND","IN_TRANSIT","DELIVERED","DAMAGE"]},"photo":{"method":"POST","path":"/api/qr/photo","description":"Upload photo for shipment unit","auth":"Required","types":["ORIGIN","WAREHOUSE_IN","WAREHOUSE_OUT","DELIVERY","DAMAGE"]},"signature":{"method":"POST","path":"/api/qr/signature","description":"Capture delivery signature","auth":"Required","role":"DRIVER or CARRIER"},"history":{"method":"GET","path":"/api/qr/history/:unitId","description":"Get scan history for unit","auth":"Required"},"pod":{"method":"GET","path":"/api/qr/pod/:shipmentId","description":"Get proof of delivery","auth":"Required"}},"disputes":{"create":{"method":"POST","path":"/api/disputes","description":"Create a new dispute","auth":"Required","role":"SHIPPER, CARRIER, WAREHOUSE"},"myDisputes":{"method":"GET","path":"/api/disputes/my","description":"Get my disputes","auth":"Required"},"allDisputes":{"method":"GET","path":"/api/disputes/all","description":"Get all disputes (admin only)","auth":"Required","role":"ADMIN"},"get":{"method":"GET","path":"/api/disputes/:id","description":"Get dispute by ID","auth":"Required"},"updateStatus":{"method":"PATCH","path":"/api/disputes/:id/status","description":"Update dispute status","auth":"Required","role":"ADMIN","statuses":["OPEN","UNDER_REVIEW","EVIDENCE_COMPLETE","RESOLVED"]},"resolve":{"method":"POST","path":"/api/disputes/:id/resolve","description":"Resolve dispute with final decision","auth":"Required","role":"ADMIN","liabilities":["CARRIER","WAREHOUSE","CLIENT","SHIPPER","UNKNOWN"]},"addComment":{"method":"POST","path":"/api/disputes/:id/comments","description":"Add comment to dispute","auth":"Required"},"addEvidence":{"method":"POST","path":"/api/disputes/:id/evidence","description":"Add evidence to dispute","auth":"Required"},"auditLog":{"method":"GET","path":"/api/disputes/:id/audit","description":"Get audit log for dispute","auth":"Required","role":"ADMIN"}}},"authentication":{"type":"JWT Bearer Token","header":"Authorization: Bearer <token>","getToken":"Register or login to receive a JWT token"},"timestamp":"2026-05-13T06:44:22.749Z"}