API Reference

Note

HTTP API functions called from a browser.

views.api.create_monitor(request) → django.http.response.JsonResponse

Create a new monitor.

API Call:

/create_monitor? name=<unique name assigned to monitor>& detector_name=<name of detector>& detector_model=<existing detector model name>& feed_id=<id of existing feed>& log_objects=<comma-separated list of objects (optional)>& notification_objects=<comma-separated list of objects (optional)>& charting_objects=<comma-separated list of objects (optional)>& charting_time_zone=<pytz time zone to display chart (optional)>& charting_time_horizon=<x-axis time horizon for charting (optional)>

Parameters

request – The HTML request. See the parameter descriptions below for constraints and defaults for each parameter.

Returns

views.api.create_stream(request) → django.http.response.JsonResponse

Create a video stream.

API Call:

/create_stream?cam=<camera URL>& time_zone=<pytz time zone>& description=<user defined>

Parameters

request – HTTP request that requires ‘cam’, ‘time_zone’ and ‘description’ arguments. The ‘cam’ argument can be any http address to a video stream or a short-hand youtube video hash. The ‘time_zone’ represents the timezone where the video is sourced from. A ‘description’ is a free-form description of the stream. Stream address and time zones will be validated before being saved. If validation fails, an error will be returned.

Returns

A dictionary of the stream settings that have been set or an error if the stream could not be validated.

views.api.detector_confidence(request) → django.http.response.JsonResponse

Set the confidence that a detector should use when recognizing an object.

API Call:

/detector_confidence? monitor_name=<monitor name>& value=<confidence value from 0 to 1 to set>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘value’ argument. ‘value’ represents the new confidence. The ‘value’ is expected to be a float value between 0 and 1 (inclusive).

Returns

The new value after being set or the old value if it was not set.

views.api.detector_sleep_throttle(request) → django.http.response.JsonResponse

Set the number of seconds that a detector should sleep after performing a detection. Increasing this value will lower the number of detections performed per minute and lower the CPU burden.

API Call:

/detector_sleep_throttle? monitor_name=<monitor name>& value=<throttle value in seconds to set>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘value’ argument. ‘value’ represents the new sleep time to be set.

Returns

The new value after being set or the old value if it was not set.

views.api.get_active_monitors(request) → django.http.response.JsonResponse

Retrieve the currently active monitors hosted by the application.

API Call:

/get_active_monitors

Parameters

request – HTTP request.

Returns

Dictionary of active monitors where each key is the monitor name and value is a dictionary of k,v pairs of monitor parameters and respective values.

views.api.get_all_log_objects(request) → django.http.response.JsonResponse

Get a distinct list of all objects that have been logged by a monitor.

API Call:

/get_all_log_objects? monitor_name=<monitor name>

Parameters

request – HTTP request with a monitor_name argument.

Returns

A list of distinct objects that have been logged by a monitor.

views.api.get_chart_components(request)

Returns a script that will embed a bokeh chart from a bokeh server

views.api.get_detectors(request) → django.http.response.JsonResponse

Return a dictionary of all available detector_machines-DELETE.

API Call:

/get_detectors

Parameters

request – HTML Request. (not used for this function)

Returns

A JsonResponse dictionary of detector_machines-DELETE. {detector_id: {‘id’:, ‘name’: , ‘model’: }}

views.api.get_log_objects(request) → django.http.response.JsonResponse

Retrieve a list of the objects that a monitor will save to the log.

API Call:

/get_log_objects? monitor_name=<monitor name>

Parameters

request – HTTP request that includes a ‘monitor_name’ argument.

Returns

A list of objects that a named monitor will log.

views.api.get_logdata(request)

Retrieve all logdata for a monitor

API Call:

/get_logdata? monitor_name=<monitor name>

Parameters

request – HTTP request.

Returns

Dictionary with three keys: earliest_log_date, latest_log_date, num_log_records. Dates are in ISO format YYYY-MM-DD.

