{"status":"online","service":"CrowdVision API v1.0.0","endpoints":{"auth":{"login":"POST /api/auth/login","me":"GET /api/auth/me","update_profile":"PUT /api/auth/me","change_password":"PUT /api/auth/me/password","admin_users":"GET/POST/PUT/DELETE /api/auth/users/* (admin only)"},"health":"/api/health","analyze":"POST /api/analyze","status":"GET /api/status/{job_id}","rtsp":{"start":"POST /api/rtsp/start","stop":"POST /api/rtsp/stop/{stream_id}","status":"GET /api/rtsp/status/{stream_id}","list":"GET /api/rtsp/list","frame":"GET /api/rtsp/frame/{stream_id} (admin only)","live":"GET /api/rtsp/live/{stream_id} (admin only)"},"cameras":{"list":"GET /api/cameras (viewer/operator/admin)","create_update_delete":"POST/PUT/DELETE /api/cameras/* (admin only)"},"zones":{"list":"GET /api/zones","create":"POST /api/zones","analytics":"GET /api/zones/analytics","ws_all":"ws://host/api/ws/zones/analytics","ws_station":"ws://host/api/ws/zones/analytics/{station_id}"},"trains":{"upload":"POST /api/trains/upload","upcoming":"GET /api/trains/upcoming","schedule":"GET /api/trains/schedule","dates":"GET /api/trains/dates","ws":"ws://host/api/ws/trains"}}}