API Reference#
Version: 1.0.0 | Prerequisites: stack must be running (source setup.sh start)
Interactive Swagger UI: http://<HOST_IP>:8000/docs
Endpoints#
Cameras & Events#
Method |
Path |
Parameters |
Description |
|---|---|---|---|
|
|
— |
List all configured cameras and their tracked object types |
|
|
query: |
List events for a specific camera from Frigate |
Summary & Search#
Method |
Path |
Parameters |
Description |
|---|---|---|---|
|
|
path: |
Request an AI-generated summary for a clip; routes to VSS (Video Search Service) |
|
|
path: |
Poll summary job status or retrieve result |
|
|
path: |
Generate search embeddings for semantic video search |
Rules#
Rules map object detection labels to actions per camera.
Method |
Path |
Parameters |
Description |
|---|---|---|---|
|
|
— |
List all configured rules |
|
|
body: Rule |
Add a new rule — |
|
|
path: |
Get a specific rule — |
|
|
path: |
Delete a rule — |
|
|
— |
Get summary results for all non-search rules |
|
|
— |
Get search results for all rules with action |
Watchers#
Per-camera directory watchers that detect new Frigate events. State persists in Redis across restarts; in-memory overrides reflect runtime changes.
Method |
Path |
Parameters |
Description |
|---|---|---|---|
|
|
body: CameraWatcherRequest |
Enable/disable directory watchers for one or more cameras — |
|
|
— |
Alias for |
|
|
— |
Get current watcher enable/disable state (merged Redis + runtime) |
Health#
Method |
Path |
Description |
|---|---|---|
|
|
Service health check |
|
|
Detailed health status |
* Required parameter
Endpoints that accept path, query, or body parameters return 422 Unprocessable Entity on invalid input — see HTTPValidationError.
Schemas#
Rule#
Field |
Type |
Required |
Description |
|---|---|---|---|
|
string |
Yes |
Unique rule ID |
|
string |
Yes |
Detection label (e.g. |
|
string |
Yes |
Action to trigger (e.g. |
|
string | null |
No |
Camera scope; |
|
string | null |
No |
Optional source identifier |
|
int | null |
No |
Internal field; read-only |
CameraWatcherRequest#
{ "cameras": [{ "<camera_name>": true }, { "<other_camera>": false }] }
cameras — array of objects, each mapping one camera name → true (enable) or false (disable).
CameraWatcherUpdateResponse#
Field |
Type |
Description |
|---|---|---|
|
object |
Persisted map of camera name → enabled flag |
|
string[] |
Currently enabled cameras |
|
string[] |
Currently disabled cameras |
CameraWatcherMappingResponse#
Field |
Type |
Description |
|---|---|---|
|
object |
Current map of camera name → enabled flag (Redis + runtime) |
|
string (optional) |
Set if Redis lookup failed |
HTTPValidationError#
{ "detail": [{ "loc": ["body", "field"], "msg": "string", "type": "string" }] }
OpenAPI Spec#
# Live (requires running stack)
curl http://<HOST_IP>:8000/openapi.json
# From repo
cat docs/user-guide/api-docs/smart-nvr.yaml
Import into Swagger Editor, Bruno, or Insomnia for offline exploration.