Core API
Camera sources
Connect managed LiveKit, RTSP, HLS, or an existing customer LiveKit room.
Choose a source type
The create-stream body accepts one of four current camera paths. Omitting source creates a Hallikar-managed LiveKit room and returns publish credentials. Pull sources connect to RTSP or HLS. livekit_room subscribes to one camera or screen-share track in a customer-owned LiveKit room.
| Source | Request shape | Publish credentials returned |
|---|---|---|
| Managed LiveKit | {} | Yes |
| RTSP camera | {"source":{"type":"rtsp","url":"rtsp://..."}} | No |
| HLS stream | {"source":{"type":"hls","url":"https://...m3u8"}} | No |
| Existing LiveKit room | {"source":{"type":"livekit_room",...}} | No |
Connect an RTSP or HLS source
Hallikar validates the URL and probes reachability before accepting a pull source. A source URL may contain camera credentials, so the API never echoes it in responses. Store the URL as a secret and send it only from trusted server code.
curl --fail-with-body "$OX_VISION_API_BASE_URL/streams" \
--request POST \
--header "Authorization: Bearer $HALLIKAR_API_KEY" \
--header "Content-Type: application/json" \
--data '{"source":{"type":"hls","url":"https://camera.example/live/index.m3u8"}}'
Subscribe to a customer LiveKit room
The token must remain valid through the next lease interval and must allow the integration identity to join the named room. Set track_source to camera or screen_share. On keepalive, provide a refreshed source_token before the old token expires.
{
"source": {
"type": "livekit_room",
"url": "wss://your-project.livekit.cloud",
"token": "[SHORT_LIVED_LIVEKIT_TOKEN]",
"participant_identity": "camera-17",
"track_source": "camera"
}
}