-
Notifications
You must be signed in to change notification settings - Fork 709
API (Draft)
null values should be avoided. In requests they are however accepted but will be internally converted to false, 0, or empty string (""), depending on the expected data type.
Returns details about the motionEye server.
-
successful response:
{ "name": string, "version": string, "motion_version": string }
Changes the parameters of the motionEye server.
-
expects:
{ "normal_password": string } -
successful response:
{}
Returns the list of all registered cameras.
-
successful response:
[ { "id": number, "name": string }, ... ]The order of the cameras in the response is the actual order of the camera frames in the UI.
Adds a camera to the server.
-
expects:
{ "type": string, "device": string, "url": string, "username": string, "password": string, "camera_id": number }Depending on the
type, some of the fields may be required and others may be ignored. -
fields:
-
type- the camera type; possible values:-
"v4l2"- V4L2 camera -
"netcam"- network (IP) camera -
"remote"- remote motionEye camera -
"simple"- simple MJPEG camera
-
-
device- the device path, used only by"v4l2"camera type (e.g."/dev/video0") -
url- the netcam or remote motionEye camera URL -
username- the username of the netcam or remote motionEye camera -
password- the password of the netcam or remote motionEye camera -
camera_id- the id of the remote motionEye camera
-
-
successful response:
{ "id": number }-
idis the id of the new camera
-
Removes the camera with the given id from the server.
-
expects:
{} -
successful response:
{}
Returns the device parameters of the camera with the specified id.
-
successful response:
{ "enabled": boolean, "name": string, "type": string, "rotation": number, "resolution": { "width": number, "height": number }, "framerate": number, "brightness": number, "constrast": number, "saturation": number, "hue": number, "auto_brightness": boolean } -
fields:
-
enabled- whether the camera is enabled or not -
name- the camera name (between 1 and 64 characters) -
type- the camera type; possible values:-
"v4l2"- V4L2 camera -
"netcam"- network (IP) camera -
"remote"- remote motionEye camera -
"simple"- simple MJPEG camera
-
-
rotation- camera rotation (in degrees); possible values are0,90,180and270 -
resolution:-
width- the camera resolution width (between 96 and 4096, multiple of 8) -
height- the camera resolution height (between 96 and 4096, multiple of 8)
-
-
framerate- the capturing framerate (between 1 and 30) -
brightness- the camera brightness control (between 0 and 100) -
contrast- the camera contrast control (between 0 and 100) -
saturation- the camera saturation control (between 0 and 100) -
hue- the camera hue control (between 0 and 100) -
auto_brightness- whether the brightness is adjusted automatically or not
-
Changes the device parameters of the camera with the specified id.
-
expects:
{ "enabled": boolean, "name": string, "type": string, "rotation": number, "resolution": { "width": number, "height": number }, "framerate": number, "brightness": number, "constrast": number, "saturation": number, "hue": number, "auto_brightness": boolean }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/device. -
successful response:
{}
Returns the media files configuration of the camera with the specified id.
-
successful response:
{ "disk": { "used": number, "total": number }, "upload_stills": boolean, "upload_movies": boolean, "webhook_url": string, "webhook_method": ["get", "post", "post_form", "post_json"], "command_enabled": boolean, "command_exec": "string" } -
fields:
-
disk.used- the disk usage, in bytes -
disk.total- the total disk capacity, in bytes -
upload_stills- whether the still images are uploaded to the configured upload service or not -
upload_movies- whether the movies are uploaded to the configured upload service or not -
webhook_url- the complete URL to request whenever a media file is created, including any URL-encoded query arguments (up to 512 characters); special tokens:-
%Y- year -
%m- month -
%d- day -
%H- hour -
%M- minute -
%S- second -
%f- media file path
-
-
webhook_method- the HTTP method to use; possible values:-
"get"- a simple HTTP GET -
"post"- a simple HTTP POST without body -
"post_form"- an HTTP POST with form data (URL-encoded) body -
"post_json"- an HTTP POST with JSON body
The fields transmitted in body (where applicable) are in fact the query arguments configured for
webhook_url. -
-
command_enabled- whether the configured command will be executed or not upon the creation of a media file -
command_exec- a command to execute upon the creation of a media file (up to 512 characters); special tokens fromwebhook_urlapply here as well
-
-
expects:
{ "upload_stills": boolean, "upload_movies": boolean, "webhook_url": string, "webhook_method": string, "command_enabled": boolean, "command_exec": "string" }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/media. -
successful response:
{}
Returns the text overlay configuration of the camera with the specified id.
-
successful response:
{ "left": string, "right": string } -
fields:
-
left- the text to overlay on the bottom-left side of the image -
right- the text to overlay on the bottom-left side of the image
Special tokens can be used in both fields, as follows:
* `%Y` - year * `%m` - month * `%d` - day * `%H` - hour * `%M` - minute * `%S` - second * `%T` - HH:MM:SS * `%q` - frame number inside a second * `\n` - new line -
-
expects:
{ "left": string, "right": string }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/overlay. -
successful response:
{}
-
successful response:
{ "snapshot_url": string, "streaming_url": string, "embed_url": string, "enabled": boolean, "auth_mode": ["disabled", "basic", "digest"], "framerate": number, /* 0 - 30 */ "quality": number, /* 0 - 100 */ "resolution_downscale": number, /* 0 - 100 */ "motion_optimization": boolean }
-
expects:
{ "enabled": boolean, "auth_mode": ["disabled", "basic", "digest"], "framerate": number, /* 0 - 30 */ "quality": number, /* 0 - 100 */ "resolution_downscale": number, /* 0 - 100 */ "motion_optimization": boolean }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/streaming. -
successful response:
{}
-
successful response:
{ "mode": ["disabled", "motion-triggered", "interval-snapshots", "all-frames"], "filename": string, "quality": number, /* 0 - 100 */, "interval": number, /* 1 - 86400 */ "preserve": number, /* 0 - 3650 */ }
-
expects:
{ "mode": ["disabled", "motion-triggered", "interval-snapshots", "all-frames"], "filename": string, "quality": number, /* 0 - 100 */, "interval": number, /* 1 - 86400 */ "preserve": number, /* 0 - 3650 */ }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/stills. -
successful response:
{}
-
successful response:
{ "mode": ["disabled", "motion-triggered", "continuous"], "filename": string, "quality": number, /* 0 - 100 */ "format": ["mpeg4", "msmpeg4", "swf", "flv", "mov", "ogg", "mp4", "hevc", "mkv"], "max_length": number, /* 0 - 86400 */ "preserve": number, /* 0 - 3650 */ }
-
expects:
{ "mode": ["disabled", "motion-triggered", "continuous"], "filename": string, "quality": number, /* 0 - 100 */ "format": ["mpeg4", "msmpeg4", "swf", "flv", "mov", "ogg", "mp4", "hevc", "mkv"], "max_length": number, /* 0 - 86400 */ "preserve": number, /* 0 - 3650 */ }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/movies. -
successful response:
{}
-
successful response:
{ "enabled": boolean, "frame_changes": boolean, "threshold": number, /* 0 - 20 */ "noise_level": number, /* 0 - 25 */ "light_switch_detect": boolean, "despeckle_filter": boolean, "event_gap": number, /* 1 - 86400 */ "pre_capture": number, /* 0 - 1000 */ "post_capture": number, /* 0 - 1000 */ "min_frames": number, /* 0 - 1000 */ "mask_mode": ["disabled", "smart", "editable"], "mask_sluggishness": number, /* 1 - 10 */ "mask_lines": number[][], /* 0/1 */ }
-
expects:
{ "enabled": boolean, "frame_changes": boolean, "threshold": number, /* 0 - 20 */ "noise_level": number, /* 0 - 25 */ "light_switch_detect": boolean, "despeckle_filter": boolean, "event_gap": number, /* 1 - 86400 */ "pre_capture": number, /* 0 - 1000 */ "post_capture": number, /* 0 - 1000 */ "min_frames": number, /* 0 - 1000 */ "mask_mode": ["disabled", "smart", "editable"], "mask_sluggishness": number, /* 1 - 10 */ "mask_lines": number[][], /* 0/1 */ }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/motion_detection. -
successful response:
{}
-
successful response:
{ "email_enabled": boolean, "email_from": string, "email_to": string[], "email_smtp_server": string, "email_smtp_port": number, /* 1 - 65535 */ "email_smtp_account": string, "email_smtp_tls": boolean, "email_picture_timespan": number, /* 0 - 60 */ "webhook_enabled": boolean, "webhook_url": string, "webhook_method": ["get", "post", "post_form", "post_json"], "command_enabled": boolean, "command_exec": string }
-
expects:
{ "email_enabled": boolean, "email_from": string, "email_to": string[], "email_smtp_server": string, "email_smtp_port": number, /* 1 - 65535 */ "email_smtp_account": string, "email_smtp_tls": boolean, "email_picture_timespan": number, /* 0 - 60 */ "webhook_enabled": boolean, "webhook_url": string, "webhook_method": ["get", "post", "post_form", "post_json"], "command_enabled": boolean, "command_exec": string }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/notifications. -
successful response:
{}
-
successful response:
{ "mode": ["disabled", "during", "outside"], "monday": [ { "from": number, /* 0 - 23 */ "to": number /* 0 - 59 */ }, ... ], ... }
-
expects:
{ "mode": ["disabled", "during", "outside"], "monday": [ { "from": number, /* 0 - 23 */ "to": number /* 0 - 59 */ }, ... ], ... }All fields are optional and only the specified fields will be updated. For the meaning of each field, see
GET /api/camera/<id>/working_schedule. -
successful response:
{}
home | installation | faq