blakeblackshear.frigate/docs/static/frigate-api.yaml
Nicolas Mowen d3b631a952
Api improvements (#15327)
* Organize api files

* Add more API definitions for events

* Add export select by ID

* Typing fixes

* Update openapi spec

* Change type

* Fix test

* Fix message

* Fix tests
2024-12-06 08:04:02 -06:00

3724 lines
93 KiB
YAML

openapi: 3.1.0
info:
# To avoid the introduction page we set the title to empty string
# https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/blob/4e771d309f6defe395449b26cc3c65814d72cbcc/packages/docusaurus-plugin-openapi-docs/src/openapi/openapi.ts#L92-L129
title: ""
version: 0.1.0
servers:
- url: https://demo.frigate.video/api
- url: http://localhost:5001/api
paths:
/auth:
get:
tags:
- Auth
summary: Auth
operationId: auth_auth_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/profile:
get:
tags:
- Auth
summary: Profile
operationId: profile_profile_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/logout:
get:
tags:
- Auth
summary: Logout
operationId: logout_logout_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/login:
post:
tags:
- Auth
summary: Login
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"
/users:
get:
tags:
- Auth
summary: Get Users
operationId: get_users_users_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
post:
tags:
- Auth
summary: Create User
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"
"/users/{username}":
delete:
tags:
- Auth
summary: Delete User
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"
"/users/{username}/password":
put:
tags:
- Auth
summary: Update Password
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"
/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
default: 0
title: Reviewed
- name: limit
in: query
required: false
schema:
type: integer
title: Limit
- name: severity
in: query
required: false
schema:
allOf:
- $ref: "#/components/schemas/SeverityEnum"
title: Severity
- 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"
/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"
/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"
/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"
/review/activity/motion:
get:
tags:
- Review
summary: Motion Activity
description: 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"
"/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"
"/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"
"/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"
/:
get:
tags:
- App
summary: Is Healthy
operationId: is_healthy__get
responses:
"200":
description: Successful Response
content:
text/plain:
schema:
type: string
/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: {}
/go2rtc/streams:
get:
tags:
- App
summary: Go2Rtc Streams
operationId: go2rtc_streams_go2rtc_streams_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"/go2rtc/streams/{camera_name}":
get:
tags:
- App
summary: Go2Rtc Camera Stream
operationId: go2rtc_camera_stream_go2rtc_streams__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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
/version:
get:
tags:
- App
summary: Version
operationId: version_version_get
responses:
"200":
description: Successful Response
content:
text/plain:
schema:
type: string
/stats:
get:
tags:
- App
summary: Stats
operationId: stats_stats_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/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"
/config:
get:
tags:
- App
summary: Config
operationId: config_config_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/config/raw:
get:
tags:
- App
summary: Config Raw
operationId: config_raw_config_raw_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/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"
/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"
/ffprobe:
get:
tags:
- App
summary: Ffprobe
operationId: ffprobe_ffprobe_get
parameters:
- name: paths
in: query
required: false
schema:
type: string
default: ""
title: Paths
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
/vainfo:
get:
tags:
- App
summary: Vainfo
operationId: vainfo_vainfo_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/nvinfo:
get:
tags:
- App
summary: Nvinfo
operationId: nvinfo_nvinfo_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"/logs/{service}":
get:
tags:
- App
- Logs
summary: Logs
description: 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: 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"
/restart:
post:
tags:
- App
summary: Restart
operationId: restart_restart_post
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/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"
/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"
/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"
/timeline/hourly:
get:
tags:
- App
summary: Hourly Timeline
description: 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"
"/preview/{camera_name}/start/{start_ts}/end/{end_ts}":
get:
tags:
- Preview
summary: Preview Ts
description: Get all mp4 previews relevant for time period.
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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/preview/{year_month}/{day}/{hour}/{camera_name}/{tz_name}":
get:
tags:
- Preview
summary: Preview Hour
description: Get all mp4 previews relevant for time period given the timezone
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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/preview/{camera_name}/start/{start_ts}/end/{end_ts}/frames":
get:
tags:
- Preview
summary: Get Preview Frames From Cache
description: Get list of cached preview frames
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:
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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
/notifications/pubkey:
get:
tags:
- Notifications
summary: Get Vapid Pub Key
operationId: get_vapid_pub_key_notifications_pubkey_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
/notifications/register:
post:
tags:
- Notifications
summary: Register Notifications
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"
/exports:
get:
tags:
- Export
summary: Get Exports
operationId: get_exports_exports_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"/export/{camera_name}/start/{start_time}/end/{end_time}":
post:
tags:
- Export
summary: Export Recording
operationId: >-
export_recording_export__camera_name__start__start_time__end__end_time__post
parameters:
- name: camera_name
in: path
required: true
schema:
type: string
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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/export/{event_id}/{new_name}":
patch:
tags:
- Export
summary: Export Rename
operationId: export_rename_export__event_id___new_name__patch
parameters:
- name: event_id
in: path
required: true
schema:
type: string
title: Event Id
- name: new_name
in: path
required: true
schema:
type: string
title: New Name
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/export/{event_id}":
delete:
tags:
- Export
summary: Export Delete
operationId: export_delete_export__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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/exports/{export_id}":
get:
tags:
- Export
summary: Get 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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
/events:
get:
tags:
- Events
summary: 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: 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: 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"
/events/explore:
get:
tags:
- Events
summary: Events Explore
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"
/event_ids:
get:
tags:
- Events
summary: Event Ids
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"
/events/search:
get:
tags:
- Events
summary: Events Search
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: 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: 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"
/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"
"/events/{event_id}":
get:
tags:
- Events
summary: Event
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"
delete:
tags:
- Events
summary: Delete Event
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"
"/events/{event_id}/retain":
post:
tags:
- Events
summary: Set Retain
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"
delete:
tags:
- Events
summary: Delete Retain
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"
"/events/{event_id}/plus":
post:
tags:
- Events
summary: Send To Plus
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:
allOf:
- $ref: "#/components/schemas/SubmitPlusBody"
title: Body
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"
"/events/{event_id}/false_positive":
put:
tags:
- Events
summary: 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"
"/events/{event_id}/sub_label":
post:
tags:
- Events
summary: Set Sub Label
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"
"/events/{event_id}/description":
post:
tags:
- Events
summary: Set Description
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"
"/events/{event_id}/description/regenerate":
put:
tags:
- Events
summary: Regenerate Description
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
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"
/events/:
delete:
tags:
- Events
summary: Delete Events
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"
"/events/{camera_name}/{label}/create":
post:
tags:
- Events
summary: Create Event
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:
allOf:
- $ref: "#/components/schemas/EventsCreateBody"
default:
source_type: api
score: 0
duration: 30
include_recording: true
draw: {}
title: Body
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"
"/events/{event_id}/end":
put:
tags:
- Events
summary: End Event
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"
"/{camera_name}":
get:
tags:
- Media
summary: Mjpeg Feed
operationId: mjpeg_feed__camera_name__get
parameters:
- name: camera_name
in: path
required: true
schema:
type: string
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"
"/{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:
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"
"/{camera_name}/latest.{extension}":
get:
tags:
- Media
summary: Latest Frame
operationId: latest_frame__camera_name__latest__extension__get
parameters:
- name: camera_name
in: path
required: true
schema:
type: string
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: 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
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{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:
type: string
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"
"/{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:
type: string
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"
/recordings/storage:
get:
tags:
- Media
summary: Get Recordings Storage Usage
operationId: get_recordings_storage_usage_recordings_storage_get
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"/{camera_name}/recordings/summary":
get:
tags:
- Media
summary: Recordings Summary
description: 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:
type: string
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"
"/{camera_name}/recordings":
get:
tags:
- Media
summary: Recordings
description: >-
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:
type: string
title: Camera Name
- name: after
in: query
required: false
schema:
type: number
default: 1733228876.15567
title: After
- name: before
in: query
required: false
schema:
type: number
default: 1733232476.15567
title: Before
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/{camera_name}/start/{start_ts}/end/{end_ts}/clip.mp4":
get:
tags:
- Media
summary: Recording Clip
operationId: recording_clip__camera_name__start__start_ts__end__end_ts__clip_mp4_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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/vod/{camera_name}/start/{start_ts}/end/{end_ts}":
get:
tags:
- Media
summary: Vod Ts
operationId: vod_ts_vod__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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/vod/{year_month}/{day}/{hour}/{camera_name}":
get:
tags:
- Media
summary: Vod Hour No Timezone
description: VOD for specific hour. Uses the default timezone (UTC).
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:
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"
"/vod/{year_month}/{day}/{hour}/{camera_name}/{tz_name}":
get:
tags:
- Media
summary: Vod Hour
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:
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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/vod/event/{event_id}":
get:
tags:
- Media
summary: Vod Event
operationId: vod_event_vod_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: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/snapshot.jpg":
get:
tags:
- Media
summary: Event Snapshot
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"
default: 70
title: Quality
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/events/{event_id}/thumbnail.jpg":
get:
tags:
- Media
summary: Event Thumbnail
operationId: event_thumbnail_events__event_id__thumbnail_jpg_get
parameters:
- name: event_id
in: path
required: true
schema:
type: string
title: Event Id
- 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"
"/{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:
type: string
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"
"/events/{event_id}/snapshot-clean.png":
get:
tags:
- Media
summary: Event Snapshot Clean
operationId: event_snapshot_clean_events__event_id__snapshot_clean_png_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"
"/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
responses:
"200":
description: Successful Response
content:
application/json:
schema: {}
"422":
description: Validation Error
content:
application/json:
schema:
$ref: "#/components/schemas/HTTPValidationError"
"/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"
"/{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:
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
- 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"
"/{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:
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
- 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"
"/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"
"/preview/{file_name}/thumbnail.webp":
get:
tags:
- Media
summary: Preview Thumbnail
description: 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"
"/preview/{file_name}/thumbnail.jpg":
get:
tags:
- Media
summary: Preview Thumbnail
description: 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"
"/{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:
type: string
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"
"/{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:
type: string
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"
"/{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:
type: string
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"
"/{camera_name}/{label}/snapshot.jpg":
get:
tags:
- Media
summary: Label Snapshot
description: >-
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:
type: string
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"
components:
schemas:
AppConfigSetBody:
properties:
requires_restart:
type: integer
title: Requires Restart
default: 1
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
type: object
required:
- username
- password
title: AppPostUsersBody
AppPutPasswordBody:
properties:
password:
type: string
title: Password
type: object
required:
- password
title: AppPutPasswordBody
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
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:
type: boolean
title: False Positive
zones:
items:
type: string
type: array
title: Zones
thumbnail:
type: string
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:
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
EventsCreateBody:
properties:
source_type:
anyOf:
- type: string
- type: "null"
title: Source Type
default: api
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: {}
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
EventsSubLabelBody:
properties:
subLabel:
type: string
maxLength: 100
title: Sub label
subLabelScore:
anyOf:
- type: number
maximum: 1
exclusiveMinimum: 0
- type: "null"
title: Score for sub label
type: object
required:
- subLabel
title: EventsSubLabelBody
ExportRecordingsBody:
properties:
playback:
allOf:
- $ref: "#/components/schemas/PlaybackFactorEnum"
title: Playback factor
default: realtime
source:
allOf:
- $ref: "#/components/schemas/PlaybackSourceEnum"
title: Playback source
default: recordings
name:
type: string
maxLength: 256
title: Friendly name
image_path:
type: string
title: Image Path
type: object
title: ExportRecordingsBody
Extension:
type: string
enum:
- webp
- png
- jpg
- jpeg
title: Extension
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
PlaybackFactorEnum:
type: string
enum:
- realtime
- timelapse_25x
title: PlaybackFactorEnum
PlaybackSourceEnum:
type: string
enum:
- recordings
- preview
title: PlaybackSourceEnum
RegenerateDescriptionEnum:
type: string
enum:
- thumbnails
- snapshot
title: RegenerateDescriptionEnum
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
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
SubmitPlusBody:
properties:
include_annotation:
type: integer
title: Include Annotation
default: 1
type: object
title: SubmitPlusBody
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