views.api.get_logdata_bokeh(request)

Retrieve all logdata for a monitor

API Call:

/get_logdata_bokeh? monitor_name=<monitor name>

Parameters

request – HTTP request.

Returns

views.api.get_logdata_info(request)

Retrieve statistical data about the logged data for a monitor (earliest_log_date, latest_log_date, num_log_records)

API Call:

/get_logdata_info? monitor_name=<monitor name>

Parameters

request – HTTP request.

Returns

Dictionary with three keys: earliest_log_date, latest_log_date, num_log_records. Dates are in ISO format YYYY-MM-DD.

views.api.get_logged_data_csv(request)

Return all the data logged for a provided monitor. Without any ‘objects’, ‘start_data’ or ‘end_date’, all items are assumed for the missing parameters.

API Call:

/get_logged_data? monitor_name=<monitor name>& start_date=<YYYY-MM-DD>& end_date=<YYYY-MM-DD>& objects=<comma separated list of objects to return>

Parameters

request – request: HTTP request that expects a monitor_name argument.

Returns

A CSV file of logged entries corresponding the provided monitor and filtering arguments

views.api.get_monitor(request) → django.http.response.JsonResponse

Return that configuration values of a specified monitor.

API Call:

/get_monitor?name=<monitor name> <optional> &field=<config field>

Parameters

request – HTTP request that expects a ‘monitor_name’ argument.

Returns

The full set of configured values for a monitor or a k,v dict pair if a field was supplied.

views.api.get_monitors(request) → django.http.response.JsonResponse

Return a list of all monitors configured in the application. Each list element is a dictionary representing the k,v argument/values for each monitor.

API Call:

/get_monitors

Parameters

request – HTTP request.

Returns

List of dictionaries where each dictionary includes the k,v pairs of the monitor values.

views.api.get_notification_objects(request) → django.http.response.JsonResponse

Get a distinct list of all objects that will trigger notifications for a monitor.

API Call:

/get_notification_objects? monitor_name=<monitor name>

Parameters

request – HTTP request with a ‘monitor_name’ argument.

Returns

A list of distinct objects that will trigger a notification.

views.api.get_streams(request) → django.http.response.JsonResponse

Return a dictionary of all available video streams configured for the application.

API Call:

/get_streams

Parameters

request – HTML Request. (not used for this function)

Returns

A JsonResponse dictionary of video streams. {stream: {‘cam’: , ‘time_zone’: , ‘url’: ,’description’: }}

views.api.get_timezones(request)

Return a list of all the supported timezone values.

API Call:

/get_timezones

Returns

List of support timezone values

views.api.get_trained_objects(request) → django.http.response.JsonResponse

Return a list of objects trained by a detector. The detector can be determined by a ‘monitor_name’ or ‘detector_name’.

API Call:

/get_trained_objects? monitor_name=<monitor name>& detector_name=<detector name>

Parameters

request – HTTP request the expects either a ‘detector_name’ or ‘monitor_name’ argument.

Returns

views.api.set_chart_objects(request) → django.http.response.JsonResponse

Set the ‘charting_objects’ of a monitor.

API Call:

/set_chart_objects? monitor_name=<monitor name>& objects=<comma-separated list of objects to toggle>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘objects’ arguments.

Returns

The new list of items after being set.

views.api.set_chart_time_horizon(request) → django.http.response.JsonResponse

Set the x-axis (time horizon) of a chart.

API Call:

/set_chart_time_horizon? monitor_name=<monitor name>& value=<time horizon to set>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘value’ argument. ‘value’ represents the new time horizon to be set. Valid time horizons are: ‘day’, ‘week’, ‘month’, ‘year’, or an integer representing a number of most recent hours to display.

Returns

The new value after being set or the old value if it was not set.

views.api.set_chart_time_zone(request) → django.http.response.JsonResponse

