oxDocs
Browse documentation
Introduction
Vision API

Get started

Quickstart
Inference API
Realtime
Integrations
LiveKit & SIP
Administration
Reference

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.

SourceRequest shapePublish 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.

bash

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.

json

{
  "source": {
    "type": "livekit_room",
    "url": "wss://your-project.livekit.cloud",
    "token": "[SHORT_LIVED_LIVEKIT_TOKEN]",
    "participant_identity": "camera-17",
    "track_source": "camera"
  }
}
Help improve this guideFound something unclear or incomplete?
Report an issue ↗View source ↗