mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-06-21 11:51:53 +03:00
8828 lines
244 KiB
YAML
8828 lines
244 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.
|
|
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.
|
|
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
|
|
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
|
|
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'
|
|
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.
|