mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-08-03 17:43:59 +03:00
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* update network requirements docs for keras weights download * fix manual PTZ relative moves permanently stopping object detection * document available camera set features and link profiles docs to the API * fix stale stream name field when switching cameras The live streams and known plates fields rendered the map key as an uncontrolled input, so switching cameras left the previous camera's stream name on screen and would rename the wrong key if that stale text was committed. Both now use a shared MapKeyInput that resyncs with the form data and commits per keystroke, except while the typed name belongs to another entry, so the section is marked modified without waiting for blur.
8921 lines
247 KiB
YAML
8921 lines
247 KiB
YAML
# Generated by generate_api_auth_spec.py — do not edit by hand.
|
|
# Regenerate with: python3 generate_api_auth_spec.py
|
|
# The empty info.title is intentional: a docusaurus-openapi-docs convention
|
|
# that suppresses the generated API introduction page.
|
|
openapi: 3.1.0
|
|
info:
|
|
title: ''
|
|
version: 0.1.0
|
|
servers:
|
|
- url: https://demo.frigate.video/api
|
|
- url: http://localhost:5001/api
|
|
paths:
|
|
/auth/first_time_login:
|
|
get:
|
|
tags:
|
|
- Auth
|
|
summary: First Time Login
|
|
description: |-
|
|
**Access:** Public — no authentication required.
|
|
|
|
Return whether the admin first-time login help flag is set in config.
|
|
|
|
This endpoint is intentionally unauthenticated so the login page can
|
|
query it before a user is authenticated.
|
|
operationId: first_time_login_auth_first_time_login_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security: []
|
|
x-required-role: public
|
|
/auth:
|
|
get:
|
|
tags:
|
|
- Auth
|
|
summary: Authenticate request
|
|
description: |-
|
|
**Access:** Public — no authentication required.
|
|
|
|
Authenticates the current request based on proxy headers or JWT token. This endpoint verifies authentication credentials and manages JWT token refresh. On success, no JSON body is returned; authentication state is communicated via response headers and cookies.
|
|
operationId: auth_auth_get
|
|
responses:
|
|
'202':
|
|
description: Authentication Accepted (no response body)
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
headers:
|
|
remote-user:
|
|
description: Authenticated username or "viewer" in proxy-only mode
|
|
schema:
|
|
type: string
|
|
remote-role:
|
|
description: Resolved role (e.g., admin, viewer, or custom)
|
|
schema:
|
|
type: string
|
|
Set-Cookie:
|
|
description: May include refreshed JWT cookie when applicable
|
|
schema:
|
|
type: string
|
|
'401':
|
|
description: Authentication Failed
|
|
security: []
|
|
x-required-role: public
|
|
/profile:
|
|
get:
|
|
tags:
|
|
- Auth
|
|
summary: Get user profile
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Returns the current authenticated user's profile including username, role, and allowed cameras. This endpoint requires authentication and returns information about the user's permissions.
|
|
operationId: profile_profile_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/logout:
|
|
get:
|
|
tags:
|
|
- Auth
|
|
summary: Logout user
|
|
description: |-
|
|
**Access:** Public — no authentication required.
|
|
|
|
Logs out the current user by clearing the session cookie. After logout, subsequent requests will require re-authentication.
|
|
operationId: logout_logout_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security: []
|
|
x-required-role: public
|
|
/login:
|
|
post:
|
|
tags:
|
|
- Auth
|
|
summary: Login with credentials
|
|
description: |-
|
|
**Access:** Public — no authentication required.
|
|
|
|
Authenticates a user with username and password. Returns a JWT token as a secure HTTP-only cookie that can be used for subsequent API requests. The JWT token can also be retrieved from the response and used as a Bearer token in the Authorization header.
|
|
|
|
Example using Bearer token:
|
|
```
|
|
curl -H "Authorization: Bearer <token_value>" https://frigate_ip:8971/api/profile
|
|
```
|
|
operationId: login_login_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppPostLoginBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security: []
|
|
x-required-role: public
|
|
/users:
|
|
get:
|
|
tags:
|
|
- Auth
|
|
summary: Get all users
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Returns a list of all users with their usernames and roles. Requires admin role. Each user object contains the username and assigned role.
|
|
operationId: get_users_users_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
post:
|
|
tags:
|
|
- Auth
|
|
summary: Create new user
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Creates a new user with the specified username, password, and role. Requires admin role. Password must be at least 12 characters long.
|
|
operationId: create_user_users_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppPostUsersBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/users/{username}:
|
|
delete:
|
|
tags:
|
|
- Auth
|
|
summary: Delete user
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes a user by username. The built-in admin user cannot be deleted. Requires admin role. Returns success message or error if user not found.
|
|
operationId: delete_user_users__username__delete
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Username
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/users/{username}/password:
|
|
put:
|
|
tags:
|
|
- Auth
|
|
summary: Update user password
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Updates a user's password. Users can only change their own password unless they have admin role. Requires the current password to verify identity for non-admin users. Password must be at least 12 characters long. If user changes their own password, a new JWT cookie is automatically issued.
|
|
operationId: update_password_users__username__password_put
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Username
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppPutPasswordBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/users/{username}/role:
|
|
put:
|
|
tags:
|
|
- Auth
|
|
summary: Update user role
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Updates a user's role. The built-in admin user's role cannot be modified. Requires admin role. Valid roles are defined in the configuration.
|
|
operationId: update_role_users__username__role_put
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Username
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppPutRoleBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/go2rtc/streams:
|
|
get:
|
|
tags:
|
|
- Camera
|
|
summary: Go2Rtc Streams
|
|
operationId: go2rtc_streams_go2rtc_streams_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/go2rtc/streams/{stream_name}:
|
|
get:
|
|
tags:
|
|
- Camera
|
|
summary: Go2Rtc Camera Stream
|
|
operationId: go2rtc_camera_stream_go2rtc_streams__stream_name__get
|
|
parameters:
|
|
- name: stream_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Stream Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
put:
|
|
tags:
|
|
- Camera
|
|
summary: Go2Rtc Add Stream
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Add or update a go2rtc stream configuration.
|
|
operationId: go2rtc_add_stream_go2rtc_streams__stream_name__put
|
|
parameters:
|
|
- name: stream_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Stream Name
|
|
- name: src
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Src
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
delete:
|
|
tags:
|
|
- Camera
|
|
summary: Go2Rtc Delete Stream
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Delete a go2rtc stream.
|
|
operationId: go2rtc_delete_stream_go2rtc_streams__stream_name__delete
|
|
parameters:
|
|
- name: stream_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Stream Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/ffprobe:
|
|
get:
|
|
tags:
|
|
- Camera
|
|
summary: Ffprobe
|
|
operationId: ffprobe_ffprobe_get
|
|
parameters:
|
|
- name: paths
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Paths
|
|
- name: detailed
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Detailed
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/keyframe_analysis:
|
|
get:
|
|
tags:
|
|
- Camera
|
|
summary: Keyframe Analysis
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Probe a camera's record stream and classify its keyframe spacing.
|
|
|
|
Detects smart/+ codecs and long/variable GOPs that degrade recording.
|
|
operationId: keyframe_analysis_keyframe_analysis_get
|
|
parameters:
|
|
- name: camera
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Camera
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/ffprobe/snapshot:
|
|
get:
|
|
tags:
|
|
- Camera
|
|
summary: Ffprobe Snapshot
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Get a snapshot from a stream URL using ffmpeg.
|
|
operationId: ffprobe_snapshot_ffprobe_snapshot_get
|
|
parameters:
|
|
- name: url
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Url
|
|
- name: timeout
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
title: Timeout
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/reolink/detect:
|
|
get:
|
|
tags:
|
|
- Camera
|
|
summary: Reolink Detect
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Detect Reolink camera capabilities and recommend optimal protocol.
|
|
|
|
Queries the Reolink camera API to determine the camera's resolution
|
|
and recommends either http-flv (for 5MP and below) or rtsp (for higher resolutions).
|
|
operationId: reolink_detect_reolink_detect_get
|
|
parameters:
|
|
- name: host
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Host
|
|
- name: username
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Username
|
|
- name: password
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Password
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/onvif/probe:
|
|
get:
|
|
tags:
|
|
- Camera
|
|
summary: Probe ONVIF device
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Probe an ONVIF device to determine capabilities and optionally test available stream URIs. Query params: host (required), port (default 80), username, password, test (boolean), auth_type (basic or digest, default basic).
|
|
operationId: onvif_probe_onvif_probe_get
|
|
parameters:
|
|
- name: host
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Host
|
|
- name: port
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 80
|
|
title: Port
|
|
- name: username
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Username
|
|
- name: password
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Password
|
|
- name: test
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Test
|
|
- name: auth_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: basic
|
|
title: Auth Type
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/cameras/{camera_name}:
|
|
delete:
|
|
tags:
|
|
- Camera
|
|
summary: Delete Camera
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Delete a camera and all its associated data.
|
|
|
|
Removes the camera from config, stops processes, and cleans up
|
|
all database entries and media files.
|
|
|
|
Args:
|
|
camera_name: Name of the camera to delete
|
|
delete_exports: Whether to also delete exports for this camera
|
|
operationId: delete_camera_cameras__camera_name__delete
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: delete_exports
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Delete Exports
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/camera/{camera_name}/set/{feature}/{sub_command}:
|
|
put:
|
|
tags:
|
|
- Camera
|
|
summary: Camera Set
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Set a camera feature state. Use camera_name='*' to target all cameras.
|
|
|
|
The value to set is sent in the request body as `{"value": "<value>"}`.
|
|
|
|
| Feature | Accepted values |
|
|
| --- | --- |
|
|
| `enabled` | `ON`, `OFF` |
|
|
| `detect` | `ON`, `OFF` |
|
|
| `motion` | `ON`, `OFF` |
|
|
| `recordings` | `ON`, `OFF` |
|
|
| `snapshots` | `ON`, `OFF` |
|
|
| `audio` | `ON`, `OFF` |
|
|
| `audio_transcription` | `ON`, `OFF` |
|
|
| `notifications` | `ON`, `OFF` |
|
|
| `review_alerts` | `ON`, `OFF` |
|
|
| `review_detections` | `ON`, `OFF` |
|
|
| `object_descriptions` | `ON`, `OFF` |
|
|
| `review_descriptions` | `ON`, `OFF` |
|
|
| `improve_contrast` | `ON`, `OFF` |
|
|
| `ptz_autotracker` | `ON`, `OFF` |
|
|
| `birdseye` | `ON`, `OFF` |
|
|
| `birdseye_mode` | `CONTINUOUS`, `MOTION`, `OBJECTS` |
|
|
| `motion_contour_area` | integer |
|
|
| `motion_threshold` | integer |
|
|
| `motion_mask` | `ON`, `OFF` |
|
|
| `object_mask` | `ON`, `OFF` |
|
|
| `zone` | `ON`, `OFF` |
|
|
| `profile` | a profile name, or `none` to deactivate |
|
|
|
|
`motion_mask`, `object_mask`, and `zone` require the `sub_command` path
|
|
parameter to be set to the name of the mask or zone. All other features
|
|
reject a sub-command.
|
|
|
|
`profile` applies globally rather than per camera, so it requires
|
|
`camera_name` to be `*`.
|
|
|
|
These features map to the equivalent MQTT topics, which document the
|
|
behavior of each value in more detail.
|
|
operationId:
|
|
camera_set_camera__camera_name__set__feature___sub_command__put
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: feature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Feature
|
|
- name: sub_command
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Sub Command
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CameraSetBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/camera/{camera_name}/set/{feature}:
|
|
put:
|
|
tags:
|
|
- Camera
|
|
summary: Camera Set
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Set a camera feature state. Use camera_name='*' to target all cameras.
|
|
|
|
The value to set is sent in the request body as `{"value": "<value>"}`.
|
|
|
|
| Feature | Accepted values |
|
|
| --- | --- |
|
|
| `enabled` | `ON`, `OFF` |
|
|
| `detect` | `ON`, `OFF` |
|
|
| `motion` | `ON`, `OFF` |
|
|
| `recordings` | `ON`, `OFF` |
|
|
| `snapshots` | `ON`, `OFF` |
|
|
| `audio` | `ON`, `OFF` |
|
|
| `audio_transcription` | `ON`, `OFF` |
|
|
| `notifications` | `ON`, `OFF` |
|
|
| `review_alerts` | `ON`, `OFF` |
|
|
| `review_detections` | `ON`, `OFF` |
|
|
| `object_descriptions` | `ON`, `OFF` |
|
|
| `review_descriptions` | `ON`, `OFF` |
|
|
| `improve_contrast` | `ON`, `OFF` |
|
|
| `ptz_autotracker` | `ON`, `OFF` |
|
|
| `birdseye` | `ON`, `OFF` |
|
|
| `birdseye_mode` | `CONTINUOUS`, `MOTION`, `OBJECTS` |
|
|
| `motion_contour_area` | integer |
|
|
| `motion_threshold` | integer |
|
|
| `motion_mask` | `ON`, `OFF` |
|
|
| `object_mask` | `ON`, `OFF` |
|
|
| `zone` | `ON`, `OFF` |
|
|
| `profile` | a profile name, or `none` to deactivate |
|
|
|
|
`motion_mask`, `object_mask`, and `zone` require the `sub_command` path
|
|
parameter to be set to the name of the mask or zone. All other features
|
|
reject a sub-command.
|
|
|
|
`profile` applies globally rather than per camera, so it requires
|
|
`camera_name` to be `*`.
|
|
|
|
These features map to the equivalent MQTT topics, which document the
|
|
behavior of each value in more detail.
|
|
operationId: camera_set_camera__camera_name__set__feature__put
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: feature
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Feature
|
|
- name: sub_command
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Sub Command
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/CameraSetBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/chat/tools:
|
|
get:
|
|
tags:
|
|
- Chat
|
|
summary: Get available tools
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Returns OpenAI-compatible tool definitions for function calling.
|
|
operationId: get_tools_chat_tools_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/chat/execute:
|
|
post:
|
|
tags:
|
|
- Chat
|
|
summary: Execute a tool
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Execute a tool function call from an LLM.
|
|
operationId: execute_tool_chat_execute_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ToolExecuteRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/chat/completion:
|
|
post:
|
|
tags:
|
|
- Chat
|
|
summary: Chat completion with tool calling
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Send a chat message to the configured GenAI provider with tool calling support. The LLM can call Frigate tools to answer questions about your cameras and events.
|
|
operationId: chat_completion_chat_completion_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ChatCompletionRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/vlm/monitor:
|
|
post:
|
|
tags:
|
|
- Chat
|
|
summary: Start a VLM watch job
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Start monitoring a camera with the vision provider. The VLM analyzes live frames until the specified condition is met, then sends a notification. Only one watch job can run at a time.
|
|
operationId: start_vlm_monitor_vlm_monitor_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VLMMonitorRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
get:
|
|
tags:
|
|
- Chat
|
|
summary: Get current VLM watch job
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Returns the current (or most recently completed) VLM watch job.
|
|
operationId: get_vlm_monitor_vlm_monitor_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
delete:
|
|
tags:
|
|
- Chat
|
|
summary: Cancel the current VLM watch job
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Cancels the running watch job if one exists.
|
|
operationId: cancel_vlm_monitor_vlm_monitor_delete
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces:
|
|
get:
|
|
tags:
|
|
- Classification
|
|
summary: Get all registered faces
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Returns a dictionary mapping face names to lists of image filenames.
|
|
Each key represents a registered face name, and the value is a list of image
|
|
files associated with that face. Supported image formats include .webp, .png,
|
|
.jpg, and .jpeg.
|
|
operationId: get_faces_faces_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FacesResponse'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/reprocess:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Reprocess a face training image
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Reprocesses a face training image to update the prediction.
|
|
Requires face recognition to be enabled in the configuration. The training file
|
|
must exist in the faces/train directory. Returns a success response or an error
|
|
message if face recognition is not enabled or the training file is invalid.
|
|
operationId: reclassify_face_faces_reprocess_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/train/{name}/classify:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Classify and save a face training image
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Adds a training image to a specific face name for face recognition.
|
|
Accepts either a training file from the train directory or an event_id to extract
|
|
the face from. The image is saved to the face's directory and the face classifier
|
|
is cleared to incorporate the new training data. Returns a success message with
|
|
the new filename or an error if face recognition is not enabled, the file/event
|
|
is invalid, or the face cannot be extracted.
|
|
operationId: train_face_faces_train__name__classify_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/{name}/create:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Create a new face name
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Creates a new folder for a face name in the faces directory.
|
|
This is used to organize face training images. The face name is sanitized and
|
|
spaces are replaced with underscores. Returns a success message or an error if
|
|
face recognition is not enabled.
|
|
operationId: create_face_faces__name__create_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/{name}/register:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Register a face image
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Registers a face image for a specific face name by uploading an image file.
|
|
The uploaded image is processed and added to the face recognition system. Returns a
|
|
success response with details about the registration, or an error if face recognition
|
|
is not enabled or the image cannot be processed.
|
|
operationId: register_face_faces__name__register_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/Body_register_face_faces__name__register_post'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/recognize:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Recognize a face from an uploaded image
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Recognizes a face from an uploaded image file by comparing it against
|
|
registered faces in the system. Returns the recognized face name and confidence score,
|
|
or an error if face recognition is not enabled or the image cannot be processed.
|
|
operationId: recognize_face_faces_recognize_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/Body_recognize_face_faces_recognize_post'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/FaceRecognitionResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/{name}/reclassify:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Reclassify a face image to a different name
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Moves a single face image from one person's folder to another.
|
|
The image is moved and renamed, and the face classifier is cleared to
|
|
incorporate the change. Returns a success message or an error if the
|
|
image or target name is invalid.
|
|
operationId: reclassify_face_image_faces__name__reclassify_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/{name}/delete:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Delete face images
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes specific face images for a given face name. The image IDs must belong
|
|
to the specified face folder. To delete an entire face folder, all image IDs in that
|
|
folder must be sent. Returns a success message or an error if face recognition is not enabled.
|
|
operationId: deregister_faces_faces__name__delete_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DeleteFaceImagesBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/faces/{old_name}/rename:
|
|
put:
|
|
tags:
|
|
- Classification
|
|
summary: Rename a face name
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Renames a face name in the system. The old name must exist and the new
|
|
name must be valid. Returns a success message or an error if face recognition is not enabled.
|
|
operationId: rename_face_faces__old_name__rename_put
|
|
parameters:
|
|
- name: old_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Old Name
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/RenameFaceBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/lpr/reprocess:
|
|
put:
|
|
tags:
|
|
- Classification
|
|
summary: Reprocess a license plate
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Reprocesses a license plate image to update the plate.
|
|
Requires license plate recognition to be enabled in the configuration. The event_id
|
|
must exist in the database. Returns a success message or an error if license plate
|
|
recognition is not enabled or the event_id is invalid.
|
|
operationId: reprocess_license_plate_lpr_reprocess_put
|
|
parameters:
|
|
- name: event_id
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/reindex:
|
|
put:
|
|
tags:
|
|
- Classification
|
|
summary: Reindex embeddings
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Reindexes the embeddings for all tracked objects.
|
|
Requires semantic search to be enabled in the configuration. Returns a success message or an error if semantic search is not enabled.
|
|
operationId: reindex_embeddings_reindex_put
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/audio/transcribe:
|
|
put:
|
|
tags:
|
|
- Classification
|
|
summary: Transcribe audio
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Transcribes audio from a specific event.
|
|
Requires audio transcription to be enabled in the configuration. The event_id
|
|
must exist in the database. Returns a success message or an error if audio transcription is not enabled or the event_id is invalid.
|
|
operationId: transcribe_audio_audio_transcribe_put
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AudioTranscriptionBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/dataset:
|
|
get:
|
|
tags:
|
|
- Classification
|
|
summary: Get classification dataset
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Gets the dataset for a specific classification model.
|
|
The name must exist in the classification models. Returns a success message or an error if the name is invalid.
|
|
operationId: get_classification_dataset_classification__name__dataset_get
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/attributes:
|
|
get:
|
|
tags:
|
|
- Classification
|
|
summary: Get custom classification attributes
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Returns custom classification attributes for a given object type.
|
|
Only includes models with classification_type set to 'attribute'.
|
|
By default returns a flat sorted list of all attribute labels.
|
|
If group_by_model is true, returns attributes grouped by model name.
|
|
operationId: get_custom_attributes_classification_attributes_get
|
|
parameters:
|
|
- name: object_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Object Type
|
|
- name: group_by_model
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Group By Model
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/train:
|
|
get:
|
|
tags:
|
|
- Classification
|
|
summary: Get classification train images
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Gets the train images for a specific classification model.
|
|
The name must exist in the classification models. Returns a success message or an error if the name is invalid.
|
|
operationId: get_classification_images_classification__name__train_get
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Train a classification model
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Trains a specific classification model.
|
|
The name must exist in the classification models. Returns a success message or an error if the name is invalid.
|
|
operationId: train_configured_model_classification__name__train_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/dataset/{category}/delete:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Delete classification dataset images
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes specific dataset images for a given classification model and category.
|
|
The image IDs must belong to the specified category. Returns a success message or an error if the name or category is invalid.
|
|
operationId:
|
|
delete_classification_dataset_images_classification__name__dataset__category__delete_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
- name: category
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Category
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/dataset/{category}/reclassify:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Reclassify a dataset image to a different category
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Moves a single dataset image from one category to another.
|
|
The image is re-saved as PNG in the target category and removed from the source.
|
|
operationId:
|
|
reclassify_classification_image_classification__name__dataset__category__reclassify_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
- name: category
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Category
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/dataset/{old_category}/rename:
|
|
put:
|
|
tags:
|
|
- Classification
|
|
summary: Rename a classification category
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Renames a classification category for a given classification model.
|
|
The old category must exist and the new name must be valid. Returns a success message or an error if the name is invalid.
|
|
operationId:
|
|
rename_classification_category_classification__name__dataset__old_category__rename_put
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
- name: old_category
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Old Category
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/dataset/categorize:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Categorize a classification image
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Categorizes a specific classification image for a given classification model and category.
|
|
The image must exist in the specified category. Returns a success message or an error if the name or category is invalid.
|
|
operationId:
|
|
categorize_classification_image_classification__name__dataset_categorize_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/dataset/{category}/create:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Create an empty classification category folder
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Creates an empty folder for a classification category.
|
|
This is used to create folders for categories that don't have images yet.
|
|
Returns a success message or an error if the name is invalid.
|
|
operationId:
|
|
create_classification_category_classification__name__dataset__category__create_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
- name: category
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Category
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}/train/delete:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Delete classification train images
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes specific train images for a given classification model.
|
|
The image IDs must belong to the specified train folder. Returns a success message or an error if the name is invalid.
|
|
operationId:
|
|
delete_classification_train_images_classification__name__train_delete_post
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/generate_examples/state:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Generate state classification examples
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Generate examples for state classification.
|
|
operationId:
|
|
generate_state_examples_classification_generate_examples_state_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenerateStateExamplesBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/generate_examples/object:
|
|
post:
|
|
tags:
|
|
- Classification
|
|
summary: Generate object classification examples
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Generate examples for object classification.
|
|
operationId:
|
|
generate_object_examples_classification_generate_examples_object_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenerateObjectExamplesBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/classification/{name}:
|
|
delete:
|
|
tags:
|
|
- Classification
|
|
summary: Delete a classification model
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes a specific classification model and all its associated data.
|
|
Works even if the model is not in the config (e.g., partially created during wizard).
|
|
Returns a success message.
|
|
operationId: delete_classification_model_classification__name__delete
|
|
parameters:
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/review:
|
|
get:
|
|
tags:
|
|
- Review
|
|
summary: Review
|
|
operationId: review_review_get
|
|
parameters:
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Cameras
|
|
- name: labels
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Labels
|
|
- name: zones
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Zones
|
|
- name: reviewed
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
title: Reviewed
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
title: Limit
|
|
- name: severity
|
|
in: query
|
|
required: false
|
|
schema:
|
|
$ref: '#/components/schemas/SeverityEnum'
|
|
- name: before
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: Before
|
|
- name: after
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: After
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ReviewSegmentResponse'
|
|
title: Response Review Review Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/review_ids:
|
|
get:
|
|
tags:
|
|
- Review
|
|
summary: Review Ids
|
|
operationId: review_ids_review_ids_get
|
|
parameters:
|
|
- name: ids
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Ids
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ReviewSegmentResponse'
|
|
title: Response Review Ids Review Ids Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/review/summary:
|
|
get:
|
|
tags:
|
|
- Review
|
|
summary: Review Summary
|
|
operationId: review_summary_review_summary_get
|
|
parameters:
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Cameras
|
|
- name: labels
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Labels
|
|
- name: zones
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Zones
|
|
- name: timezone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: utc
|
|
title: Timezone
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReviewSummaryResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/reviews/viewed:
|
|
post:
|
|
tags:
|
|
- Review
|
|
summary: Set Multiple Reviewed
|
|
operationId: set_multiple_reviewed_reviews_viewed_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReviewModifyMultipleBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/reviews/delete:
|
|
post:
|
|
tags:
|
|
- Review
|
|
summary: Delete Reviews
|
|
operationId: delete_reviews_reviews_delete_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReviewModifyMultipleBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/review/activity/motion:
|
|
get:
|
|
tags:
|
|
- Review
|
|
summary: Motion Activity
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Get motion and audio activity.
|
|
operationId: motion_activity_review_activity_motion_get
|
|
parameters:
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Cameras
|
|
- name: before
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: Before
|
|
- name: after
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: After
|
|
- name: scale
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 30
|
|
title: Scale
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ReviewActivityMotionResponse'
|
|
title: Response Motion Activity Review Activity Motion Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/review/event/{event_id}:
|
|
get:
|
|
tags:
|
|
- Review
|
|
summary: Get Review From Event
|
|
operationId: get_review_from_event_review_event__event_id__get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReviewSegmentResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/review/{review_id}:
|
|
get:
|
|
tags:
|
|
- Review
|
|
summary: Get Review
|
|
operationId: get_review_review__review_id__get
|
|
parameters:
|
|
- name: review_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Review Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ReviewSegmentResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/review/{review_id}/viewed:
|
|
delete:
|
|
tags:
|
|
- Review
|
|
summary: Set Not Reviewed
|
|
operationId: set_not_reviewed_review__review_id__viewed_delete
|
|
parameters:
|
|
- name: review_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Review Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/review/summarize/start/{start_ts}/end/{end_ts}:
|
|
post:
|
|
tags:
|
|
- Review
|
|
summary: Generate Review Summary
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Use GenAI to summarize review items over a period of time.
|
|
operationId:
|
|
generate_review_summary_review_summarize_start__start_ts__end__end_ts__post
|
|
parameters:
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Is Healthy
|
|
operationId: is_healthy__get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
security: []
|
|
x-required-role: public
|
|
description: '**Access:** Public — no authentication required.'
|
|
/config/schema.json:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Config Schema
|
|
operationId: config_schema_config_schema_json_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security: []
|
|
x-required-role: public
|
|
description: '**Access:** Public — no authentication required.'
|
|
/version:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Version
|
|
operationId: version_version_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
type: string
|
|
security: []
|
|
x-required-role: public
|
|
description: '**Access:** Public — no authentication required.'
|
|
/stats:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Stats
|
|
operationId: stats_stats_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/stats/history:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Stats History
|
|
operationId: stats_history_stats_history_get
|
|
parameters:
|
|
- name: keys
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
title: Keys
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/metrics:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Metrics
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Expose Prometheus metrics endpoint and update metrics with latest stats
|
|
operationId: metrics_metrics_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/genai/models:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: List available GenAI models
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Returns available models for each configured GenAI provider.
|
|
operationId: genai_models_genai_models_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/genai/probe:
|
|
post:
|
|
tags:
|
|
- App
|
|
summary: Probe a GenAI provider without saving config
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Builds a transient client from the request body and returns its available models. Used to validate provider credentials in the UI before saving the configuration.
|
|
operationId: genai_probe_genai_probe_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenAIProbeBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/config:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Config
|
|
operationId: config_config_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/profiles:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get Profiles
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
List all available profiles and the currently active profile.
|
|
operationId: get_profiles_profiles_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/profile/active:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get Active Profile
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Get the currently active profile.
|
|
operationId: get_active_profile_profile_active_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/ffmpeg/presets:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Ffmpeg Presets
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Return available ffmpeg preset keys for config UI usage.
|
|
operationId: ffmpeg_presets_ffmpeg_presets_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/config/raw_paths:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Config Raw Paths
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Admin-only endpoint that returns camera paths and go2rtc streams without credential masking.
|
|
operationId: config_raw_paths_config_raw_paths_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/config/raw:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Config Raw
|
|
operationId: config_raw_config_raw_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/config/save:
|
|
post:
|
|
tags:
|
|
- App
|
|
summary: Config Save
|
|
operationId: config_save_config_save_post
|
|
parameters:
|
|
- name: save_option
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Save Option
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
text/plain:
|
|
schema:
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/config/set:
|
|
put:
|
|
tags:
|
|
- App
|
|
summary: Config Set
|
|
operationId: config_set_config_set_put
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AppConfigSetBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/vainfo:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Vainfo
|
|
operationId: vainfo_vainfo_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/nvinfo:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Nvinfo
|
|
operationId: nvinfo_nvinfo_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/logs/{service}:
|
|
get:
|
|
tags:
|
|
- App
|
|
- Logs
|
|
summary: Logs
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Get logs for the requested service (frigate/nginx/go2rtc)
|
|
operationId: logs_logs__service__get
|
|
parameters:
|
|
- name: service
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- frigate
|
|
- nginx
|
|
- go2rtc
|
|
title: Service
|
|
- name: download
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Download
|
|
- name: stream
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
default: false
|
|
title: Stream
|
|
- name: start
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
default: 0
|
|
title: Start
|
|
- name: end
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: End
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/restart:
|
|
post:
|
|
tags:
|
|
- App
|
|
summary: Restart
|
|
operationId: restart_restart_post
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/media/sync:
|
|
post:
|
|
tags:
|
|
- App
|
|
summary: Start media sync job
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Start an asynchronous media sync job to find and (optionally) remove orphaned media files.
|
|
Returns 202 with job details when queued, or 409 if a job is already running.
|
|
operationId: sync_media_media_sync_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MediaSyncBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/media/sync/current:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get current media sync job
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Retrieve the current running media sync job, if any. Returns the job details
|
|
or null when no job is active.
|
|
operationId: get_media_sync_current_media_sync_current_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/media/sync/status/{job_id}:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get media sync job status
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Get status and results for the specified media sync job id. Returns 200 with
|
|
job details including results, or 404 if the job is not found.
|
|
operationId: get_media_sync_status_media_sync_status__job_id__get
|
|
parameters:
|
|
- name: job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Job Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/labels:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get Labels
|
|
operationId: get_labels_labels_get
|
|
parameters:
|
|
- name: camera
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: ''
|
|
title: Camera
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/sub_labels:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get Sub Labels
|
|
operationId: get_sub_labels_sub_labels_get
|
|
parameters:
|
|
- name: split_joined
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Split Joined
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/audio_labels:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get Audio Labels
|
|
operationId: get_audio_labels_audio_labels_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/plus/models:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Plusmodels
|
|
operationId: plusModels_plus_models_get
|
|
parameters:
|
|
- name: filterByCurrentModelDetector
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Filterbycurrentmodeldetector
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/recognized_license_plates:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get Recognized License Plates
|
|
operationId: get_recognized_license_plates_recognized_license_plates_get
|
|
parameters:
|
|
- name: split_joined
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Split Joined
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/timeline:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Timeline
|
|
operationId: timeline_timeline_get
|
|
parameters:
|
|
- name: camera
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Camera
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 100
|
|
title: Limit
|
|
- name: source_id
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Source Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/timeline/hourly:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Hourly Timeline
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Get hourly summary for timeline.
|
|
operationId: hourly_timeline_timeline_hourly_get
|
|
parameters:
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Cameras
|
|
- name: labels
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Labels
|
|
- name: after
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: After
|
|
- name: before
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Before
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
default: 200
|
|
title: Limit
|
|
- name: timezone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: utc
|
|
title: Timezone
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/preview/{camera_name}/start/{start_ts}/end/{end_ts}:
|
|
get:
|
|
tags:
|
|
- Preview
|
|
summary: Get preview clips for time range
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets all preview clips for a specified camera and time range.
|
|
Returns a list of preview video clips that overlap with the requested time period,
|
|
ordered by start time. Use camera_name='all' to get previews from all cameras.
|
|
Returns an error if no previews are found.
|
|
operationId:
|
|
preview_ts_preview__camera_name__start__start_ts__end__end_ts__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PreviewModel'
|
|
title: Response Preview Ts Preview Camera Name Start Start Ts
|
|
End End Ts Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/preview/{year_month}/{day}/{hour}/{camera_name}/{tz_name}:
|
|
get:
|
|
tags:
|
|
- Preview
|
|
summary: Get preview clips for specific hour
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets all preview clips for a specific hour in a given timezone.
|
|
Converts the provided date/time from the specified timezone to UTC and retrieves
|
|
all preview clips for that hour. Use camera_name='all' to get previews from all cameras.
|
|
The tz_name should be a timezone like 'America/New_York' (use commas instead of slashes).
|
|
operationId:
|
|
preview_hour_preview__year_month___day___hour___camera_name___tz_name__get
|
|
parameters:
|
|
- name: year_month
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Year Month
|
|
- name: day
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
title: Day
|
|
- name: hour
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
title: Hour
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: tz_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Tz Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PreviewModel'
|
|
title: Response Preview Hour Preview Year Month Day Hour
|
|
Camera Name Tz Name Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/preview/{camera_name}/start/{start_ts}/end/{end_ts}/frames:
|
|
get:
|
|
tags:
|
|
- Preview
|
|
summary: Get cached preview frame filenames
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Gets a list of cached preview frame filenames for a specific camera and time range.
|
|
Returns an array of filenames for preview frames that fall within the specified time period,
|
|
sorted in chronological order. These are individual frame images cached for quick preview display.
|
|
operationId:
|
|
get_preview_frames_from_cache_preview__camera_name__start__start_ts__end__end_ts__frames_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
title: Response Get Preview Frames From Cache Preview Camera
|
|
Name Start Start Ts End End Ts Frames Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/notifications/pubkey:
|
|
get:
|
|
tags:
|
|
- Notifications
|
|
summary: Get VAPID public key
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets the VAPID public key for the notifications.
|
|
Returns the public key or an error if notifications are not enabled.
|
|
operationId: get_vapid_pub_key_notifications_pubkey_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/notifications/register:
|
|
post:
|
|
tags:
|
|
- Notifications
|
|
summary: Register notifications
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Registers a notifications subscription.
|
|
Returns a success message or an error if the subscription is not provided.
|
|
operationId: register_notifications_notifications_register_post
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Body
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/exports:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Get exports
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets all exports from the database for cameras the user has access to.
|
|
Returns a list of exports ordered by date (most recent first).
|
|
operationId: get_exports_exports_get
|
|
parameters:
|
|
- name: export_case_id
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Export Case Id
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Cameras
|
|
- name: start_date
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Start Date
|
|
- name: end_date
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: End Date
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ExportModel'
|
|
title: Response Get Exports Exports Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/cases:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Get export cases
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets all export cases from the database.
|
|
operationId: get_export_cases_cases_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ExportCaseModel'
|
|
title: Response Get Export Cases Cases Get
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Create export case
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Creates a new export case.
|
|
operationId: create_export_case_cases_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportCaseCreateBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportCaseModel'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/cases/{case_id}:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Get a single export case
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets a specific export case by ID.
|
|
operationId: get_export_case_cases__case_id__get
|
|
parameters:
|
|
- name: case_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Case Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportCaseModel'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
patch:
|
|
tags:
|
|
- Export
|
|
summary: Update export case
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Updates an existing export case.
|
|
operationId: update_export_case_cases__case_id__patch
|
|
parameters:
|
|
- name: case_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Case Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportCaseUpdateBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
delete:
|
|
tags:
|
|
- Export
|
|
summary: Delete export case
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes an export case.
|
|
Exports that reference this case will have their export_case set to null.
|
|
operationId: delete_export_case_cases__case_id__delete
|
|
parameters:
|
|
- name: case_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Case Id
|
|
- name: delete_exports
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Delete Exports
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/cases/{case_id}/download:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Download export case as zip
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Streams a zip archive containing every completed export's mp4 for the given case.
|
|
operationId: download_export_case_cases__case_id__download_get
|
|
parameters:
|
|
- name: case_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Case Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/jobs/export:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Get active export jobs
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets queued and running export jobs.
|
|
operationId: get_active_export_jobs_jobs_export_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/ExportJobModel'
|
|
title: Response Get Active Export Jobs Jobs Export Get
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/jobs/export/{export_id}:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Get export job status
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Gets queued, running, or completed status for a specific export job.
|
|
operationId: get_export_job_status_jobs_export__export_id__get
|
|
parameters:
|
|
- name: export_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Export Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportJobModel'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/exports/batch:
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Start recording export batch
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Starts recording exports for a batch of items, each with its own camera and time range, and assigns them to a single export case. Attaching to an existing case is temporarily admin-only until case-level ACLs exist.
|
|
operationId: export_recordings_batch_exports_batch_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BatchExportBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/BatchExportResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/export/{camera_name}/start/{start_time}/end/{end_time}:
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Start recording export
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Starts an export of a recording for the specified time range.
|
|
The export can be from recordings or preview footage. Returns the export ID if
|
|
successful, or an error message if the camera is invalid or no recordings/previews
|
|
are found for the time range.
|
|
operationId:
|
|
export_recording_export__camera_name__start__start_time__end__end_time__post
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_time
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Time
|
|
- name: end_time
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Time
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportRecordingsBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StartExportResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/export/{event_id}/rename:
|
|
patch:
|
|
tags:
|
|
- Export
|
|
summary: Rename export
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Renames an export.
|
|
NOTE: This changes the friendly name of the export, not the filename.
|
|
operationId: export_rename_export__event_id__rename_patch
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportRenameBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/export/custom/{camera_name}/start/{start_time}/end/{end_time}:
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Start custom recording export
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Starts an export of a recording for the specified time range using custom FFmpeg arguments.
|
|
The export can be from recordings or preview footage. Returns the export ID if
|
|
successful, or an error message if the camera is invalid or no recordings/previews
|
|
are found for the time range. If ffmpeg_input_args and ffmpeg_output_args are not provided,
|
|
defaults to timelapse export settings.
|
|
operationId:
|
|
export_recording_custom_export_custom__camera_name__start__start_time__end__end_time__post
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_time
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Time
|
|
- name: end_time
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Time
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportRecordingsCustomBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/StartExportResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/exports/{export_id}:
|
|
get:
|
|
tags:
|
|
- Export
|
|
summary: Get a single export
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Gets a specific export by ID. The user must have access to the camera
|
|
associated with the export.
|
|
operationId: get_export_exports__export_id__get
|
|
parameters:
|
|
- name: export_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Export Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportModel'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/exports/delete:
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Bulk delete exports
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes one or more exports by ID. All IDs must exist and none can be in-progress.
|
|
operationId: bulk_delete_exports_exports_delete_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportBulkDeleteBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/exports/reassign:
|
|
post:
|
|
tags:
|
|
- Export
|
|
summary: Bulk reassign exports to a case
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Assigns or unassigns one or more exports to/from a case. All IDs must exist.
|
|
operationId: bulk_reassign_exports_exports_reassign_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ExportBulkReassignBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events:
|
|
get:
|
|
tags:
|
|
- Events
|
|
summary: Get events
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Returns a list of events.
|
|
operationId: events_events_get
|
|
parameters:
|
|
- name: camera
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Camera
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Cameras
|
|
- name: label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Label
|
|
- name: labels
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Labels
|
|
- name: sub_label
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Sub Label
|
|
- name: sub_labels
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Sub Labels
|
|
- name: attributes
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Attributes
|
|
- name: zone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Zone
|
|
- name: zones
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Zones
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
default: 100
|
|
title: Limit
|
|
- name: after
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: After
|
|
- name: before
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Before
|
|
- name: time_range
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: 00:00,24:00
|
|
title: Time Range
|
|
- name: has_clip
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Has Clip
|
|
- name: has_snapshot
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Has Snapshot
|
|
- name: in_progress
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: In Progress
|
|
- name: include_thumbnails
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
default: 1
|
|
title: Include Thumbnails
|
|
- name: favorites
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Favorites
|
|
- name: min_score
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Min Score
|
|
- name: max_score
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Max Score
|
|
- name: min_speed
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Min Speed
|
|
- name: max_speed
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Max Speed
|
|
- name: recognized_license_plate
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Recognized License Plate
|
|
- name: is_submitted
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Is Submitted
|
|
- name: min_length
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Min Length
|
|
- name: max_length
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Max Length
|
|
- name: event_id
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Event Id
|
|
- name: sort
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Sort
|
|
- name: timezone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: utc
|
|
title: Timezone
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EventResponse'
|
|
title: Response Events Events Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/events/explore:
|
|
get:
|
|
tags:
|
|
- Events
|
|
summary: Get summary of objects
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Gets a summary of objects from the database.
|
|
Returns a list of objects with a max of `limit` objects for each label.
|
|
operationId: events_explore_events_explore_get
|
|
parameters:
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 10
|
|
title: Limit
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EventResponse'
|
|
title: Response Events Explore Events Explore Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/event_ids:
|
|
get:
|
|
tags:
|
|
- Events
|
|
summary: Get events by ids
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Gets events by a list of ids.
|
|
Returns a list of events.
|
|
operationId: event_ids_event_ids_get
|
|
parameters:
|
|
- name: ids
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Ids
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/EventResponse'
|
|
title: Response Event Ids Event Ids Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/events/search:
|
|
get:
|
|
tags:
|
|
- Events
|
|
summary: Search events
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Searches for events in the database.
|
|
Returns a list of events.
|
|
operationId: events_search_events_search_get
|
|
parameters:
|
|
- name: query
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Query
|
|
- name: event_id
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Event Id
|
|
- name: search_type
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: thumbnail
|
|
title: Search Type
|
|
- name: include_thumbnails
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
default: 1
|
|
title: Include Thumbnails
|
|
- name: limit
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
default: 50
|
|
title: Limit
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Cameras
|
|
- name: labels
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Labels
|
|
- name: sub_labels
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Sub Labels
|
|
- name: attributes
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Attributes
|
|
- name: zones
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Zones
|
|
- name: after
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: After
|
|
- name: before
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Before
|
|
- name: time_range
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: 00:00,24:00
|
|
title: Time Range
|
|
- name: has_clip
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Has Clip
|
|
- name: has_snapshot
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Has Snapshot
|
|
- name: is_submitted
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Is Submitted
|
|
- name: timezone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: utc
|
|
title: Timezone
|
|
- name: min_score
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Min Score
|
|
- name: max_score
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Max Score
|
|
- name: min_speed
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Min Speed
|
|
- name: max_speed
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Max Speed
|
|
- name: recognized_license_plate
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Recognized License Plate
|
|
- name: sort
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Sort
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/events/summary:
|
|
get:
|
|
tags:
|
|
- Events
|
|
summary: Events Summary
|
|
operationId: events_summary_events_summary_get
|
|
parameters:
|
|
- name: timezone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: utc
|
|
title: Timezone
|
|
- name: has_clip
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Has Clip
|
|
- name: has_snapshot
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Has Snapshot
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
description: '**Access:** Any authenticated user.'
|
|
/events/{event_id}:
|
|
get:
|
|
tags:
|
|
- Events
|
|
summary: Get event by id
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Gets an event by its id.
|
|
operationId: event_events__event_id__get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
delete:
|
|
tags:
|
|
- Events
|
|
summary: Delete event
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes an event from the database.
|
|
Returns a success message or an error if the event is not found.
|
|
operationId: delete_event_events__event_id__delete
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/retain:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Set event retain indefinitely.
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Sets an event to retain indefinitely.
|
|
Returns a success message or an error if the event is not found.
|
|
NOTE: This is a legacy endpoint and is not supported in the frontend.
|
|
operationId: set_retain_events__event_id__retain_post
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
delete:
|
|
tags:
|
|
- Events
|
|
summary: Stop event from being retained indefinitely
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Stops an event from being retained indefinitely.
|
|
Returns a success message or an error if the event is not found.
|
|
NOTE: This is a legacy endpoint and is not supported in the frontend.
|
|
operationId: delete_retain_events__event_id__retain_delete
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/plus:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Send event to Frigate+
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Sends an event to Frigate+.
|
|
Returns a success message or an error if the event is not found.
|
|
operationId: send_to_plus_events__event_id__plus_post
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/SubmitPlusBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventUploadPlusResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/false_positive:
|
|
put:
|
|
tags:
|
|
- Events
|
|
summary: Submit false positive to Frigate+
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Submit an event as a false positive to Frigate+.
|
|
This endpoint is the same as the standard Frigate+ submission endpoint,
|
|
but is specifically for marking an event as a false positive.
|
|
operationId: false_positive_events__event_id__false_positive_put
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventUploadPlusResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/sub_label:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Set event sub label
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Sets an event's sub label.
|
|
Returns a success message or an error if the event is not found.
|
|
operationId: set_sub_label_events__event_id__sub_label_post
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsSubLabelBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/recognized_license_plate:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Set event license plate
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Sets an event's license plate.
|
|
Returns a success message or an error if the event is not found.
|
|
operationId: set_plate_events__event_id__recognized_license_plate_post
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsLPRBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/attributes:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Set custom classification attributes
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Sets an event's custom classification attributes for all attribute-type models that apply to the event's object type.
|
|
operationId: set_attributes_events__event_id__attributes_post
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsAttributesBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/description:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Set event description
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Sets an event's description.
|
|
Returns a success message or an error if the event is not found.
|
|
operationId: set_description_events__event_id__description_post
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsDescriptionBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/description/regenerate:
|
|
put:
|
|
tags:
|
|
- Events
|
|
summary: Regenerate event description
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Regenerates an event's description.
|
|
Returns a success message or an error if the event is not found.
|
|
operationId:
|
|
regenerate_description_events__event_id__description_regenerate_put
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
- name: source
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/RegenerateDescriptionEnum'
|
|
- type: 'null'
|
|
default: thumbnails
|
|
title: Source
|
|
- name: force
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
default: false
|
|
title: Force
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/description/generate:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Generate description embedding
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Generates an embedding for an event's description.
|
|
Returns a success message or an error if the event is not found.
|
|
operationId: generate_description_embedding_description_generate_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsDescriptionBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/:
|
|
delete:
|
|
tags:
|
|
- Events
|
|
summary: Delete events
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes a list of events from the database.
|
|
Returns a success message or an error if the events are not found.
|
|
operationId: delete_events_events__delete
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsDeleteBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventMultiDeleteResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{camera_name}/{label}/create:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Create manual event
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Creates a manual event in the database.
|
|
Returns a success message or an error if the event is not found.
|
|
NOTES:
|
|
- Creating a manual event does not trigger an update to /events MQTT topic.
|
|
- If a duration is set to null, the event will need to be ended manually by calling /events/{event_id}/end.
|
|
operationId: create_event_events__camera_name___label__create_post
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: label
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Label
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsCreateBody'
|
|
default:
|
|
score: 0.0
|
|
duration: 30
|
|
include_recording: true
|
|
draw: {}
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventCreateResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/end:
|
|
put:
|
|
tags:
|
|
- Events
|
|
summary: End manual event
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Ends a manual event.
|
|
Returns a success message or an error if the event is not found.
|
|
NOTE: This should only be used for manual events.
|
|
operationId: end_event_events__event_id__end_put
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/EventsEndBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/trigger/embedding:
|
|
post:
|
|
tags:
|
|
- Events
|
|
summary: Create trigger embedding
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Creates a trigger embedding for a specific trigger.
|
|
Returns a success message or an error if the trigger is not found.
|
|
operationId: create_trigger_embedding_trigger_embedding_post
|
|
parameters:
|
|
- name: camera_name
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: name
|
|
in: query
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TriggerEmbeddingBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Response Create Trigger Embedding Trigger Embedding Post
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/trigger/embedding/{camera_name}/{name}:
|
|
put:
|
|
tags:
|
|
- Events
|
|
summary: Update trigger embedding
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Updates a trigger embedding for a specific trigger.
|
|
Returns a success message or an error if the trigger is not found.
|
|
operationId:
|
|
update_trigger_embedding_trigger_embedding__camera_name___name__put
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/TriggerEmbeddingBody'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Response Update Trigger Embedding Trigger Embedding
|
|
Camera Name Name Put
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
delete:
|
|
tags:
|
|
- Events
|
|
summary: Delete trigger embedding
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes a trigger embedding for a specific trigger.
|
|
Returns a success message or an error if the trigger is not found.
|
|
operationId:
|
|
delete_trigger_embedding_trigger_embedding__camera_name___name__delete
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
- name: name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Response Delete Trigger Embedding Trigger Embedding
|
|
Camera Name Name Delete
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/triggers/status/{camera_name}:
|
|
get:
|
|
tags:
|
|
- Events
|
|
summary: Get triggers status
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Gets the status of all triggers for a specific camera.
|
|
Returns a success message or an error if the camera is not found.
|
|
operationId: get_triggers_status_triggers_status__camera_name__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
title: Response Get Triggers Status Triggers Status Camera Name
|
|
Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/{camera_name}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Mjpeg Feed
|
|
operationId: mjpeg_feed__camera_name__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: fps
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 3
|
|
title: Fps
|
|
- name: height
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 360
|
|
title: Height
|
|
- name: bbox
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Bbox
|
|
- name: timestamp
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Timestamp
|
|
- name: zones
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Zones
|
|
- name: mask
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Mask
|
|
- name: motion
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Motion
|
|
- name: regions
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Regions
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/ptz/info:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Camera Ptz Info
|
|
operationId: camera_ptz_info__camera_name__ptz_info_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/latest.{extension}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Latest Frame
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns the latest frame from the specified camera in the requested format (jpg, png, webp). Falls back to preview frames if the camera is offline.
|
|
operationId: latest_frame__camera_name__latest__extension__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: extension
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: '#/components/schemas/Extension'
|
|
- name: bbox
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Bbox
|
|
- name: timestamp
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Timestamp
|
|
- name: zones
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Zones
|
|
- name: mask
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Mask
|
|
- name: motion
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Motion
|
|
- name: paths
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Paths
|
|
- name: regions
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Regions
|
|
- name: quality
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
default: 70
|
|
title: Quality
|
|
- name: height
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Height
|
|
- name: store
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Store
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/{camera_name}/recordings/{frame_time}/snapshot.{format}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Get Snapshot From Recording
|
|
operationId:
|
|
get_snapshot_from_recording__camera_name__recordings__frame_time__snapshot__format__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: frame_time
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Frame Time
|
|
- name: format
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- png
|
|
- jpg
|
|
title: Format
|
|
- name: height
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
title: Height
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/plus/{frame_time}:
|
|
post:
|
|
tags:
|
|
- Media
|
|
summary: Submit Recording Snapshot To Plus
|
|
operationId:
|
|
submit_recording_snapshot_to_plus__camera_name__plus__frame_time__post
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: frame_time
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Frame Time
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/start/{start_ts}/end/{end_ts}/clip.mp4:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Recording Clip
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
For iOS devices, use the master.m3u8 HLS link instead of clip.mp4. Safari does not reliably process progressive mp4 files.
|
|
operationId:
|
|
recording_clip__camera_name__start__start_ts__end__end_ts__clip_mp4_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/vod/{camera_name}/start/{start_ts}/end/{end_ts}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Vod Ts
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns an HLS playlist for the specified timestamp-range on the specified camera. Append /master.m3u8 or /index.m3u8 for HLS playback.
|
|
operationId: vod_ts_vod__camera_name__start__start_ts__end__end_ts__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
- name: force_discontinuity
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Force Discontinuity
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/vod/{year_month}/{day}/{hour}/{camera_name}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Vod Hour No Timezone
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns an HLS playlist for the specified date-time on the specified camera. Append /master.m3u8 or /index.m3u8 for HLS playback.
|
|
operationId:
|
|
vod_hour_no_timezone_vod__year_month___day___hour___camera_name__get
|
|
parameters:
|
|
- name: year_month
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Year Month
|
|
- name: day
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
title: Day
|
|
- name: hour
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
title: Hour
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/vod/{year_month}/{day}/{hour}/{camera_name}/{tz_name}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Vod Hour
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns an HLS playlist for the specified date-time (with timezone) on the specified camera. Append /master.m3u8 or /index.m3u8 for HLS playback.
|
|
operationId:
|
|
vod_hour_vod__year_month___day___hour___camera_name___tz_name__get
|
|
parameters:
|
|
- name: year_month
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Year Month
|
|
- name: day
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
title: Day
|
|
- name: hour
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
title: Hour
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: tz_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Tz Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/vod/event/{event_id}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Vod Event
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns an HLS playlist for the specified object. Append /master.m3u8 or /index.m3u8 for HLS playback.
|
|
operationId: vod_event_vod_event__event_id__get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
- name: padding
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
description: Padding to apply to the vod.
|
|
default: 0
|
|
title: Padding
|
|
description: Padding to apply to the vod.
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/vod/clip/{camera_name}/start/{start_ts}/end/{end_ts}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Vod Clip
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns an HLS playlist for a timestamp range with HLS discontinuity enabled. Append /master.m3u8 or /index.m3u8 for HLS playback.
|
|
operationId:
|
|
vod_clip_vod_clip__camera_name__start__start_ts__end__end_ts__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/events/{event_id}/snapshot.jpg:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Event Snapshot
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns a snapshot image for the specified object id.
|
|
operationId: event_snapshot_events__event_id__snapshot_jpg_get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
- name: download
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
default: false
|
|
title: Download
|
|
- name: timestamp
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Timestamp
|
|
- name: bbox
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Bbox
|
|
- name: crop
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Crop
|
|
- name: height
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Height
|
|
- name: quality
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Quality
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/events/{event_id}/thumbnail.{extension}:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Event Thumbnail
|
|
operationId: event_thumbnail_events__event_id__thumbnail__extension__get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
- name: extension
|
|
in: path
|
|
required: true
|
|
schema:
|
|
$ref: '#/components/schemas/Extension'
|
|
- name: max_cache_age
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
description: Max cache age in seconds. Default 30 days in seconds.
|
|
default: 2592000
|
|
title: Max Cache Age
|
|
description: Max cache age in seconds. Default 30 days in seconds.
|
|
- name: format
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- ios
|
|
- android
|
|
default: ios
|
|
title: Format
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/grid.jpg:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Grid Snapshot
|
|
operationId: grid_snapshot__camera_name__grid_jpg_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: color
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: green
|
|
title: Color
|
|
- name: font_scale
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
default: 0.5
|
|
title: Font Scale
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/region_grid:
|
|
delete:
|
|
tags:
|
|
- Media
|
|
summary: Clear Region Grid
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Clear the region grid for a camera.
|
|
operationId: clear_region_grid__camera_name__region_grid_delete
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Camera Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/events/{event_id}/snapshot-clean.webp:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Event Snapshot Clean
|
|
operationId:
|
|
event_snapshot_clean_events__event_id__snapshot_clean_webp_get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
- name: download
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: boolean
|
|
default: false
|
|
title: Download
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/events/{event_id}/clip.mp4:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Event Clip
|
|
operationId: event_clip_events__event_id__clip_mp4_get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
- name: padding
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
description: Padding to apply to clip.
|
|
default: 0
|
|
title: Padding
|
|
description: Padding to apply to clip.
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/review/{review_id}/clip.mp4:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Review Clip
|
|
operationId: review_clip_review__review_id__clip_mp4_get
|
|
parameters:
|
|
- name: review_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Review Id
|
|
- name: padding
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
description: Padding to apply to clip.
|
|
default: 0
|
|
title: Padding
|
|
description: Padding to apply to clip.
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/events/{event_id}/preview.gif:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Event Preview
|
|
operationId: event_preview_events__event_id__preview_gif_get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/start/{start_ts}/end/{end_ts}/preview.gif:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Preview Gif
|
|
operationId:
|
|
preview_gif__camera_name__start__start_ts__end__end_ts__preview_gif_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
- name: max_cache_age
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
description: Max cache age in seconds. Default 30 days in seconds.
|
|
default: 2592000
|
|
title: Max Cache Age
|
|
description: Max cache age in seconds. Default 30 days in seconds.
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/start/{start_ts}/end/{end_ts}/preview.mp4:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Preview Mp4
|
|
operationId:
|
|
preview_mp4__camera_name__start__start_ts__end__end_ts__preview_mp4_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: start_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: Start Ts
|
|
- name: end_ts
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
title: End Ts
|
|
- name: max_cache_age
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
description: Max cache age in seconds. Default 7 days in seconds.
|
|
default: 604800
|
|
title: Max Cache Age
|
|
description: Max cache age in seconds. Default 7 days in seconds.
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/review/{event_id}/preview:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Review Preview
|
|
operationId: review_preview_review__event_id__preview_get
|
|
parameters:
|
|
- name: event_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Event Id
|
|
- name: format
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
enum:
|
|
- gif
|
|
- mp4
|
|
default: gif
|
|
title: Format
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/preview/{file_name}/thumbnail.webp:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Preview Thumbnail
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Get a thumbnail from the cached preview frames.
|
|
operationId: preview_thumbnail_preview__file_name__thumbnail_webp_get
|
|
parameters:
|
|
- name: file_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: File Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/preview/{file_name}/thumbnail.jpg:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Preview Thumbnail
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Get a thumbnail from the cached preview frames.
|
|
operationId: preview_thumbnail_preview__file_name__thumbnail_jpg_get
|
|
parameters:
|
|
- name: file_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: File Name
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/{camera_name}/{label}/thumbnail.jpg:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Label Thumbnail
|
|
operationId: label_thumbnail__camera_name___label__thumbnail_jpg_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: label
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Label
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/{label}/best.jpg:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Label Thumbnail
|
|
operationId: label_thumbnail__camera_name___label__best_jpg_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: label
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Label
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/{label}/clip.mp4:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Label Clip
|
|
operationId: label_clip__camera_name___label__clip_mp4_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: label
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Label
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
description: '**Access:** Authenticated user with access to the referenced camera.'
|
|
/{camera_name}/{label}/snapshot.jpg:
|
|
get:
|
|
tags:
|
|
- Media
|
|
summary: Label Snapshot
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns the snapshot image from the latest event for the given camera and label combo
|
|
operationId: label_snapshot__camera_name___label__snapshot_jpg_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: label
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Label
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/{camera_name}/search/motion:
|
|
post:
|
|
tags:
|
|
- Motion Search
|
|
summary: Start motion search job
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Starts an asynchronous search for significant motion changes within
|
|
a user-defined Region of Interest (ROI) over a specified time range. Returns a job_id
|
|
that can be used to poll for results.
|
|
operationId: start_motion_search__camera_name__search_motion_post
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MotionSearchRequest'
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MotionSearchStartResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/{camera_name}/search/motion/{job_id}:
|
|
get:
|
|
tags:
|
|
- Motion Search
|
|
summary: Get motion search job status
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns the status and results (if complete) of a motion search job.
|
|
operationId:
|
|
get_motion_search_status_endpoint__camera_name__search_motion__job_id__get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Job Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/MotionSearchStatusResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/{camera_name}/search/motion/{job_id}/cancel:
|
|
post:
|
|
tags:
|
|
- Motion Search
|
|
summary: Cancel motion search job
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Cancels an active motion search job if it is still processing.
|
|
operationId:
|
|
cancel_motion_search_endpoint__camera_name__search_motion__job_id__cancel_post
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: job_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
title: Job Id
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/recordings/storage:
|
|
get:
|
|
tags:
|
|
- Recordings
|
|
summary: Get Recordings Storage Usage
|
|
operationId: get_recordings_storage_usage_recordings_storage_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
description: '**Access:** Admin role required.'
|
|
/recordings/summary:
|
|
get:
|
|
tags:
|
|
- Recordings
|
|
summary: All Recordings Summary
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Returns true/false by day indicating if recordings exist
|
|
operationId: all_recordings_summary_recordings_summary_get
|
|
parameters:
|
|
- name: timezone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: utc
|
|
title: Timezone
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Cameras
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/{camera_name}/recordings/summary:
|
|
get:
|
|
tags:
|
|
- Recordings
|
|
summary: Recordings Summary
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Returns hourly summary for recordings of given camera
|
|
operationId: recordings_summary__camera_name__recordings_summary_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: timezone
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: utc
|
|
title: Timezone
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/{camera_name}/recordings:
|
|
get:
|
|
tags:
|
|
- Recordings
|
|
summary: Recordings
|
|
description: |-
|
|
**Access:** Authenticated user with access to the referenced camera.
|
|
|
|
Return specific camera recordings between the given 'after'/'end' times. If not provided the last hour will be used
|
|
operationId: recordings__camera_name__recordings_get
|
|
parameters:
|
|
- name: camera_name
|
|
in: path
|
|
required: true
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera Name
|
|
- name: after
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: After
|
|
- name: before
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: Before
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema: {}
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: camera
|
|
/recordings/unavailable:
|
|
get:
|
|
tags:
|
|
- Recordings
|
|
summary: No Recordings
|
|
description: |-
|
|
**Access:** Any authenticated user.
|
|
|
|
Get time ranges with no recordings.
|
|
operationId: no_recordings_recordings_unavailable_get
|
|
parameters:
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: string
|
|
default: all
|
|
title: Cameras
|
|
- name: before
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: Before
|
|
- name: after
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: number
|
|
title: After
|
|
- name: scale
|
|
in: query
|
|
required: false
|
|
schema:
|
|
type: integer
|
|
default: 30
|
|
title: Scale
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: object
|
|
title: Response No Recordings Recordings Unavailable Get
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateUserAuth: []
|
|
x-required-role: any
|
|
/recordings/start/{start}/end/{end}:
|
|
delete:
|
|
tags:
|
|
- Recordings
|
|
summary: Delete recordings
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Deletes recordings within the specified time range.
|
|
Recordings can be filtered by cameras and kept based on motion, objects, or audio attributes.
|
|
operationId: delete_recordings_recordings_start__start__end__end__delete
|
|
parameters:
|
|
- name: start
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
description: Start timestamp (unix)
|
|
title: Start
|
|
description: Start timestamp (unix)
|
|
- name: end
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: number
|
|
description: End timestamp (unix)
|
|
title: End
|
|
description: End timestamp (unix)
|
|
- name: keep
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Keep
|
|
- name: cameras
|
|
in: query
|
|
required: false
|
|
schema:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
default: all
|
|
title: Cameras
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/GenericResponse'
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/debug_replay/start:
|
|
post:
|
|
tags:
|
|
- App
|
|
summary: Start debug replay
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Start a debug replay session from camera recordings. Returns immediately while clip generation runs as a background job; subscribe to the 'debug_replay' job_state WS topic to track progress.
|
|
operationId: start_debug_replay_debug_replay_start_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DebugReplayStartBody'
|
|
responses:
|
|
'202':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DebugReplayStartResponse'
|
|
'400':
|
|
description: Invalid camera, time range, or no recordings
|
|
'409':
|
|
description: A replay session is already active
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/debug_replay/start_from_export:
|
|
post:
|
|
tags:
|
|
- App
|
|
summary: Start debug replay from an export
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Start a debug replay session covering an existing export's time range. The end time is derived from the export's video duration.
|
|
operationId:
|
|
start_debug_replay_from_export_debug_replay_start_from_export_post
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DebugReplayStartFromExportBody'
|
|
responses:
|
|
'202':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DebugReplayStartResponse'
|
|
'400':
|
|
description: Invalid export, time range, or no recordings
|
|
'404':
|
|
description: Export not found
|
|
'409':
|
|
description: A replay session is already active
|
|
'422':
|
|
description: Validation Error
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/HTTPValidationError'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/debug_replay/status:
|
|
get:
|
|
tags:
|
|
- App
|
|
summary: Get debug replay status
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Get the status of the current debug replay session.
|
|
operationId: get_debug_replay_status_debug_replay_status_get
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DebugReplayStatusResponse'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
/debug_replay/stop:
|
|
post:
|
|
tags:
|
|
- App
|
|
summary: Stop debug replay
|
|
description: |-
|
|
**Access:** Admin role required.
|
|
|
|
Stop the active debug replay session and clean up all artifacts.
|
|
operationId: stop_debug_replay_debug_replay_stop_post
|
|
responses:
|
|
'200':
|
|
description: Successful Response
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DebugReplayStopResponse'
|
|
security:
|
|
- frigateAdminAuth: []
|
|
x-required-role: admin
|
|
components:
|
|
schemas:
|
|
AppConfigSetBody:
|
|
properties:
|
|
requires_restart:
|
|
type: integer
|
|
title: Requires Restart
|
|
default: 1
|
|
update_topic:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Update Topic
|
|
config_data:
|
|
anyOf:
|
|
- type: object
|
|
- type: 'null'
|
|
title: Config Data
|
|
skip_save:
|
|
type: boolean
|
|
title: Skip Save
|
|
default: false
|
|
type: object
|
|
title: AppConfigSetBody
|
|
AppPostLoginBody:
|
|
properties:
|
|
user:
|
|
type: string
|
|
title: User
|
|
password:
|
|
type: string
|
|
title: Password
|
|
type: object
|
|
required:
|
|
- user
|
|
- password
|
|
title: AppPostLoginBody
|
|
AppPostUsersBody:
|
|
properties:
|
|
username:
|
|
type: string
|
|
title: Username
|
|
password:
|
|
type: string
|
|
title: Password
|
|
role:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Role
|
|
default: viewer
|
|
type: object
|
|
required:
|
|
- username
|
|
- password
|
|
title: AppPostUsersBody
|
|
AppPutPasswordBody:
|
|
properties:
|
|
password:
|
|
type: string
|
|
title: Password
|
|
old_password:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Old Password
|
|
type: object
|
|
required:
|
|
- password
|
|
title: AppPutPasswordBody
|
|
AppPutRoleBody:
|
|
properties:
|
|
role:
|
|
type: string
|
|
title: Role
|
|
type: object
|
|
required:
|
|
- role
|
|
title: AppPutRoleBody
|
|
AudioTranscriptionBody:
|
|
properties:
|
|
event_id:
|
|
type: string
|
|
title: Event Id
|
|
description: ID of the event to transcribe audio for
|
|
type: object
|
|
required:
|
|
- event_id
|
|
title: AudioTranscriptionBody
|
|
BatchExportBody:
|
|
properties:
|
|
items:
|
|
items:
|
|
$ref: '#/components/schemas/BatchExportItem'
|
|
type: array
|
|
maxItems: 50
|
|
minItems: 1
|
|
title: Items
|
|
description: List of export items. Each item has its own camera and
|
|
time range.
|
|
export_case_id:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 30
|
|
- type: 'null'
|
|
title: Export case ID
|
|
description: Existing export case ID to assign all exports to.
|
|
Attaching to an existing case is temporarily admin-only until
|
|
case-level ACLs exist.
|
|
new_case_name:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 100
|
|
- type: 'null'
|
|
title: New case name
|
|
description: Name of a new export case to create when export_case_id
|
|
is omitted
|
|
new_case_description:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: New case description
|
|
description: Optional description for a newly created export case
|
|
type: object
|
|
required:
|
|
- items
|
|
title: BatchExportBody
|
|
BatchExportItem:
|
|
properties:
|
|
camera:
|
|
type: string
|
|
title: Camera name
|
|
start_time:
|
|
type: number
|
|
title: Start time
|
|
end_time:
|
|
type: number
|
|
title: End time
|
|
image_path:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Existing thumbnail path
|
|
description: Optional existing image to use as the export thumbnail
|
|
friendly_name:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 256
|
|
- type: 'null'
|
|
title: Friendly name
|
|
description: Optional friendly name for this specific export item
|
|
client_item_id:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 128
|
|
- type: 'null'
|
|
title: Client item ID
|
|
description: Optional opaque client identifier echoed back in results
|
|
type: object
|
|
required:
|
|
- camera
|
|
- start_time
|
|
- end_time
|
|
title: BatchExportItem
|
|
BatchExportResponse:
|
|
properties:
|
|
export_case_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Export Case Id
|
|
description: Export case ID associated with the batch
|
|
export_ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Export Ids
|
|
description: Export IDs successfully queued
|
|
results:
|
|
items:
|
|
$ref: '#/components/schemas/BatchExportResultModel'
|
|
type: array
|
|
title: Results
|
|
description: Per-item batch export results
|
|
type: object
|
|
required:
|
|
- export_ids
|
|
- results
|
|
title: BatchExportResponse
|
|
description: Response model for starting an export batch.
|
|
BatchExportResultModel:
|
|
properties:
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
description: Camera name for this export attempt
|
|
export_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Export Id
|
|
description: The export ID when the export was successfully queued
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
description: Whether the export was successfully queued
|
|
status:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Status
|
|
description: Queue status for this camera export
|
|
error:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error
|
|
description: Validation or queueing error for this item, if any
|
|
item_index:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Item Index
|
|
description: Zero-based index of this result within the request items
|
|
list
|
|
client_item_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Client Item Id
|
|
description: Opaque client-supplied item identifier echoed from the
|
|
request
|
|
type: object
|
|
required:
|
|
- camera
|
|
- success
|
|
title: BatchExportResultModel
|
|
description: Per-item result for a batch export request.
|
|
Body_recognize_face_faces_recognize_post:
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
title: File
|
|
type: object
|
|
required:
|
|
- file
|
|
title: Body_recognize_face_faces_recognize_post
|
|
Body_register_face_faces__name__register_post:
|
|
properties:
|
|
file:
|
|
type: string
|
|
format: binary
|
|
title: File
|
|
type: object
|
|
required:
|
|
- file
|
|
title: Body_register_face_faces__name__register_post
|
|
CameraSetBody:
|
|
properties:
|
|
value:
|
|
type: string
|
|
title: Value
|
|
description: The value to set for the feature
|
|
type: object
|
|
required:
|
|
- value
|
|
title: CameraSetBody
|
|
ChaptersEnum:
|
|
type: string
|
|
enum:
|
|
- none
|
|
- recording_segments
|
|
- review_items
|
|
title: ChaptersEnum
|
|
ChatCompletionRequest:
|
|
properties:
|
|
messages:
|
|
items:
|
|
$ref: '#/components/schemas/ChatMessage'
|
|
type: array
|
|
title: Messages
|
|
description: List of messages in the conversation
|
|
max_tool_iterations:
|
|
type: integer
|
|
maximum: 10.0
|
|
minimum: 1.0
|
|
title: Max Tool Iterations
|
|
description: 'Maximum number of tool call iterations (default: 5)'
|
|
default: 5
|
|
stream:
|
|
type: boolean
|
|
title: Stream
|
|
description: If true, stream the final assistant response in the body
|
|
as newline-delimited JSON.
|
|
default: false
|
|
enable_thinking:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Enable Thinking
|
|
description: Per-request thinking toggle. None means use the provider
|
|
default. Ignored by providers that do not expose a per-request
|
|
thinking switch.
|
|
type: object
|
|
required:
|
|
- messages
|
|
title: ChatCompletionRequest
|
|
description: Request for chat completion with tool calling.
|
|
ChatMessage:
|
|
properties:
|
|
role:
|
|
type: string
|
|
title: Role
|
|
description: "Message role: 'user', 'assistant', 'system', or 'tool'"
|
|
content:
|
|
anyOf:
|
|
- {}
|
|
- type: 'null'
|
|
title: Content
|
|
description: Message content. Usually a string, but may be a
|
|
multimodal content list (e.g. text + image_url) or null for
|
|
assistant turns that only request tool calls.
|
|
tool_call_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Tool Call Id
|
|
description: For tool messages, the ID of the tool call
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Name
|
|
description: For tool messages, the tool name
|
|
tool_calls:
|
|
anyOf:
|
|
- items:
|
|
type: object
|
|
type: array
|
|
- type: 'null'
|
|
title: Tool Calls
|
|
description: For assistant messages replayed from prior turns, the
|
|
OpenAI-format tool calls the model previously requested. Replaying
|
|
these verbatim keeps the conversation prefix byte-for-byte identical
|
|
so the model server's prompt cache hits on follow-up turns.
|
|
type: object
|
|
required:
|
|
- role
|
|
title: ChatMessage
|
|
description: A single message in a chat conversation.
|
|
DayReview:
|
|
properties:
|
|
day:
|
|
type: string
|
|
format: date-time
|
|
title: Day
|
|
reviewed_alert:
|
|
type: integer
|
|
title: Reviewed Alert
|
|
reviewed_detection:
|
|
type: integer
|
|
title: Reviewed Detection
|
|
total_alert:
|
|
type: integer
|
|
title: Total Alert
|
|
total_detection:
|
|
type: integer
|
|
title: Total Detection
|
|
type: object
|
|
required:
|
|
- day
|
|
- reviewed_alert
|
|
- reviewed_detection
|
|
- total_alert
|
|
- total_detection
|
|
title: DayReview
|
|
DebugReplayStartBody:
|
|
properties:
|
|
camera:
|
|
type: string
|
|
title: Source camera name
|
|
start_time:
|
|
type: number
|
|
title: Start timestamp
|
|
end_time:
|
|
type: number
|
|
title: End timestamp
|
|
type: object
|
|
required:
|
|
- camera
|
|
- start_time
|
|
- end_time
|
|
title: DebugReplayStartBody
|
|
description: Request body for starting a debug replay session.
|
|
DebugReplayStartFromExportBody:
|
|
properties:
|
|
export_id:
|
|
type: string
|
|
title: Export id
|
|
type: object
|
|
required:
|
|
- export_id
|
|
title: DebugReplayStartFromExportBody
|
|
description: Request body for starting a debug replay session from an
|
|
export.
|
|
DebugReplayStartResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
replay_camera:
|
|
type: string
|
|
title: Replay Camera
|
|
job_id:
|
|
type: string
|
|
title: Job Id
|
|
type: object
|
|
required:
|
|
- success
|
|
- replay_camera
|
|
- job_id
|
|
title: DebugReplayStartResponse
|
|
description: Response for starting a debug replay session.
|
|
DebugReplayStatusResponse:
|
|
properties:
|
|
active:
|
|
type: boolean
|
|
title: Active
|
|
replay_camera:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Replay Camera
|
|
source_camera:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Source Camera
|
|
start_time:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Start Time
|
|
end_time:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: End Time
|
|
live_ready:
|
|
type: boolean
|
|
title: Live Ready
|
|
default: false
|
|
type: object
|
|
required:
|
|
- active
|
|
title: DebugReplayStatusResponse
|
|
description: |-
|
|
Response for debug replay status.
|
|
|
|
Returns only session-presence fields. Startup progress and error
|
|
details flow through the job_state WebSocket topic via the
|
|
debug_replay job (see frigate.jobs.debug_replay); the
|
|
Replay page subscribes there with useJobStatus("debug_replay").
|
|
DebugReplayStopResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
type: object
|
|
required:
|
|
- success
|
|
title: DebugReplayStopResponse
|
|
description: Response for stopping a debug replay session.
|
|
DeleteFaceImagesBody:
|
|
properties:
|
|
ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Ids
|
|
description: List of image filenames to delete from the face folder
|
|
type: object
|
|
required:
|
|
- ids
|
|
title: DeleteFaceImagesBody
|
|
EventCreateResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
message:
|
|
type: string
|
|
title: Message
|
|
event_id:
|
|
type: string
|
|
title: Event Id
|
|
type: object
|
|
required:
|
|
- success
|
|
- message
|
|
- event_id
|
|
title: EventCreateResponse
|
|
EventMultiDeleteResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
deleted_events:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Deleted Events
|
|
not_found_events:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Not Found Events
|
|
type: object
|
|
required:
|
|
- success
|
|
- deleted_events
|
|
- not_found_events
|
|
title: EventMultiDeleteResponse
|
|
EventResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
label:
|
|
type: string
|
|
title: Label
|
|
sub_label:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Sub Label
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
start_time:
|
|
type: number
|
|
title: Start Time
|
|
end_time:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: End Time
|
|
false_positive:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: False Positive
|
|
zones:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Zones
|
|
thumbnail:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Thumbnail
|
|
has_clip:
|
|
type: boolean
|
|
title: Has Clip
|
|
has_snapshot:
|
|
type: boolean
|
|
title: Has Snapshot
|
|
retain_indefinitely:
|
|
type: boolean
|
|
title: Retain Indefinitely
|
|
plus_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Plus Id
|
|
model_hash:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Model Hash
|
|
detector_type:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Detector Type
|
|
model_type:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Model Type
|
|
data:
|
|
type: object
|
|
title: Data
|
|
type: object
|
|
required:
|
|
- id
|
|
- label
|
|
- sub_label
|
|
- camera
|
|
- start_time
|
|
- end_time
|
|
- false_positive
|
|
- zones
|
|
- thumbnail
|
|
- has_clip
|
|
- has_snapshot
|
|
- retain_indefinitely
|
|
- plus_id
|
|
- model_hash
|
|
- detector_type
|
|
- model_type
|
|
- data
|
|
title: EventResponse
|
|
EventUploadPlusResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
plus_id:
|
|
type: string
|
|
title: Plus Id
|
|
type: object
|
|
required:
|
|
- success
|
|
- plus_id
|
|
title: EventUploadPlusResponse
|
|
EventsAttributesBody:
|
|
properties:
|
|
attributes:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Selected classification attributes for the event
|
|
type: object
|
|
title: EventsAttributesBody
|
|
EventsCreateBody:
|
|
properties:
|
|
sub_label:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Sub Label
|
|
score:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Score
|
|
default: 0
|
|
duration:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Duration
|
|
default: 30
|
|
include_recording:
|
|
anyOf:
|
|
- type: boolean
|
|
- type: 'null'
|
|
title: Include Recording
|
|
default: true
|
|
draw:
|
|
anyOf:
|
|
- type: object
|
|
- type: 'null'
|
|
title: Draw
|
|
default: {}
|
|
pre_capture:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Pre Capture
|
|
type: object
|
|
title: EventsCreateBody
|
|
EventsDeleteBody:
|
|
properties:
|
|
event_ids:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: The event IDs to delete
|
|
type: object
|
|
required:
|
|
- event_ids
|
|
title: EventsDeleteBody
|
|
EventsDescriptionBody:
|
|
properties:
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: The description of the event
|
|
type: object
|
|
required:
|
|
- description
|
|
title: EventsDescriptionBody
|
|
EventsEndBody:
|
|
properties:
|
|
end_time:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: End Time
|
|
type: object
|
|
title: EventsEndBody
|
|
EventsLPRBody:
|
|
properties:
|
|
recognizedLicensePlate:
|
|
type: string
|
|
maxLength: 100
|
|
title: Recognized License Plate
|
|
recognizedLicensePlateScore:
|
|
anyOf:
|
|
- type: number
|
|
maximum: 1.0
|
|
exclusiveMinimum: 0.0
|
|
- type: 'null'
|
|
title: Score for recognized license plate
|
|
type: object
|
|
required:
|
|
- recognizedLicensePlate
|
|
title: EventsLPRBody
|
|
EventsSubLabelBody:
|
|
properties:
|
|
subLabel:
|
|
type: string
|
|
maxLength: 100
|
|
title: Sub label
|
|
subLabelScore:
|
|
anyOf:
|
|
- type: number
|
|
maximum: 1.0
|
|
exclusiveMinimum: 0.0
|
|
- type: 'null'
|
|
title: Score for sub label
|
|
camera:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Camera this object is detected on.
|
|
type: object
|
|
required:
|
|
- subLabel
|
|
title: EventsSubLabelBody
|
|
ExportBulkDeleteBody:
|
|
properties:
|
|
ids:
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
type: array
|
|
minItems: 1
|
|
title: Ids
|
|
type: object
|
|
required:
|
|
- ids
|
|
title: ExportBulkDeleteBody
|
|
description: Request body for bulk deleting exports.
|
|
ExportBulkReassignBody:
|
|
properties:
|
|
ids:
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
type: array
|
|
minItems: 1
|
|
title: Ids
|
|
export_case_id:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 30
|
|
- type: 'null'
|
|
title: Export Case Id
|
|
description: Case ID to assign to, or null to unassign from current
|
|
case
|
|
type: object
|
|
required:
|
|
- ids
|
|
title: ExportBulkReassignBody
|
|
description: Request body for bulk reassigning exports to a case.
|
|
ExportCaseCreateBody:
|
|
properties:
|
|
name:
|
|
type: string
|
|
maxLength: 100
|
|
title: Name
|
|
description: Friendly name of the export case
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Description
|
|
description: Optional description of the export case
|
|
type: object
|
|
required:
|
|
- name
|
|
title: ExportCaseCreateBody
|
|
description: Request body for creating a new export case.
|
|
ExportCaseModel:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
description: Unique identifier for the export case
|
|
name:
|
|
type: string
|
|
title: Name
|
|
description: Friendly name of the export case
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Description
|
|
description: Optional description of the export case
|
|
created_at:
|
|
type: number
|
|
title: Created At
|
|
description: Unix timestamp when the export case was created
|
|
updated_at:
|
|
type: number
|
|
title: Updated At
|
|
description: Unix timestamp when the export case was last updated
|
|
type: object
|
|
required:
|
|
- id
|
|
- name
|
|
- created_at
|
|
- updated_at
|
|
title: ExportCaseModel
|
|
description: Model representing a single export case.
|
|
ExportCaseUpdateBody:
|
|
properties:
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 100
|
|
- type: 'null'
|
|
title: Name
|
|
description: Updated friendly name of the export case
|
|
description:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Description
|
|
description: Updated description of the export case
|
|
type: object
|
|
title: ExportCaseUpdateBody
|
|
description: Request body for updating an existing export case.
|
|
ExportJobModel:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
description: Unique identifier for the export job
|
|
job_type:
|
|
type: string
|
|
title: Job Type
|
|
description: Job type
|
|
status:
|
|
type: string
|
|
title: Status
|
|
description: Current job status
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
description: Camera associated with this export job
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Name
|
|
description: Friendly name for the export
|
|
export_case_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Export Case Id
|
|
description: ID of the export case this export belongs to
|
|
request_start_time:
|
|
type: number
|
|
title: Request Start Time
|
|
description: Requested export start time
|
|
request_end_time:
|
|
type: number
|
|
title: Request End Time
|
|
description: Requested export end time
|
|
start_time:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Start Time
|
|
description: Unix timestamp when execution started
|
|
end_time:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: End Time
|
|
description: Unix timestamp when execution completed
|
|
error_message:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error Message
|
|
description: Error message for failed jobs
|
|
results:
|
|
anyOf:
|
|
- type: object
|
|
- type: 'null'
|
|
title: Results
|
|
description: Result metadata for completed jobs
|
|
current_step:
|
|
type: string
|
|
title: Current Step
|
|
description: Current execution step (queued, preparing, encoding,
|
|
encoding_retry, finalizing)
|
|
default: queued
|
|
progress_percent:
|
|
type: number
|
|
title: Progress Percent
|
|
description: Progress percentage of the current step (0.0 - 100.0)
|
|
default: 0.0
|
|
type: object
|
|
required:
|
|
- id
|
|
- job_type
|
|
- status
|
|
- camera
|
|
- request_start_time
|
|
- request_end_time
|
|
title: ExportJobModel
|
|
description: Model representing a queued or running export job.
|
|
ExportModel:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
description: Unique identifier for the export
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
description: Camera name associated with this export
|
|
name:
|
|
type: string
|
|
title: Name
|
|
description: Friendly name of the export
|
|
date:
|
|
type: number
|
|
title: Date
|
|
description: Unix timestamp when the export was created
|
|
video_path:
|
|
type: string
|
|
title: Video Path
|
|
description: File path to the exported video
|
|
thumb_path:
|
|
type: string
|
|
title: Thumb Path
|
|
description: File path to the export thumbnail
|
|
in_progress:
|
|
type: boolean
|
|
title: In Progress
|
|
description: Whether the export is currently being processed
|
|
export_case_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Export Case Id
|
|
description: ID of the export case this export belongs to
|
|
type: object
|
|
required:
|
|
- id
|
|
- camera
|
|
- name
|
|
- date
|
|
- video_path
|
|
- thumb_path
|
|
- in_progress
|
|
title: ExportModel
|
|
description: Model representing a single export.
|
|
ExportRecordingsBody:
|
|
properties:
|
|
source:
|
|
$ref: '#/components/schemas/PlaybackSourceEnum'
|
|
title: Playback source
|
|
default: recordings
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 256
|
|
- type: 'null'
|
|
title: Friendly name
|
|
image_path:
|
|
type: string
|
|
title: Image Path
|
|
export_case_id:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 30
|
|
- type: 'null'
|
|
title: Export case ID
|
|
description: ID of the export case to assign this export to
|
|
chapters:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/ChaptersEnum'
|
|
- type: 'null'
|
|
title: Chapter mode
|
|
description: Optional chapter metadata to embed in the export. When
|
|
omitted, the camera's configured export chapter mode is used.
|
|
type: object
|
|
title: ExportRecordingsBody
|
|
ExportRecordingsCustomBody:
|
|
properties:
|
|
source:
|
|
$ref: '#/components/schemas/PlaybackSourceEnum'
|
|
title: Playback source
|
|
default: recordings
|
|
name:
|
|
type: string
|
|
maxLength: 256
|
|
title: Friendly name
|
|
image_path:
|
|
type: string
|
|
title: Image Path
|
|
export_case_id:
|
|
anyOf:
|
|
- type: string
|
|
maxLength: 30
|
|
- type: 'null'
|
|
title: Export case ID
|
|
description: ID of the export case to assign this export to
|
|
ffmpeg_input_args:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: FFmpeg input arguments
|
|
description: Custom FFmpeg input arguments. If not provided, defaults
|
|
to timelapse input args.
|
|
ffmpeg_output_args:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: FFmpeg output arguments
|
|
description: Custom FFmpeg output arguments. If not provided, defaults
|
|
to timelapse output args.
|
|
cpu_fallback:
|
|
type: boolean
|
|
title: CPU Fallback
|
|
description: If true, retry export without hardware acceleration if
|
|
the initial export fails.
|
|
default: false
|
|
type: object
|
|
title: ExportRecordingsCustomBody
|
|
ExportRenameBody:
|
|
properties:
|
|
name:
|
|
type: string
|
|
maxLength: 256
|
|
title: Friendly name
|
|
type: object
|
|
required:
|
|
- name
|
|
title: ExportRenameBody
|
|
Extension:
|
|
type: string
|
|
enum:
|
|
- webp
|
|
- png
|
|
- jpg
|
|
- jpeg
|
|
title: Extension
|
|
FaceRecognitionResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
description: Whether the face recognition was successful
|
|
score:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Score
|
|
description: Confidence score of the recognition (0-1)
|
|
face_name:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Face Name
|
|
description: The recognized face name if successful
|
|
type: object
|
|
required:
|
|
- success
|
|
title: FaceRecognitionResponse
|
|
description: |-
|
|
Response model for face recognition endpoint.
|
|
|
|
Returns the result of attempting to recognize a face from an uploaded image.
|
|
FacesResponse:
|
|
additionalProperties:
|
|
items:
|
|
type: string
|
|
type: array
|
|
type: object
|
|
title: FacesResponse
|
|
description: |-
|
|
Response model for the get_faces endpoint.
|
|
|
|
Returns a mapping of face names to lists of image filenames.
|
|
Each face name corresponds to a directory in the faces folder,
|
|
and the list contains the names of image files for that face.
|
|
|
|
Example:
|
|
{
|
|
"john_doe": ["face1.webp", "face2.jpg"],
|
|
"jane_smith": ["face3.png"]
|
|
}
|
|
GenAIProbeBody:
|
|
properties:
|
|
provider:
|
|
$ref: '#/components/schemas/GenAIProviderEnum'
|
|
name:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Name
|
|
api_key:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Api Key
|
|
base_url:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Base Url
|
|
provider_options:
|
|
type: object
|
|
title: Provider Options
|
|
type: object
|
|
required:
|
|
- provider
|
|
title: GenAIProbeBody
|
|
GenAIProviderEnum:
|
|
type: string
|
|
enum:
|
|
- openai
|
|
- azure_openai
|
|
- gemini
|
|
- ollama
|
|
- llamacpp
|
|
title: GenAIProviderEnum
|
|
GenerateObjectExamplesBody:
|
|
properties:
|
|
model_name:
|
|
type: string
|
|
title: Model Name
|
|
description: Name of the classification model
|
|
label:
|
|
type: string
|
|
title: Label
|
|
description: Object label to collect examples for (e.g., 'person',
|
|
'car')
|
|
type: object
|
|
required:
|
|
- model_name
|
|
- label
|
|
title: GenerateObjectExamplesBody
|
|
GenerateStateExamplesBody:
|
|
properties:
|
|
model_name:
|
|
type: string
|
|
title: Model Name
|
|
description: Name of the classification model
|
|
cameras:
|
|
additionalProperties:
|
|
prefixItems:
|
|
- type: number
|
|
- type: number
|
|
- type: number
|
|
- type: number
|
|
type: array
|
|
maxItems: 4
|
|
minItems: 4
|
|
type: object
|
|
title: Cameras
|
|
description: Dictionary mapping camera names to normalized crop
|
|
coordinates in [x1, y1, x2, y2] format (values 0-1)
|
|
type: object
|
|
required:
|
|
- model_name
|
|
- cameras
|
|
title: GenerateStateExamplesBody
|
|
GenericResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
message:
|
|
type: string
|
|
title: Message
|
|
type: object
|
|
required:
|
|
- success
|
|
- message
|
|
title: GenericResponse
|
|
HTTPValidationError:
|
|
properties:
|
|
detail:
|
|
items:
|
|
$ref: '#/components/schemas/ValidationError'
|
|
type: array
|
|
title: Detail
|
|
type: object
|
|
title: HTTPValidationError
|
|
Last24HoursReview:
|
|
properties:
|
|
reviewed_alert:
|
|
type: integer
|
|
title: Reviewed Alert
|
|
reviewed_detection:
|
|
type: integer
|
|
title: Reviewed Detection
|
|
total_alert:
|
|
type: integer
|
|
title: Total Alert
|
|
total_detection:
|
|
type: integer
|
|
title: Total Detection
|
|
type: object
|
|
required:
|
|
- reviewed_alert
|
|
- reviewed_detection
|
|
- total_alert
|
|
- total_detection
|
|
title: Last24HoursReview
|
|
MediaSyncBody:
|
|
properties:
|
|
dry_run:
|
|
type: boolean
|
|
title: Dry Run
|
|
description: If True, only report orphans without deleting them
|
|
default: true
|
|
media_types:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Media Types
|
|
description: "Types of media to sync: 'all', 'event_snapshots', 'event_thumbnails',
|
|
'review_thumbnails', 'previews', 'exports', 'recordings'"
|
|
default:
|
|
- all
|
|
force:
|
|
type: boolean
|
|
title: Force
|
|
description: If True, bypass safety threshold checks
|
|
default: false
|
|
verbose:
|
|
type: boolean
|
|
title: Verbose
|
|
description: If True, write full orphan file list to disk
|
|
default: false
|
|
type: object
|
|
title: MediaSyncBody
|
|
MotionSearchMetricsResponse:
|
|
properties:
|
|
segments_scanned:
|
|
type: integer
|
|
title: Segments Scanned
|
|
default: 0
|
|
segments_processed:
|
|
type: integer
|
|
title: Segments Processed
|
|
default: 0
|
|
metadata_inactive_segments:
|
|
type: integer
|
|
title: Metadata Inactive Segments
|
|
default: 0
|
|
heatmap_roi_skip_segments:
|
|
type: integer
|
|
title: Heatmap Roi Skip Segments
|
|
default: 0
|
|
fallback_full_range_segments:
|
|
type: integer
|
|
title: Fallback Full Range Segments
|
|
default: 0
|
|
frames_decoded:
|
|
type: integer
|
|
title: Frames Decoded
|
|
default: 0
|
|
wall_time_seconds:
|
|
type: number
|
|
title: Wall Time Seconds
|
|
default: 0.0
|
|
segments_with_errors:
|
|
type: integer
|
|
title: Segments With Errors
|
|
default: 0
|
|
type: object
|
|
title: MotionSearchMetricsResponse
|
|
description: Metrics collected during motion search execution.
|
|
MotionSearchRequest:
|
|
properties:
|
|
start_time:
|
|
type: number
|
|
title: Start Time
|
|
description: Start timestamp for the search range
|
|
end_time:
|
|
type: number
|
|
title: End Time
|
|
description: End timestamp for the search range
|
|
polygon_points:
|
|
items:
|
|
items:
|
|
type: number
|
|
type: array
|
|
type: array
|
|
title: Polygon Points
|
|
description: List of [x, y] normalized coordinates (0-1) defining the
|
|
ROI polygon
|
|
threshold:
|
|
type: integer
|
|
maximum: 255.0
|
|
minimum: 1.0
|
|
title: Threshold
|
|
description: Pixel difference threshold (1-255)
|
|
default: 30
|
|
min_area:
|
|
type: number
|
|
maximum: 100.0
|
|
minimum: 0.1
|
|
title: Min Area
|
|
description: Minimum change area as a percentage of the ROI
|
|
default: 5.0
|
|
parallel:
|
|
type: boolean
|
|
title: Parallel
|
|
description: Enable parallel scanning across segments
|
|
default: false
|
|
max_results:
|
|
type: integer
|
|
maximum: 200.0
|
|
minimum: 1.0
|
|
title: Max Results
|
|
description: Maximum number of search results to return
|
|
default: 25
|
|
type: object
|
|
required:
|
|
- start_time
|
|
- end_time
|
|
- polygon_points
|
|
title: MotionSearchRequest
|
|
description: Request body for motion search.
|
|
MotionSearchResult:
|
|
properties:
|
|
timestamp:
|
|
type: number
|
|
title: Timestamp
|
|
description: Timestamp where change was detected
|
|
change_percentage:
|
|
type: number
|
|
title: Change Percentage
|
|
description: Percentage of ROI area that changed
|
|
type: object
|
|
required:
|
|
- timestamp
|
|
- change_percentage
|
|
title: MotionSearchResult
|
|
description: A single search result with timestamp and change info.
|
|
MotionSearchStartResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
message:
|
|
type: string
|
|
title: Message
|
|
job_id:
|
|
type: string
|
|
title: Job Id
|
|
type: object
|
|
required:
|
|
- success
|
|
- message
|
|
- job_id
|
|
title: MotionSearchStartResponse
|
|
description: Response when motion search job starts.
|
|
MotionSearchStatusResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
message:
|
|
type: string
|
|
title: Message
|
|
status:
|
|
type: string
|
|
title: Status
|
|
results:
|
|
anyOf:
|
|
- items:
|
|
$ref: '#/components/schemas/MotionSearchResult'
|
|
type: array
|
|
- type: 'null'
|
|
title: Results
|
|
total_frames_processed:
|
|
anyOf:
|
|
- type: integer
|
|
- type: 'null'
|
|
title: Total Frames Processed
|
|
error_message:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Error Message
|
|
metrics:
|
|
anyOf:
|
|
- $ref: '#/components/schemas/MotionSearchMetricsResponse'
|
|
- type: 'null'
|
|
scanning_timestamp:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Scanning Timestamp
|
|
progress:
|
|
anyOf:
|
|
- type: number
|
|
- type: 'null'
|
|
title: Progress
|
|
type: object
|
|
required:
|
|
- success
|
|
- message
|
|
- status
|
|
title: MotionSearchStatusResponse
|
|
description: Response containing job status and results.
|
|
PlaybackSourceEnum:
|
|
type: string
|
|
enum:
|
|
- recordings
|
|
- preview
|
|
title: PlaybackSourceEnum
|
|
PreviewModel:
|
|
properties:
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
description: Camera name for this preview
|
|
src:
|
|
type: string
|
|
title: Src
|
|
description: Path to the preview video file
|
|
type:
|
|
type: string
|
|
title: Type
|
|
description: MIME type of the preview video (video/mp4)
|
|
start:
|
|
type: number
|
|
title: Start
|
|
description: Unix timestamp when the preview starts
|
|
end:
|
|
type: number
|
|
title: End
|
|
description: Unix timestamp when the preview ends
|
|
type: object
|
|
required:
|
|
- camera
|
|
- src
|
|
- type
|
|
- start
|
|
- end
|
|
title: PreviewModel
|
|
description: Model representing a single preview clip.
|
|
RegenerateDescriptionEnum:
|
|
type: string
|
|
enum:
|
|
- thumbnails
|
|
- snapshot
|
|
title: RegenerateDescriptionEnum
|
|
RenameFaceBody:
|
|
properties:
|
|
new_name:
|
|
type: string
|
|
title: New Name
|
|
description: New name for the face
|
|
type: object
|
|
required:
|
|
- new_name
|
|
title: RenameFaceBody
|
|
ReviewActivityMotionResponse:
|
|
properties:
|
|
start_time:
|
|
type: integer
|
|
title: Start Time
|
|
motion:
|
|
type: number
|
|
title: Motion
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
type: object
|
|
required:
|
|
- start_time
|
|
- motion
|
|
- camera
|
|
title: ReviewActivityMotionResponse
|
|
ReviewModifyMultipleBody:
|
|
properties:
|
|
ids:
|
|
items:
|
|
type: string
|
|
minLength: 1
|
|
type: array
|
|
minItems: 1
|
|
title: Ids
|
|
reviewed:
|
|
type: boolean
|
|
title: Reviewed
|
|
default: true
|
|
type: object
|
|
required:
|
|
- ids
|
|
title: ReviewModifyMultipleBody
|
|
ReviewSegmentResponse:
|
|
properties:
|
|
id:
|
|
type: string
|
|
title: Id
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
start_time:
|
|
type: string
|
|
format: date-time
|
|
title: Start Time
|
|
end_time:
|
|
type: string
|
|
format: date-time
|
|
title: End Time
|
|
has_been_reviewed:
|
|
type: boolean
|
|
title: Has Been Reviewed
|
|
severity:
|
|
$ref: '#/components/schemas/SeverityEnum'
|
|
thumb_path:
|
|
type: string
|
|
title: Thumb Path
|
|
data:
|
|
title: Data
|
|
type: object
|
|
required:
|
|
- id
|
|
- camera
|
|
- start_time
|
|
- end_time
|
|
- has_been_reviewed
|
|
- severity
|
|
- thumb_path
|
|
- data
|
|
title: ReviewSegmentResponse
|
|
ReviewSummaryResponse:
|
|
properties:
|
|
last24Hours:
|
|
$ref: '#/components/schemas/Last24HoursReview'
|
|
root:
|
|
additionalProperties:
|
|
$ref: '#/components/schemas/DayReview'
|
|
type: object
|
|
title: Root
|
|
type: object
|
|
required:
|
|
- last24Hours
|
|
- root
|
|
title: ReviewSummaryResponse
|
|
SeverityEnum:
|
|
type: string
|
|
enum:
|
|
- alert
|
|
- detection
|
|
title: SeverityEnum
|
|
StartExportResponse:
|
|
properties:
|
|
success:
|
|
type: boolean
|
|
title: Success
|
|
description: Whether the export was started successfully
|
|
message:
|
|
type: string
|
|
title: Message
|
|
description: Status or error message
|
|
export_id:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Export Id
|
|
description: The export ID if successfully started
|
|
status:
|
|
anyOf:
|
|
- type: string
|
|
- type: 'null'
|
|
title: Status
|
|
description: Queue status for the export job
|
|
type: object
|
|
required:
|
|
- success
|
|
- message
|
|
title: StartExportResponse
|
|
description: Response model for starting an export.
|
|
SubmitPlusBody:
|
|
properties:
|
|
include_annotation:
|
|
type: integer
|
|
title: Include Annotation
|
|
default: 1
|
|
type: object
|
|
title: SubmitPlusBody
|
|
ToolExecuteRequest:
|
|
properties:
|
|
tool_name:
|
|
type: string
|
|
title: Tool Name
|
|
arguments:
|
|
type: object
|
|
title: Arguments
|
|
type: object
|
|
required:
|
|
- tool_name
|
|
- arguments
|
|
title: ToolExecuteRequest
|
|
description: Request model for tool execution.
|
|
TriggerEmbeddingBody:
|
|
properties:
|
|
type:
|
|
$ref: '#/components/schemas/TriggerType'
|
|
data:
|
|
type: string
|
|
title: Data
|
|
threshold:
|
|
type: number
|
|
maximum: 1.0
|
|
minimum: 0.0
|
|
title: Threshold
|
|
default: 0.5
|
|
type: object
|
|
required:
|
|
- type
|
|
- data
|
|
title: TriggerEmbeddingBody
|
|
TriggerType:
|
|
type: string
|
|
enum:
|
|
- thumbnail
|
|
- description
|
|
title: TriggerType
|
|
VLMMonitorRequest:
|
|
properties:
|
|
camera:
|
|
type: string
|
|
title: Camera
|
|
condition:
|
|
type: string
|
|
title: Condition
|
|
max_duration_minutes:
|
|
type: integer
|
|
title: Max Duration Minutes
|
|
default: 60
|
|
labels:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Labels
|
|
default: []
|
|
zones:
|
|
items:
|
|
type: string
|
|
type: array
|
|
title: Zones
|
|
default: []
|
|
type: object
|
|
required:
|
|
- camera
|
|
- condition
|
|
title: VLMMonitorRequest
|
|
description: Request model for starting a VLM watch job.
|
|
ValidationError:
|
|
properties:
|
|
loc:
|
|
items:
|
|
anyOf:
|
|
- type: string
|
|
- type: integer
|
|
type: array
|
|
title: Location
|
|
msg:
|
|
type: string
|
|
title: Message
|
|
type:
|
|
type: string
|
|
title: Error Type
|
|
type: object
|
|
required:
|
|
- loc
|
|
- msg
|
|
- type
|
|
title: ValidationError
|
|
securitySchemes:
|
|
frigateAdminAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: frigate_token
|
|
description: Authenticated session whose resolved role is 'admin'. The
|
|
session is established via the JWT cookie issued by POST /login, or via
|
|
proxy auth headers (remote-user / remote-role) when Frigate runs behind
|
|
an authenticating reverse proxy.
|
|
frigateUserAuth:
|
|
type: apiKey
|
|
in: cookie
|
|
name: frigate_token
|
|
description: Any authenticated session (role 'viewer' or higher),
|
|
established via the JWT cookie issued by POST /login, or via proxy auth
|
|
headers when Frigate runs behind an authenticating reverse proxy.
|