Retrieve cameras and recorded events
Camera data and media use /v1/camera routes. JSON record responses and binary video responses are different response types.
POST
/v1/camera/list
List cameras
Requires can_view_cameras. Send an empty JSON object to retrieve the camera list. The response contains success, cameras and count; this operation does not use the device-list pagination fields.
Request Example
curl -X POST "https://your-lexoh-server.app.lexoh.com:3000/v1/camera/list" \
-H "SessionID: SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
Response Example
Example with no cameras.
{
"success": true,
"cameras": [],
"count": 0
}
POST
/v1/camera
Retrieve one camera and its stream field
A successful response contains camera. Its stream field supplies the WebRTC signaling URL when a monitor is configured; otherwise that field is empty. Treat returned camera details and stream URLs as sensitive.
Request Example
curl -X POST "https://your-lexoh-server.app.lexoh.com:3000/v1/camera" \
-H "SessionID: SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"id":123}'
POST
/v1/camera/event/list
List camera events
Requires can_view_camera_events. The response contains success, events and count. page starts at 1; page_limit defaults to 25 and is capped at 500.
Request Example
curl -X POST "https://your-lexoh-server.app.lexoh.com:3000/v1/camera/event/list" \
-H "SessionID: SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{"page":1,"page_limit":25}'
Response Example
Example with no matching camera events.
{
"success": true,
"events": [],
"count": 0
}
GET
/v1/camera/event/clip/EVENT_ID
Download an available event clip
Replace EVENT_ID with the recording’s event identifier. Requires can_view_camera_events. A successful response returns video/mp4, not a JSON stream URL.
Request Example
curl -X GET "https://your-lexoh-server.app.lexoh.com:3000/v1/camera/event/clip/EVENT_ID" \
-H "SessionID: SESSION_TOKEN"
Recorded HLS media
GET /v1/camera/event/vod/EVENT_ID/master.m3u8 returns an available HLS playlist. The same route with the requested segment filename returns video/MP2T content. These requests require an authenticated session and camera-event viewing permission.