Skip to content

REST API

VideoNode exposes a Huma-generated REST API. The authoritative schema is served by the running daemon. This page is a pointer, not a copy.

WhereWhat
http://<host>:8090/docsInteractive API reference rendered by Stoplight Elements
http://<host>:8090/openapi.jsonMachine-readable OpenAPI 3 description (JSON)
http://<host>:8090/openapi.yamlSame description in YAML

Use those for endpoint shapes, request/response schemas, and authentication details. The schema is always in sync with the daemon you're hitting; this static page would not be.

Snapshot and preview endpoints

Each source and composer exposes two image endpoints outside the Huma schema:

EndpointReturns
GET /api/sources/{id}/snapshot.jpgLatest cached JPEG frame from the producer (sets an ETag)
GET /api/sources/{id}/preview.mjpgLive multipart MJPEG stream
GET /api/composers/{id}/snapshot.jpgLatest cached JPEG of the canvas
GET /api/composers/{id}/preview.mjpgLive multipart MJPEG stream

Operational endpoints

The daemon also serves /api/health, /metrics, /api/options, /api/devices, /api/encoders, /api/pipeline, /api/leds, /api/processes, and /api/metrics. Their request and response shapes are described in /openapi.json; this page does not duplicate them.

Authentication

All endpoints except /api/health and /metrics require either Linux account auth (default) or basic auth, depending on the daemon's auth.type setting. See Installation – Web UI authentication for the user/group setup, or config.toml reference to switch to basic credentials.

Server-Sent Events

Live state updates are pushed on the /api/events SSE channel. See Events and SSE for the event model, or Observability to consume the stream.