Set the time zone of a chart.

API Call:

/set_chart_time_zone? monitor_name=<monitor name>& value=<time zone to set>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘value’ argument. ‘value’ represents the new time zone to be used. Time zones must adhere to the list of valid time zones supported by the pytz module.

Returns

The new value after being set or the old value if it was not set.

views.api.set_log_interval(request) → django.http.response.JsonResponse

Set the logging interval of a monitor.

API Call:

/set_log_interval? monitor_name=<monitor name>& value=<log interval value to set>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘value’ argument. ‘value’ represents the new log interval to be set.

Returns

The new value after being set or the old value if it was not set.

views.api.set_log_objects(request) → django.http.response.JsonResponse

Set the ‘log_objects’ of a monitor.

API Call:

/set_log_objects? monitor_name=<monitor name>& objects=<comma-separated list of objects to toggle>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘objects’ arguments.

Returns

The new list of items after being set.

views.api.set_notification_objects(request) → django.http.response.JsonResponse

Set the ‘notification_objects’ of a monitor.

API Call:

/set_notification_objects? monitor_name=<monitor name>& objects=<comma-separated list of objects to toggle>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘objects’ arguments.

Returns

The new list of items after being set.

views.api.start_monitor(request)

Start a monitor. Once started, the monitor will begin performing that actions of each enabled service in a loop that can be stopped with stop_monitor().

API Call:

/start_monitor? monitor_name=<monitor name>

Parameters

request – HTTP request that expects a monitor_name argument.

Returns

A message indicating the status of the monitor.

views.api.stop_monitor(request)

Stops an active monitor.

API Call:

/stop_monitor? monitor_name=<monitor name>

Parameters

request – HTTP request that expects a monitor_name argument.

Returns

A message indicating the status of the monitor.

views.api.toggle_chart_objects(request) → django.http.response.JsonResponse

Add or remove objects from the ‘charting_objects’ list in a monitor.

API Call:

/toggle_chart_objects? monitor_name=<monitor name>& objects=<comma-separated list of objects to toggle>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘objects’ arguments.

Returns

The new list of objects after being toggled.

views.api.toggle_log_objects(request) → django.http.response.JsonResponse

Add or remove objects from the ‘log_objects’ list in a monitor.

API Call:

/toggle_log_objects? monitor_name=<monitor name>& objects=<comma-separated list of objects to toggle>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘objects’ arguments.

Returns

The new list of objects after being toggled.

views.api.toggle_notification_objects(request) → django.http.response.JsonResponse

Add or remove objects from the ‘notification_objects’ list in a monitor.

API Call:

/toggle_notification_objects? monitor_name=<monitor name>& objects=<comma-separated list of objects to toggle>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘objects’ arguments.

Returns

The new list of objects after being toggled.

views.api.toggle_service(request)

Toggle a service on or off depending on its current status.

API Call:

/toggle_service? monitor_name=<monitor name>& service=<name of service to toggle on or off ‘log’|’notification’|’chart’>

Parameters

request – HTTP request that expects a ‘monitor_name’ and ‘service’ argument. Supported services are ‘log’, ‘notification’ and ‘chart’.

Returns

The status of the service after toggle is complete.

views.api.update_monitor(request) → django.http.response.JsonResponse

Update parameter values of a monitor.

API Call:

/update_monitor? detector_name=<name of detector>& detector_model=<existing detector model name>& feed_id=<id of existing feed>& log_objects=<comma-separated list of objects (optional)>& notification_objects=<comma-separated list of objects (optional)>& charting_objects=<comma-separated list of objects (optional)>& charting_time_zone=<pytz time zone to display chart (optional)>& charting_time_horizon=<x-axis time horizon for charting (optional)>

Parameters

request – HTTP request that expects a ‘monitor_name’ and argument=value parameter settings for each parameter to set.

Returns

The full list of parameters for the monitor after settings have been applied.