Download OpenAPI specification:Download
FORMAT: 1A
This documentation outlines version 1 of the HTTP API and the calls you can make to the web service backend. This will allow for you to talk directly to the web service without the need for the JavaScript library.
output required | string Value: "json" The output format of the list |
{- "list": [
- {
- "canAutoLogin": false,
- "daysRecordedVideo": 0,
- "managedFeatures": [ ],
- "address": "127.0.0.1",
- "user_permissions": {
- "burn_disc": false,
- "search_cases": false,
- "live_views": false,
- "none": false,
- "export_video": false,
- "ptz": false,
- "search_cameras": false,
- "two_way_audio": false,
- "smart_search": false,
- "live_save_image": false,
- "print_image": false,
- "search_maps": false,
- "live": false,
- "live_cameras": false,
- "video_push": false,
- "search_views": false,
- "live_print_image": false,
- "live_maps": false,
- "search_events": false,
- "event_monitor": false,
- "search": false,
- "save_image": false,
- "quick_replay": false,
- "live_groups": false,
- "search_groups": false
}, - "serial": "18-62-66-32-4E-AF",
- "login": false,
- "group": {
- "audios": [ ],
- "serials": [ ],
- "cameras": [ ],
- "role": 3,
- "name": "",
- "managed": false,
- "softTriggers": [ ],
- "guid": null,
- "priorities": [ ],
- "permissions": {
- "admin": 0,
- "group": 0,
- "user": 0
}
}, - "name": "Server 1",
- "licenseInfo": {
- "macAddress": "",
- "licenseType": -1,
- "licenseKey": "",
- "expirationDate": "",
- "enterprise": false,
- "restricted": false,
- "maxAnalogCameras": 0,
- "expired": false,
- "maxBoards": 0,
- "maxIpCameras": 0
}, - "restricted": false,
- "admin_access_permissions": {
- "cases": false,
- "users": false,
- "views": false
}, - "id": "0",
- "port": 22609,
- "version": "",
- "model": "unknown"
}
], - "CSRF": true
}
There are multiple supported modes of logging into a server.
Note:
The deprecated responseVersion=1
request body is not included in this documentation. It is highly recommended to update any existing requests to the documented methods.
s required | unsigned integer The server ID of the server to login into. |
u required | string The username to login. |
p required | string The password to login. |
responseVersion required | integer Value: 2 The response version format. |
save | integer Enum: 0 1 Request a token is generated for future logins. Available Values:
|
{- "success": true,
- "sessionID": "0dff389d-9e47-466b-88da-c9fb175015b1",
- "canAutoLogin": false,
- "daysRecordedVideo": 0,
- "managedFeatures": [ ],
- "address": "127.0.0.1",
- "user_permissions": {
- "burn_disc": false,
- "search_cases": false,
- "live_views": false,
- "none": false,
- "export_video": false,
- "ptz": false,
- "search_cameras": false,
- "two_way_audio": false,
- "smart_search": false,
- "live_save_image": false,
- "print_image": false,
- "search_maps": false,
- "live": false,
- "live_cameras": false,
- "video_push": false,
- "search_views": false,
- "live_print_image": false,
- "live_maps": false,
- "search_events": false,
- "event_monitor": false,
- "search": false,
- "save_image": false,
- "quick_replay": false,
- "live_groups": false,
- "search_groups": false
}, - "serial": "18-62-66-32-4E-AF",
- "login": false,
- "group": {
- "audios": [ ],
- "serials": [ ],
- "cameras": [ ],
- "role": 3,
- "name": "",
- "managed": false,
- "softTriggers": [ ],
- "guid": null,
- "priorities": [ ],
- "permissions": {
- "admin": 0,
- "group": 0,
- "user": 0
}
}, - "name": "Server 1",
- "licenseInfo": {
- "macAddress": "",
- "licenseType": -1,
- "licenseKey": "",
- "expirationDate": "",
- "enterprise": false,
- "restricted": false,
- "maxAnalogCameras": 0,
- "expired": false,
- "maxBoards": 0,
- "maxIpCameras": 0
}, - "restricted": false,
- "admin_access_permissions": {
- "cases": false,
- "users": false,
- "views": false
}, - "id": "0",
- "port": 22609,
- "version": "",
- "model": "unknown"
}
A logout request will redirect to the HTML to login to the web service. An HTTP response of 302 is sufficient to know that the server has been logged out.
Note: While this method can be performed via a GET request, it is recommended that a logout request is always performed via POST, as documented.
s required | string The server ID of the server to logout. |
login.web
{- "success": true,
- "bios": "American Megatrends Inc. 0314 08/22/2014",
- "modelNumber": "unknown",
- "motherboard": "ASUSTeK COMPUTER INC. Q87M-A/TYCO/SI",
- "os": "Microsoft Windows Embedded Standard 64-bit Service Pack 1 6.1.7601",
- "processor": "Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz",
- "serialNumber": "38-2C-4A-6C-DE-C5",
- "systemName": "exacqVision Hybrid Server",
- "totalMemory": 8192,
- "utf8Enabled": true
}
systemName | string The new system name to apply. |
utf8Enabled | boolean Whether to enable UTF-8 character support on the system. This is an irreversible change, as such, setting this parameter to 'false' is a no-op. |
null
{- "users": [
- {
- "username": "trial user",
- "audit": true,
- "level": 10,
- "isLDAP": false,
- "streams": 1,
- "address": "192.233.103.203:49592",
- "instanceName": ""
}, - {
- "username": "primary",
- "audit": false,
- "level": 5,
- "isLDAP": false,
- "streams": 16,
- "address": "192.233.103.204:58688",
- "instanceName": "primary-guard-station"
}, - {
- "username": "senior guard",
- "audit": false,
- "level": 4,
- "isLDAP": false,
- "streams": 4,
- "address": "192.233.103.221:52938",
- "instanceName": ""
}
], - "success": true
}
{- "plugins": [
- {
- "filename": "curl.exe",
- "isOpen": true,
- "name": "curl",
- "openCode": 0,
- "version": "7.48.0"
}, - {
- "filename": "tdvr_sdk",
- "isOpen": true,
- "name": "tDVR SDK",
- "openCode": 0,
- "version": "1.2.21.105621"
}, - {
- "filename": "dns_sd.dll",
- "isOpen": true,
- "name": "dns_sd",
- "openCode": 0,
- "version": "765.50. 9"
}
], - "success": true
}
{- "serial": {
- "ip": 1,
- "ipTypes": [
- 0,
- 1,
- 2
], - "supports": {
- "advancedLineEnding": true,
- "replace": true,
- "rules": true,
- "sotMarkers": true,
- "xmlFormatting": true
}, - "uart": 4,
- "uses": [
- 0,
- 1,
- 2,
- 3,
- 4
]
}, - "success": true
}
{- "devices": [
- {
- "cameras": [ ],
- "enabled": true,
- "firmware": "7.30.48",
- "host": "172.19.226.202",
- "id": 4849920,
- "isConnected": false,
- "macAddress": "",
- "model": "",
- "name": "Exacq",
- "port": 8801,
- "serial": "",
- "type": "Kantech",
- "user": "user",
- "videoStandard": 0
}, - {
- "cameras": [
- {
- "cameraId": 459520,
- "isPrimary": true,
- "name": "Axis Q1615 Mk II - Disco!",
- "parentCameraId": 459520
}
], - "enabled": true,
- "firmware": "6.25.2.5",
- "host": "172.19.232.26",
- "id": 459520,
- "isConnected": true,
- "macAddress": "AC-CC-8E-62-22-AE",
- "model": "Q1615 Mk II",
- "name": "AXIS VAPIX Q1615 Mk II",
- "port": 80,
- "serial": "AC-CC-8E-62-22-AE",
- "type": "AXIS VAPIX",
- "user": "user",
- "videoStandard": 0
}, - {
- "cameras": [ ],
- "enabled": true,
- "firmware": "",
- "host": "",
- "id": 1310976,
- "isConnected": false,
- "macAddress": "",
- "model": "System Audio",
- "name": "System Audio",
- "port": 0,
- "serial": "",
- "type": "",
- "user": "user",
- "videoStandard": 0
}, - {
- "cameras": [
- {
- "cameraId": 4653312,
- "isPrimary": true,
- "name": "Input 1",
- "parentCameraId": 4653312
}, - {
- "cameraId": 4653313,
- "isPrimary": true,
- "name": "Analog 2 - Curved Wall",
- "parentCameraId": 4653313
}, - {
- "cameraId": 4653314,
- "isPrimary": true,
- "name": "Analog 3 - N Vestibule",
- "parentCameraId": 4653314
}, - {
- "cameraId": 4653315,
- "isPrimary": true,
- "name": "Input 4",
- "parentCameraId": 4653315
}
], - "enabled": true,
- "firmware": "1.2.20.105572",
- "host": "",
- "id": 4653312,
- "isConnected": false,
- "macAddress": "",
- "model": "EXACQ TDVR8016",
- "name": "EXACQ TDVR8016",
- "port": 0,
- "serial": "651S1441008632",
- "type": "",
- "user": "user",
- "videoStandard": 1
}
], - "success": true
}
s required | string The id of the server to which the device should be added. |
enabled required | boolean Whether or not the device should be initially enabled. |
deviceType required | string The type of plugin to use for communicating with this device. This should be one of the plugin names retrieved from [GET /server.web/devices/types]. In general, you should choose the plugin name corresponding to the device manufacturer. |
host required | string The hostname of the device you wish to add. |
port required | number The port number on the device to connect to. |
user required | string The username to use to connect to the device. |
password required | string The password to use to connect to the device. |
null
s required | string The id of the server containing the device. |
id required | number The id of the device that you wish to update. |
enabled | boolean Whether or not the device should be enabled. |
host | string The hostname of the device you wish to add. |
port | number The port number on the device to connect to. |
user | string The username to use to connect to the device. |
password | string The password to use to connect to the device. |
null
{- "deviceTypes": [
- {
- "defaultPort": 80,
- "defaultUser": "username",
- "defaultPassword": "password",
- "name": "ACTi"
}, - {
- "defaultPort": 80,
- "defaultUser": "username",
- "defaultPassword": "password",
- "name": "AXIS VAPIX"
}, - {
- "defaultPort": 80,
- "defaultUser": "username",
- "defaultPassword": "password",
- "name": "American Dynamics"
}
], - "success": true
}
{- "success": true,
- "archiveTargets": [
- {
- "enabled": true,
- "id": 256,
- "type": 1,
- "search": {
- "address": "172.19.232.204",
- "enabled": true,
- "password": "bugatti",
- "username": "admin"
}, - "upload": {
- "address": "172.19.232.204",
- "desiredContentAge": 600,
- "expirationDuration": 1200,
- "expirationType": 2,
- "hasBookmarks": true,
- "mountPoint": "/mnt/archive",
- "password": "upload_pass",
- "percentToUse": 45,
- "username": "upload_user"
}
}, - {
- "enabled": true,
- "id": 512,
- "type": 4,
- "search": {
- "address": "cloud_location.org/searchstuffhere",
- "enabled": true,
- "password": "Exacq.12",
- "username": "admin"
}, - "upload": {
- "address": "cloud_location.org/putstuffhere",
- "hasBookmarks": false,
- "percentToUse": 100
}
}
]
}
s required | Array of strings The session id of the server(s) for which to query event status. |
{- "statuses": [
- {
- "config": {
- "lastUpdated": "2018-06-07T15:55:10Z"
}, - "sessionId": "0"
}, - {
- "config": {
- "lastUpdated": "2018-06-07T15:55:10Z"
}, - "sessionId": "1"
}
], - "success": true
}
s required | string The session id of the server to retrieve the list of cameras. |
output required | string Value: "json" The output response type. |
showAll | boolean Whether to return unused quality streams as cameras. |
{- "timezone": -4,
- "name": "Server 1 Name",
- "restricted": false,
- "Cameras": [
- {
- "digitalPtz": [
- 1
], - "formats": [
- 5,
- 6
], - "frameRate": 25,
- "disabled": 0,
- "ptz": 0,
- "rotation": 0,
- "quality": 5,
- "id": 1704548,
- "d": 2,
- "name": "Camera 1",
- "i": 0,
- "ctx": 0,
- "p": 1703936,
- "state": 0,
- "parentId": 1704458,
- "resolution": {
- "width": 704,
- "height": 576
}, - "OSD": {
- "timezone": 0,
- "position": "none",
- "date": 0,
- "name": 0,
- "time": 0
}
}
]
}
s required | string The session id of the server to target. |
camera required | string The ID of the camera on the targeted server. |
{- "success": true,
- "camera": {
- "cameraId": 459264,
- "parentCameraId": 459264,
- "deviceId": 459264,
- "name": "Axis P3346",
- "inputNumber": 0,
- "osdInfo": {
- "display": 13,
- "position": 8,
- "fontName": "Arial",
- "fontSize": 10,
- "evFontFamily": 74,
- "evFontStyle": 90,
- "evFontWeight": 92,
- "fontColor": 16776960,
- "evFontColor": 16776960
}, - "format": 6,
- "framerate": 15,
- "quality": 7,
- "resolution": {
- "width": 2048,
- "height": 1536
}, - "isCropped": false,
- "isPrimary": true,
- "averageFrameSize": 0,
- "rtspUri": "rtsp://172.19.226.206:65535/459520"
}
}
s required | string The session ID for the server you wish to target. |
camera required | string The ID of the camera to modify. |
name | string A new name for the camera. |
display | number Information configured to be displayed. Bitmask with the following components:
|
position | number Enum: 0 1 2 3 7 8 9 The position of the OSD display. Enumerated:
|
fontName | string The name of the font to use. |
fontSize | number The size of the font. |
evFontFamily | number Enum: 0 70 71 72 73 74 75 76 The desired font family. Enumerated:
|
evFontStyle | number Enum: 0 90 93 94 The desired font styling. Enumerated:
|
evFontWeight | number Enum: 0 91 92 The desired font weight. Enumerated:
|
evFontColor | number The desired RGB-formatted value of the font color. |
backgroundEnabled | boolean Flag denoting whether background is enabled or diabled. |
backgroundColor | number RGB-formatted value of the background color. |
backgroundAlpha | number The alpha value of the background in the range [0, 1] |
null
Retrieving video for a camera, either as a single frame or as the camera's native video stream, is done by a request to video.web. Depending on the requested format, this will return the current frame of the camera's live feed (or, in the case of a search, the current frame in the playback of the search) or open a video stream of the current information.
The video.web endpoint with session, camera, and container format in the path should be used over the endpoint with session and camera in the query parameters, which will be deprecated.
Note: The /video.web endpoint supports streaming live video over a websocket connection. See response type 101 for details.
s required | string The session id of the server of the target camera. |
search_id | string The session id of the search of the target camera. |
camera required | integer The target camera ID. |
format | integer Enum: 0 1 3 4 5 6 7 The format of the requested video:
The value requested must be available for the requested camera. The available values can be found in the |
w | integer The requested width, in pixels, of image. Result will be 4/3 of requested height. |
h | integer The requested height, in pixels, of image. Result will be 3/4 of requested width. |
q | integer [ 1 .. 10 ] The requested image quality. |
iframes | boolean If true, return I-frames only. |
download | string The filename of the attachment to create. When specified the response is sent with a Content-Disposition header set to this field. |
multipart_encode | boolean Return the video stream as a multi-part encoding. Each encoded chunk has a header containing the following information:
This parameter is only valid for the following camera formats:
|
Binary data of the video frame.
s required | string The session id of the server or search of the target camera. |
camera required | integer The target camera ID. |
container |
iframes | boolean If true, return I-frames only. |
Binary data of the video frame.
Retrieve a cached thumbnail image
s required | string The session id of the server of the target camera. |
camera required | integer The target camera ID. |
size | integer Enum: 0 1 2 The requested thumbnail size. Available values:
|
Binary data of the video frame.
Deprecated This endpoint has been deprecated in favor of video.web.
s required | string The session id of the server of the target camera. |
search_id | string The search session id of the search of the target camera. |
camera required | integer The target camera ID. |
w | integer The requested width, in pixels, of image. Result will be 4/3 of requested height. |
h | integer The requested height, in pixels, of image. Result will be 3/4 of requested width. |
q | integer [ 1 .. 10 ] The requested image quality. |
download | string The filename of the attachment to create. When specified the response is sent with a Content-Disposition header set to this field. |
Binary data of the video frame.
s required | string The session id of the server to target. |
camera required | string The ID of the camera on the targeted server. |
{- "Presets": [
- {
- "id": "1",
- "name": "Northwest bulkhead"
}, - {
- "id": "2",
- "name": "Front computer"
}, - {
- "id": "3",
- "name": "Front entrance"
}
]
}
This endpoint fulfills three functions:
Note Outside of a status header, responses from this endpoint are empty. A response of status 200 is sufficient to know actions performed by this endpoint succeeded.
s required | string The session id of the server. |
camera required | number The camera id to target. |
preset required | number A preset ID to apply. |
This endpoint fulfills three functions:
Only specify parameters needed for the action you wish to perform.
s required | string The session id of the server to target. |
camera | string For action (1) above. The ID of the camera from which to create the digital PTZ clone. |
type | number Enum: 1 2 4 8 For action (1) above. The type of digital PTZ camera to create. Enumerated:
|
viewid | string For action (1) above, optional. The ID of a view holding a camera you want to use to apply an initial DPTZ rectangle (prefer to view name; do not send both). |
view | string For action (1) above, optional. The name of a view holding a camera you want to use to apply an initial DPTZ rectangle (prefer view ID if available). |
slot | number For action (1) above, optional. The slot number of the view (specified in the 'view' parameter) containing the desired camera. |
ptz | number For actions (2) and (3) above. The id of the digital PTZ clone. |
dir | string For action (3) above. A composite string describing the direction(s) to check, containing any of the following:
|
{- "success": true,
- "ptzId": "1",
- "height": 1080,
- "width": 1920,
- "camera": "4590080",
- "x": 0,
- "y": 0,
- "server": "0",
- "type": 1
}
s required | string The session id of the server containing the clone. |
ptz required | number The id of the digital PTZ clone. |
action required | string Value: "delete" The value 'delete'. |
null
A view is a pre-defined layout of items (cameras, audio devices, etc.) that is stored for quickly accessing a common viewing screen. Every view is comprised of an n-slot layout into which items are placed.
Views have their own directory structure on the server, allowing views to be grouped as needed.
s required | Array of strings The session id of server[s] from which to retrieve views. |
{- "Folders": {
- "id": 0,
- "folders": {
- "Docking": {
- "id": 1,
- "folders": null
}, - "Front desk": {
- "id": 2,
- "folders": null
}, - "Engineering": {
- "id": 3,
- "folders": null
}, - "Operations": {
- "id": 4,
- "folders": {
- "I.T.": {
- "id": 5,
- "folders": null
}
}
}
}
}, - "Views": [
- {
- "audioInput": {
- "id": "4653441",
- "server": "0"
}, - "camera": [
- {
- "camera": 4653312,
- "server": "0"
}
], - "description": "",
- "folder": 2,
- "id": "view:__S_",
- "items": [
- {
- "id": "4653441",
- "server": "0",
- "slot": 0,
- "type": 2
}, - {
- "id": "4653312",
- "server": "0",
- "slot": 0,
- "type": 1
}
], - "layout": 1,
- "layout_info": {
- "height": 1,
- "length": 1,
- "name": "",
- "slots": [
- {
- "height": 1,
- "index": 0,
- "width": 1,
- "x": 0,
- "y": 0
}
], - "widescreen": false,
- "width": 1
}, - "name": "TV w/Audio",
- "order": 49
}, - {
- "camera": [
- null,
- null,
- {
- "camera": 4260352,
- "server": "0"
}, - null,
- null,
- null,
- null,
- null,
- null,
- {
- "camera": 4653317,
- "server": "0"
}, - null,
- null
], - "description": "",
- "folder": 2,
- "id": "analog:__U_fredbloggs",
- "items": [
- {
- "id": "4260352",
- "server": "0",
- "slot": 2,
- "type": 1
}, - {
- "id": "4653317",
- "server": "0",
- "slot": 9,
- "type": 1
}
], - "layout": 12,
- "layout_info": {
- "height": 4,
- "length": 12,
- "name": "",
- "slots": [
- {
- "height": 1,
- "index": 0,
- "width": 1,
- "x": 0,
- "y": 0
}, - {
- "height": 1,
- "index": 1,
- "width": 1,
- "x": 1,
- "y": 0
}, - {
- "height": 1,
- "index": 2,
- "width": 1,
- "x": 2,
- "y": 0
}, - {
- "height": 1,
- "index": 3,
- "width": 1,
- "x": 3,
- "y": 0
}, - {
- "height": 1,
- "index": 4,
- "width": 1,
- "x": 0,
- "y": 1
}, - {
- "height": 1,
- "index": 5,
- "width": 1,
- "x": 1,
- "y": 1
}, - {
- "height": 1,
- "index": 6,
- "width": 1,
- "x": 2,
- "y": 1
}, - {
- "height": 1,
- "index": 7,
- "width": 1,
- "x": 3,
- "y": 1
}, - {
- "height": 1,
- "index": 8,
- "width": 1,
- "x": 0,
- "y": 2
}, - {
- "height": 1,
- "index": 9,
- "width": 1,
- "x": 1,
- "y": 2
}, - {
- "height": 1,
- "index": 10,
- "width": 1,
- "x": 2,
- "y": 2
}, - {
- "height": 1,
- "index": 11,
- "width": 1,
- "x": 3,
- "y": 2
}
], - "widescreen": false,
- "width": 3
}, - "name": "Analog Demo",
- "order": 52
}
]
}
s required | Array of strings The session id of server[s] from which to retrieve tours. |
{- "folders": {
- "id": "0",
- "name": "",
- "folders": [
- {
- "id": "1",
- "name": "Personell",
- "folders": [
- {
- "id": "2",
- "name": "Manager stations",
- "folders": [ ]
}, - {
- "id": "3",
- "name": "Retail kiosks",
- "folders": [ ]
}
]
}, - {
- "id": "4",
- "name": "empty folder",
- "folders": [ ]
}
]
}, - "success": true,
- "tours": [
- {
- "description": "All points of entry.",
- "folder_id": "0",
- "name": "Entrances",
- "views": [
- {
- "dwell": 5,
- "index": 1,
- "name": "Front door"
}, - {
- "dwell": 5,
- "index": 2,
- "name": "Back door"
}
]
}, - {
- "description": "All manned areas of the facility.",
- "folder_id": "1",
- "name": "Guard stations",
- "views": [
- {
- "dwell": 5,
- "index": 1,
- "name": "Front guard post"
}, - {
- "dwell": 10,
- "index": 2,
- "name": "Rear guard tower"
}, - {
- "dwell": 5,
- "index": 3,
- "name": "Northwesternmost guard kiosk"
}
]
}
]
}
Soft triggers are "emulated" triggers on the server, effectively acting as virtual input triggers. These are commonly used to trigger different events in both event linking and event monitoring.
Note: Soft triggers only retain their "on" state for a short period of time (~3 seconds) before reverting back to an off state. To keep a trigger in an "on" state, set the state at a regular interval (recommended 1Hz).
s required | string The session id of the server for the soft trigger to set. |
tid required | integer The ID of the soft trigger to set. |
state required | string Enum: "off" "on" The triggered state of the soft trigger |
Invalid Request
Groups are collections of items across multiple servers. Because of this, when requesting groups, it is important to request groups for all servers needed in one request to allow the groups to be properly merged.
For example, if there is a group "My Group" with items from both servers "1" and "2", the following requests will return the following different results:
groups.web?s=1
: Returns "My Group" with only items from server "1"groups.web?s=2
: Returns "My Group" with only items from server "2"groups.web?s=1&s=2
: Returns a single "My Group" group with items from both servers "1" and "2"s required | Array of strings The session id(s) of the server(s) for the groups. |
{- "success": true,
- "groups": [
- {
- "id": "1_group1",
- "rootServer": "1",
- "name": "Group 1",
- "description": "Group 1 Description",
- "parent": "0",
- "icon": 2,
- "items": [
- {
- "id": "123",
- "server": "1",
- "type": 1
}
]
}, - {
- "id": "1_group2",
- "rootServer": "1",
- "name": "Group 2",
- "description": "",
- "parent": "0",
- "icon": 5,
- "items": [
- {
- "id": "456",
- "server": "1",
- "type": 2
}, - {
- "id": "789",
- "server": "1",
- "type": 5
}
]
}
]
}
A map is essentially a group (see Groups) associated with an image, such as a floor plan or traffic diagram. Additionally, items in a map carry positional information such that they can be rendered on top of the associated image.
This endpoint performs two separate functions:
s | Array of strings The session id(s) of the server(s) for the maps. |
map | string The ID of a map for which to retrieve its image. |
{- "success": true,
- "maps": [
- {
- "description": "",
- "id": "0_/America",
- "items": [
- {
- "caption": 0,
- "flags": 0,
- "id": "/America/Washington",
- "rotation": 0,
- "server": "0",
- "shape": 2,
- "type": 4,
- "x": 546,
- "y": 736
}, - {
- "caption": 0,
- "flags": 0,
- "id": "dc8e8f28-304b-42a9-97cf-bb19a4cff92f",
- "rotation": 0,
- "server": "0",
- "shape": 2,
- "type": 9,
- "x": 1171,
- "y": 582
}
], - "name": "America",
- "parent": "",
- "rootServer": "0"
}, - {
- "description": "",
- "id": "0_/America/Washington",
- "items": [
- {
- "caption": 0,
- "flags": 0,
- "id": "/America/Washington/WhiteHouse",
- "rotation": 0,
- "server": "0",
- "shape": 2,
- "type": 4,
- "x": 584,
- "y": 422
}, - {
- "caption": 0,
- "flags": 0,
- "id": "/America/Washington/CapitolHill",
- "rotation": 0,
- "server": "0",
- "shape": 2,
- "type": 4,
- "x": 617,
- "y": 123
}, - {
- "caption": 0,
- "flags": 0,
- "id": "/America/Washington/Courthouse",
- "rotation": 0,
- "server": "0",
- "shape": 2,
- "type": 4,
- "x": 123,
- "y": 101
}
], - "name": "Washington",
- "parent": "/America",
- "rootServer": "0"
}
]
}
A camera may be associated with a variety of other items. These items are grouped by camera and are known as associations.
Clients may wish to be aware of these associations for enhancing a user experience. For example, the information from this endpoint may be used to construct an overlay of an associated audio device for a camera.
s required | Array of strings The session id of server[s] from which to retrieve associations. |
{- "success": true,
- "associations": [
- {
- "backgroundColor": 0,
- "cameraId": 459264,
- "fontColor": 16776960,
- "fontFamily": 74,
- "fontName": "Arial",
- "fontSize": 10,
- "fontStyle": 90,
- "fontWeight": 92,
- "guid": "335196f4-70b4-4cab-b16c-c176607faf71",
- "items": [
- {
- "id": 459264,
- "position": 0,
- "statusOnly": false,
- "type": 1
}
], - "label": 0,
- "opacity": 50,
- "overlayStyle": 0,
- "position": 4,
- "sessionId": "0"
}, - {
- "backgroundColor": 0,
- "cameraId": 459520,
- "fontColor": 16776960,
- "fontFamily": 74,
- "fontName": "Arial",
- "fontSize": 10,
- "fontStyle": 90,
- "fontWeight": 92,
- "guid": "c5c9f254-5990-4bec-b8f7-2e7b43893803",
- "items": [
- {
- "id": 2097205,
- "position": 0,
- "statusOnly": true,
- "type": 9,
- "extra": 2
}, - {
- "id": 459520,
- "position": 1,
- "statusOnly": false,
- "type": 1
}
], - "label": 0,
- "opacity": 99,
- "overlayStyle": 0,
- "position": 4,
- "sessionId": "0"
}
]
}
s required | string The session id of the server containing the camera. |
camera required | number The id of the camera for which to retrieve its associations. |
{- "success": true,
- "association": {
- "backgroundColor": 0,
- "cameraId": 459520,
- "fontColor": 16776960,
- "fontFamily": 74,
- "fontName": "Arial",
- "fontSize": 10,
- "fontStyle": 90,
- "fontWeight": 92,
- "guid": "c5c9f254-5990-4bec-b8f7-2e7b43893803",
- "items": [
- {
- "extra": 2,
- "id": 2097205,
- "position": 0,
- "statusOnly": true,
- "type": 9
}, - {
- "id": 459520,
- "position": 1,
- "statusOnly": false,
- "type": 1
}
], - "label": 0,
- "opacity": 99,
- "overlayStyle": 0,
- "position": 4,
- "sessionId": "0"
}
}
s required | Array of strings The session ID(s) of server(s) from which to retrieve profiles. |
{- "profiles": [
- {
- "description": "",
- "events": [
- {
- "confirm": false,
- "guid": "c1ab6fbd-a2fa-4d5a-932e-1034448356ae",
- "message": "",
- "priority": 1,
- "source": {
- "any": false,
- "extra": "-1",
- "id": "2097202",
- "server": "0",
- "type": 1
}, - "target": {
- "extra": "-1",
- "server": "0",
- "type": 4,
- "value": "4653312"
}, - "timeout": 0
}
], - "name": "TV",
- "showEventsList": false,
- "showNewestEvent": false,
- "type": 0
}, - {
- "description": "Motion events for important cameras. Switch video playback to these cameras on motion.",
- "events": [
- {
- "confirm": true,
- "guid": "ed1c834c-8a93-11e8-b975-83767dc625c1",
- "message": "Motion - deposit box room",
- "priority": 1,
- "source": {
- "any": false,
- "extra": "-1",
- "id": "309023",
- "server": "0",
- "type": 5
}, - "target": {
- "extra": "-1",
- "server": "0",
- "type": 4,
- "value": "309023"
}, - "timeout": 0
}, - {
- "confirm": true,
- "guid": "dffbd050-8a93-11e8-9ebe-4324f94ab41e",
- "message": "Motion - gold vault",
- "priority": 1,
- "source": {
- "any": false,
- "extra": "-1",
- "id": "20209330",
- "server": "0",
- "type": 5
}, - "target": {
- "extra": "-1",
- "server": "0",
- "type": 4,
- "value": "20209330"
}, - "timeout": 0
}
], - "name": "Critical Motion",
- "showEventsList": false,
- "showNewestEvent": false,
- "type": 0
}
], - "success": true
}
name required | string The name of the new profile. |
description | string A description of this profile. |
type required | number Enum: 0 1 The profile type. Enumerated:
|
showEventsList | boolean Whether to show the list of events on receipt. |
showNewestEvent | boolean Whether to show only the newest event on receipt. |
eventConfirm | boolean Whether event receipts require confirmation. |
eventMessage | string A message to be displayed on event receipt. |
eventTimeout | number [ 0 .. 60 ] The number of seconds after which this event times out if triggered and not acknowledged. |
eventPriority | number [ 1 .. 10 ] The alert priority of this event relative to others. |
eventSourceId | number The identifier of the server entity (camera, serial profile, etc.) that can trigger this event. Carries no meaning if the 'eventSourceAny' property is true. |
eventSourceServer required | string The session ID of the server containing the source. |
eventSourceType required | Enum: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 The type of this event source. Enumerated:
|
eventSourceExtra | number An additional identifier needed to trigger the event, if required. This value is necessary for the following 'eventSourceType' values:
|
eventSourceAny | boolean Whether this event can be triggered by any entity associated with the source type. |
eventTargetValue | string An identifier necessary to complete the client action, if applicable. The meaning of the value depends on the 'eventTargetType' property:
|
eventTargetServer required | string The session ID of the server containing the target ID. |
eventTargetType required | number Enum: 1 2 3 4 5 6 7 The type of client action to perform when the event is triggered. Enumerated:
|
eventTargetExtra | string An extra identifier necessary to complete the client action, if applicable. The meaning of the value depends on the 'eventTargetType' property:
|
eventTargetFolders | string The folder path to the event target, if applicable. |
{- "profile": {
- "description": "Motion events for important cameras. Switch video playback to these cameras on motion.",
- "events": [
- {
- "confirm": true,
- "guid": "ed1c834c-8a93-11e8-b975-83767dc625c1",
- "message": "Motion - deposit box room",
- "priority": 1,
- "source": {
- "any": false,
- "extra": "-1",
- "id": "309023",
- "server": "0",
- "type": 5
}, - "target": {
- "extra": "-1",
- "server": "0",
- "type": 4,
- "value": "309023"
}, - "timeout": 0
}, - {
- "confirm": true,
- "guid": "dffbd050-8a93-11e8-9ebe-4324f94ab41e",
- "message": "Motion - gold vault",
- "priority": 1,
- "source": {
- "any": false,
- "extra": "-1",
- "id": "20209330",
- "server": "0",
- "type": 5
}, - "target": {
- "extra": "-1",
- "server": "0",
- "type": 4,
- "value": "20209330"
}, - "timeout": 0
}
], - "name": "Critical Motion",
- "showEventsList": false,
- "showNewestEvent": false,
- "type": 0
}, - "success": true
}
s required | string The session ID of the server(s) that contain the profile. This parameter is repeated for each session ID. |
name required | string The name of the profile to update. |
description | string A description of this profile. |
type | number Enum: 0 1 The profile type. Enumerated:
|
showEventsList | boolean Whether to show the list of events on receipt. |
showNewestEvent | boolean Whether to show only the newest event on receipt. |
null
s required | string The session ID of the server(s) that contain the profile. This parameter is repeated for each session ID. |
name required | string The name of the profile to delete. |
null
profile required | string The name of the profile for which to list triggered links. |
s required | Array of strings The session ID(s) of the server(s) containing the target profile. |
duration | number [ 0 .. 60 ] Default: 5 The duration into the past, in seconds, for which to retrieve links. Triggered links are stored for a maximum of 60 seconds. |
{- "success": true,
- "triggeredEvents": [
- {
- "extraId": null,
- "guid": "170eb633-2c0b-9cb2-0b89-3806a992d0eb",
- "id": 4653323,
- "name": "allmotion",
- "sessionId": 0
}, - {
- "extraId": null,
- "guid": "170eb633-2c0b-9cb2-0b89-3806a992d0eb",
- "id": 4653317,
- "name": "allmotion",
- "sessionId": 0
}, - {
- "extraId": null,
- "guid": "170eb633-2c0b-9cb2-0b89-3806a992d0eb",
- "id": 4653323,
- "name": "allmotion",
- "sessionId": 0
}
]
}
profile required | string The name of the profile to target. |
eventConfirm | boolean Whether event receipts require confirmation. |
eventMessage | string A message to be displayed on event receipt. |
eventTimeout | number [ 0 .. 60 ] The number of seconds after which this event times out if triggered and not acknowledged. |
eventPriority | number [ 1 .. 10 ] The alert priority of this event relative to others. |
eventSourceId | number The identifier of the server entity (camera, serial profile, etc.) that can trigger this event. Carries no meaning if the 'eventSourceAny' property is true. |
eventSourceServer required | string The session ID of the server containing the source. |
eventSourceType required | Enum: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 The type of this event source. Enumerated:
|
eventSourceExtra | number An additional identifier needed to trigger the event, if required. This value is necessary for the following 'eventSourceType' values:
|
eventSourceAny | boolean Whether this event can be triggered by any entity associated with the source type. |
eventTargetValue | string An identifier necessary to complete the client action, if applicable. The meaning of the value depends on the 'eventTargetType' property:
|
eventTargetServer required | string The session ID of the server containing the target ID. |
eventTargetType required | number Enum: 1 2 3 4 5 6 7 The type of client action to perform when the event is triggered. Enumerated:
|
eventTargetExtra | string An extra identifier necessary to complete the client action, if applicable. The meaning of the value depends on the 'eventTargetType' property:
|
eventTargetFolders | string The folder path to the event target, if applicable. |
{- "success": true,
- "event": {
- "confirm": false,
- "guid": "c1ab6fbd-a2fa-4d5a-932e-1034448356ae",
- "message": "",
- "priority": 1,
- "source": {
- "any": false,
- "extra": "-1",
- "id": "2097202",
- "server": "0",
- "type": 1
}, - "target": {
- "extra": "-1",
- "server": "0",
- "type": 4,
- "value": "4653312"
}, - "timeout": 0
}
}
profile required | string The name of the profile containing the link. |
guid required | string The GUID of the link to be updated. |
eventConfirm | boolean Whether event receipts require confirmation. |
eventMessage | string A message to be displayed on event receipt. |
eventTimeout | number [ 0 .. 60 ] The number of seconds after which this event times out if triggered and not acknowledged. |
eventPriority | number [ 1 .. 10 ] The alert priority of this event relative to others. |
eventSourceId | number The identifier of the server entity (camera, serial profile, etc.) that can trigger this event. Carries no meaning if the 'eventSourceAny' property is true. |
eventSourceServer required | string The session ID of the server containing the source. |
eventSourceType required | Enum: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 The type of this event source. Enumerated:
|
eventSourceExtra | number An additional identifier needed to trigger the event, if required. This value is necessary for the following 'eventSourceType' values:
|
eventSourceAny | boolean Whether this event can be triggered by any entity associated with the source type. |
eventTargetValue | string An identifier necessary to complete the client action, if applicable. The meaning of the value depends on the 'eventTargetType' property:
|
eventTargetServer required | string The session ID of the server containing the target ID. |
eventTargetType required | number Enum: 1 2 3 4 5 6 7 The type of client action to perform when the event is triggered. Enumerated:
|
eventTargetExtra | string An extra identifier necessary to complete the client action, if applicable. The meaning of the value depends on the 'eventTargetType' property:
|
eventTargetFolders | string The folder path to the event target, if applicable. |
null
profile required | string The name of the profile containing the link. |
s required | string The session ID of the server(s) that contain the profile. This parameter is repeated for each session ID. |
guid required | string The GUID of the link to be deleted. |
null
id required | string The push notification client ID. |
profile required | string The event monitoring profile name. |
guid required | string The GUID of the event to register. |
{- "success": true
}
id required | string The push notification client ID. |
profile required | string The event monitoring profile name. |
guid required | string The GUID of the event to register. |
{- "success": true
}
s required | Array of strings The session ID(s) of server(s) from which to retrieve active events. |
filter | Array of integers Items Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 The type(s) of events to list. All types will be listed if none are provided. Enumerated:
|
{- "success": true,
- "events": [
- {
- "device": 4653312,
- "event": 1,
- "extra": {
- "item": 4653321,
- "type": 1
}, - "server": "0",
- "time": "2018-07-20T13:22:50Z"
}, - {
- "device": 4653312,
- "event": 1,
- "extra": {
- "item": 4653318,
- "type": 1
}, - "server": "0",
- "time": "2018-07-20T13:25:05Z"
}, - {
- "device": 4653312,
- "event": 1,
- "extra": {
- "item": 4653322,
- "type": 1
}, - "server": "0",
- "time": "2018-07-20T13:25:10Z"
}, - {
- "device": 4005,
- "event": 14,
- "server": "0",
- "time": "2018-07-19T12:33:19Z"
}, - {
- "event": 12,
- "server": "0",
- "time": "2018-00-01T12:00:00Z"
}
]
}
s required | Array of strings The session ID(s) of server(s) from which to retrieve devices. |
{- "success": true,
- "devices": [
- {
- "auth": 1,
- "connectionStatus": 3,
- "enabled": true,
- "firmware": "7.30.48",
- "host": "172.19.276.32",
- "id": 4849920,
- "name": "Exacq",
- "port": 8801,
- "serial": "",
- "sessionId": "0",
- "type": "Kantech",
- "user": "administrator"
}, - {
- "auth": 1,
- "connectionStatus": 0,
- "enabled": false,
- "firmware": "4.17",
- "host": "172.19.277.64",
- "id": 4849970,
- "name": "Exacq - DSC",
- "port": 8801,
- "serial": "",
- "sessionId": "0",
- "type": "DSC",
- "user": "dsc_admin"
}
]
}
s required | string The session ID of the server with the device. |
device required | integer The ID of the security device. |
{- "sensors": [
- {
- "alarm": [ ],
- "availableActions": [
- 10,
- 11,
- 12
], - "defaultActionTimeout": 10,
- "deviceId": 4849920,
- "direction": 0,
- "inputs": [ ],
- "maxActionTimeout": 65535,
- "name": "Exacq Fishers, Door contact -> Exacq Fishers Operations Door (01.001)",
- "sensorId": 4849921,
- "sessionId": 0,
- "status": [
- 1,
- 21
], - "statusTimestamp": "2018-07-25T20:23:20Z",
- "type": 1
}, - {
- "alarm": [
- 1
], - "availableActions": [
- 1,
- 2,
- 7,
- 8,
- 9
], - "defaultActionTimeout": 10,
- "deviceId": 4849920,
- "direction": 2,
- "inputs": [
- 4849923,
- 4849924,
- 4849930,
- 4849931
], - "maxActionTimeout": 65535,
- "name": "Inner operations access point",
- "sensorId": 4849932,
- "sessionId": 0,
- "status": [
- 1,
- 3,
- 9,
- 13,
- 15,
- 21
], - "statusMessage": "Access granted",
- "statusTimestamp": "2018-07-25T20:25:46Z",
- "type": 5
}
], - "success": true
}
s required | string The session ID of the server containing the device. |
device required | integer The ID of the security device. |
sensor required | integer The ID of the sensor on the device. |
token required | string A security device authentication token retrieved from logging in. |
action required | integer Enum: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 The action to perform. Note that not all actions are relevant for all sensors. Values:
|
timeout | integer A number of seconds after which to timeout if the sensor is not responding. |
{- "success": true,
- "actionSuccessful": true,
- "operatorStatus": 0,
- "deviceId": 4849920,
- "sensorId": 4849921
}
s required | string The session ID of the server containing the device. |
device required | integer The ID of the security device. |
expiration required | string An RFC-3339 timestamp specifying the time at which the login should become invalid. The maximum duration is 30 days from the present date, values that would constitute a greater duration are capped at this value. |
username required | string The username used to log in. |
password required | string The password for the username |
{- "success": true,
- "token": "1bd7c559-48a6-4acb-b4bf-e342aaa18e75",
- "expiration": "2018-07-25T20:25:46Z",
- "sensors": [
- 4849921,
- 4849922
]
}
device required | integer The ID of the device that has been logged in. |
token required | string The token that was retrieved from the login request. |
{- "success": true,
- "valid": true
}
All configuration for the service requires a login token, generated by the Login method. This generated token is valid for a duration of 15 minutes, at which point a new token must be generated.
u required | string The username of the web service administrative account. |
p required | string The password of the web service administrative account. |
{- "success": true,
- "expires": "Mon Jan 2 15:04:05 -0700 MST 2006"
}
{- "success": true,
- "username": "admin",
- "accessLevel": 2
}
username required | string The username to set. |
password | string The new password to set. |
accessLevel required | integer Enum: 0 1 2 The level of access restriction to enforce over the service config API. Enumerated:
|
localhostRestriction | boolean DEPRECATED. Provide the Whether to restrict access to the service configuration to requests originating from the localhost. This parameter will be ignored if the |
null
{- "success": true,
- "name": "My Webservice",
- "url": "www.mywebservice.com",
- "ports": {
- "http": 80,
- "https": 443,
- "ws": 8082,
- "wss": 8083
}, - "csrf": true,
- "loginExpiration": 30,
- "inactivityTimeout": 5,
- "autocomplete": true,
- "relay": false,
- "httpPolicy": 2
}
name required | string The friendly name of the web service. |
url required | string The external URL of the web service. |
http required | integer The listening port for HTTP traffic. |
https required | integer The listening port for HTTPS traffic. If SSL is not enabled this value may be 0. |
ws required | integer The listening port for Web Socket traffic. |
wss required | integer The listening port for Secure Web Socket traffic. If SSL is not enabled this value may be 0. |
csrf required | boolean Whether to enable CSRF protection on state-changing calls. |
loginExpiration required | integer >= 0 |
inactivityTimeout required | integer >= 0 The default duration of inactivity for a web client before disconnecting video. |
autocomplete | boolean Whether to enable or disable autocomplete on forms in the web client. |
relay | boolean Whether to enable external relay URL. |
httpPolicy | integer Enum: 0 1 2 The HTTP policy to enforce. Options:
|
null
{- "success": true,
- "type": 1
}
Note: In addition to removing the configuration, this will delete any existing certificate and key from the file system. Back up any copies of the certificate and key before performing a delete.
null
{- "success": true,
- "sslConfig": {
- "enabled": true,
- "commonName": "x1.le.com",
- "domains": "x1.le.com, x2.le.com",
- "valid": true,
- "expires": "2018-03-20T15:20:00Z"
}
}
certificate required | string The certificate PEM data. |
privateKey required | string The private key PEM data. If the key is password encrypted, it must be in DES, 3DES, AES128, AES192, or AES256 format and contain a DEK header. |
password | string Password for the private key, if applicable. |
chain | string A certificate chain file, if applicable. |
domain | string The domain name to use. Will be parsed from the certificate file if not specified. |
null
{- "success": true,
- "sslConfig": {
- "enabled": true,
- "commonName": "x1.le.com",
- "domains": "x1.le.com, x2.le.com",
- "valid": true,
- "expires": "2018-03-20T15:20:00Z"
}, - "autoRenew": "true"
}
Note: PEM data provided as part of this request may come either as-is on a multipart/form-data upload, or encoded as base-64 in the URI
domain | string The domain (CN) for which to request a certificate. Defaults to the configured external URL of the webservice if not provided. |
sans | string Any alternative domains to include with the certificate request. This value may be present on the URI multiple times, with one occurence per SAN. |
autoRenew | boolean Whether or not the certificate should be automatically renewed. ACME-provisioned certificates last 90 days, and renewal will be attempted when the certificate is 30 days or less from expiration. |
acmeServer | string The directory URL of the ACME server you wish to use. The Let's Encrypt production URL will be used if none is specified, which should be sufficient for most configurations. |
privateKey | string An RSA private key, with a minimum length of 2048 bytes, to use with the ACME certificate. A key will be created for you if not provided. |
{- "success": true,
- "token": "ec213cdc-3eca-42af-8c58-d2dc6f783c87"
}
{- "success": true,
- "timeout": 10
}
action required | string Value: "updatecheck" The value 'updatecheck'. |
updates_file required | string The location of an evFileInfo manifest containing information about updates. |
{- "success": true,
- "update_info": [
- {
- "version": "9.2.0.127940",
- "total_file_size": 94434530,
- "update_type": "Recommended"
}
]
}
action required | string Value: "downloadupdatestatus" The value 'downloadupdatestatus'. |
version required | string The version for which you wish to check the download status. |
{- "success": true,
- "status": 1,
- "current_file_size": 58842316,
- "total_file_size": 94434530
}
{- "success": true,
- "servers": [
- {
- "id": 0,
- "address": "10.24.32.64",
- "port": 22609,
- "timeout": 10,
- "passthrough": true,
- "user": "admin",
- "password": "admin256",
- "powerUser": false,
- "powerUserUsername": "admin",
- "powerUserPassword": "admin256",
- "friendlyName": "Web Service API",
- "status": {
- "passthrough": 1,
- "powerUser": 0
}
}
]
}
address required | string The server address. |
port required | number The server port. |
timeout | number The timeout, in seconds, to apply to requests to the server. Supplying 0 will use the default. |
passthrough required | boolean Whether passthrough login is configured. |
user | string The passthrough username. Required if passthrough is set to true. |
password | string The passthrough password. Required if passthrough is set to true. |
powerUser required | boolean Whether power user login is configured. |
powerUserUsername | string The power user username. Required if powerUser is set to true. |
powerUserPassword | string The power user password. Required if powerUser is set to true. |
null
id required | number The ID of the server you wish to update. |
address required | string The server address. |
port required | number The server port. |
timeout | number The timeout, in seconds, to apply to requests to the server. Supplying 0 will use the default. |
passthrough required | boolean Whether passthrough login is configured. |
user | string The passthrough username. Required if passthrough is set to true. |
password | string The passthrough password. Required if passthrough is set to true. |
powerUser required | boolean Whether power user login is configured. |
powerUserUsername | string The power user username. Required if powerUser is set to true. |
powerUserPassword | string The power user password. Required if powerUser is set to true. |
{- "success": true,
- "restart": false,
- "id": 8,
- "passthroughStatus": 1,
- "powerUserStatus": 0
}
{- "success": true,
- "ini": "/UBcor1xgyPKlnXtT0UmZYongEAW+8Q86k72DTBejhJ0xx63xqRtRJpv4PDMmWylRhtgdS+4T5hlXCIiFND04qiM4stjyNb5zIVh7xsIWMZaCyjXu2eqp/po8VjB9Jbbjb0D7i+T5GrjHY9C3UNG5NotMSJAM1DqBUi+21mpDFCEEuTutsAU4lJbFvTA081Ee2/mflijB81pudikLSft+D5v1dwmDvmp6QzCSm3OGhZZZtFEvU9huzN4x5P8WmbPUAkFvylq3jggiHBr/ACVZE4zkiIhiOhva/vUYqnzApGFRNm6v1Lk29ZQTYCOa38AdboCGtuaty7RXzrApPkks7m5tj6id+Tf2wjHBcYZy5lAi+7TdST9t3zWVvDWz518zAezAVG2VFPtBgudpN5XsehLNp8dQuOb1yBUFRGVUIjl5ls6V58nJyuZ1sckG7djL/D58k8y4M3/GvcvJVFKc4iIPXr3Js7U6dYRArQrywAf2XPZbpbWSV4Ao4NJShjp80H9lzlbPeYMkrDhpfFlJk4ZvVUaR6cDXMUrmaYgDWJNZKHbTl9s45lASR2sjOChMsotlxEnYgkBRJrv+YJNqbUlSRTzrD9Djr2kQ0CkrNVnl2p/Awq3wK3uoI88IXB2QHSiUk5B4Q5ndLv5zewtzGwx9FqvXrzgVnfwxbAwmpiDm2jFz/Nbd7q2JNIJ7bMswyyfiPq80VvgBtYasEcbuF/TKbVRxT5rj9Tybyq5SDGUJS4iUzKMYi9guReqLHESgMkdqadxtRg3K+eS0ZHT9cs7uMbAhwYdHepGkrPtsbgyNVGFo2TtdAot6Et/M95t5Q38wDo6MRSMwfBcC10Gp5/LD7EqQDoweCOfz3mPxRR9+IrdUI11e2w+DmQHaPXaUZ7ixb2046a29tTgcPj1PDf0T/Z2Ynfk9wCC07rge+3qwPb1QnQpsw3HWM1lia/D0noP08C7AGhlilnJifQFDqeJx/hVikOGe16VHGbQCr2bAyGG5jAqz5RHv9NsgfKMOpB9RN2M8i0KiyuqNyH94w=="
}
ini required | string The XDV content, encrypted and wrapped in base64 encoding. If provided on a multipart form, provide the raw encrypted content of the XDV. |
{- "success": true,
- "restart": true,
- "servers": [
- {
- "id": 0,
- "address": "10.24.32.64",
- "port": 22609,
- "timeout": 10,
- "passthrough": true,
- "user": "admin",
- "password": "admin256",
- "powerUser": false,
- "powerUserUsername": "",
- "powerUserPassword": "",
- "friendlyName": "Web Service API"
}, - {
- "id": 1,
- "address": "10.24.32.128",
- "port": 22609,
- "timeout": 10,
- "passthrough": true,
- "user": "admin",
- "password": "admin256",
- "powerUser": false,
- "powerUserUsername": "",
- "powerUserPassword": "",
- "friendlyName": "Web Service API 2"
}
]
}
{- "success": true,
- "servers": [
- {
- "id": 0,
- "identifier": "00-11-22-33-44-55",
- "timeout": 10,
- "passthrough": true,
- "user": "admin",
- "password": "admin256",
- "powerUser": false,
- "powerUserUsername": "admin",
- "powerUserPassword": "admin256",
- "friendlyName": "Web Service Remote API"
}
]
}
identifier required | string The server identifier. |
timeout | number The timeout, in seconds, to apply to requests to the server. Supplying 0 will use the default. |
passthrough required | boolean Whether passthrough login is configured. |
user | string The passthrough username. Required if passthrough is set to true. |
password | string The passthrough password. Required if passthrough is set to true. |
powerUser required | boolean Whether power user login is configured. |
powerUserUsername | string The power user username. Required if powerUser is set to true. |
powerUserPassword | string The power user password. Required if powerUser is set to true. |
null
id required | number The ID of the remote server you wish to update. |
identifier required | string The server identifier. |
timeout | number The timeout, in seconds, to apply to requests to the server. Supplying 0 will use the default. |
passthrough required | boolean Whether passthrough login is configured. |
user | string The passthrough username. Required if passthrough is set to true. |
password | string The passthrough password. Required if passthrough is set to true. |
powerUser required | boolean Whether power user login is configured. |
powerUserUsername | string The power user username. Required if powerUser is set to true. |
powerUserPassword | string The power user password. Required if powerUser is set to true. |
null
{- "success": true,
- "enabled": true,
- "port": 35111
}
enabled required | boolean Whether or not the remote listener should be enabled. |
port required | number The port the remote listener should use. |
null
{- "success": true,
- "level": 1,
- "type": "H",
- "interval": 10,
- "count": 1
}
type required | string Enum: "H" "M" "D" "W" The unit of time by which logs should be delimited. Enumerated:
|
level required | number Enum: 0 1 2 3 The level of verbosity at which logs should be set. Enumerated:
|
interval required | number The number of (unit specified by 'type') that a log file should last. |
count required | number The number of log files that should be kept on disk. Older logs are discarded first. |
{- "success": true,
- "restart": true
}
{- "success": true,
- "type": 1,
- "username": "enterpriseAdmin"
}
type required | number Enum: 0 1 The type of external authentication in use. Enumerated:
|
url | string The URL of the external service (if setting one). |
username | string The administrator username for to the external service. |
password | string The administrator password for the external service. |
null
{- "success": true,
- "ssl": {
- "http": true,
- "ws": false
}, - "pushNotifications": {
- "certificates": true
}, - "updates": true
}
{- "success": true,
- "externalIp": "8.67.121.203",
- "lastUpdated": "2011-08-30T13:22:53.108Z",
- "connectivity": {
- "http": true,
- "https": true,
- "ws": false,
- "wss": false,
- "outbound": true
}, - "internalIp": [
- {
- "address": "192.168.0.100",
- "mac": "00-11-22-33-44-55"
}, - {
- "address": "fe80::",
- "mac": "00-11-22-33-44-55"
}
], - "relay": {
- "error": 0,
- "address": "abc.r.exacq.net"
}
}
Deprecated This endpoint was deprecated in version 9.4.
{- "success": true,
- "servers": [
- {
- "id": 0,
- "passthrough": true,
- "poweruser": false,
- "reachable": true
}, - {
- "id": 1,
- "passthrough": false,
- "poweruser": false,
- "reachable": false
}
], - "remoteServers": [
- {
- "id": 2,
- "passthrough": false,
- "poweruser": false,
- "connected": true
}
]
}
{- "success": true,
- "servers": [
- {
- "address": "122.19.226.235",
- "port": 22609,
- "macAddress": "54:EF:F7:0C:95:47",
- "name": "My EDVR Server",
- "serial": "54:EF:F7:0C:95:47",
- "model": "unknown"
}
]
}
{- "success": true,
- "addresses": {
- "internal": [
- {
- "host": "172.19.220.22",
- "port": 80,
- "protocol": "http"
}, - {
- "host": "fe80::bada:3aff:fea0:53b5",
- "port": 80,
- "protocol": "http"
}, - {
- "host": "172.17.0.1",
- "port": 80,
- "protocol": "http"
}, - {
- "host": "fe80::42:8dff:fed4:12ae",
- "port": 80,
- "protocol": "http"
}
], - "external": [
- {
- "host": "webview.exacq.com",
- "port": 443,
- "protocol": "https"
}
], - "detected": [
- {
- "host": "207.67.123.194",
- "port": 80,
- "protocol": "http"
}
], - "relay": {
- "address": {
- "host": "web.r.exacq.net",
- "null": null,
- "port": 80,
- "protocol": "http"
}, - "throttled": [
- "11:bb:33:44:55:66"
]
}
}
}
The web service can be configured to authenticate against an external service. When configured as such, a user will be able to supply the webservice with credentials for a service that will then provide an EDVR server list specific to them.
An external auth config is useful when you need to restrict users to specific sets of servers at runtime.
The general authentication flow is as follows:
[POST /auth.web]
[POST /auth.web/logout]
when finishedCurrently, the only supported external authentication service is the exacqVision Enterprise Manager.
{- "success": true,
- "type": "esm",
}
username required | string The username of the external user you wish to authenticate. |
password required | string The password of the external user. |
path | string A relative path towards which to be directed if the request is successful. |
{- "success": true,
- "auth": "b29d8790-0247-49b7-8a1c-7dba4c4ff6ba",
- "expiration": "2017-08-30T13:22:53.404Z"
}
{- "success": true
}
Request for status information, e.g. motion, loss, etc, is done with a request to status.web
.
There are two ways to request status information. The first is to request status for specific items, this is done by specifying one or more of the query parameters camera
, trigger
, or map
. The second is to request overall server status. If none of the "item" query parameters is present the response will be for overall status information of the given session(s).
status.web?s=1&camera=123
: Returns an Items Response with the status of camera "123" from server "1"status.web?s=1&camera=123&camera=456&trigger=789&map="1_map-1"
: Returns an Items Response with the status of cameras "123" and "456", trigger "789", and map "1_map-1"The response includes status of only the specific items requested.
status.web?s=1
: Returns a Servers Response with the status information for session "1"status.web?s=1&s=2
: Returns a Servers Response with the status information for session "1" and session "2"The response includes a list of all items in important states.
Note: This endpoint is only valid for live status. A request with a search session ID will return incorrect information.
s required | string The session id(s) of the server(s) to retrieve status info for. |
camera | integer The camera id(s) to retrieve status information for. |
trigger | integer The soft trigger id(s) to retrieve status information for. |
map | string The map id(s) to retrieve status information for. |
{- "success": true,
- "camera": [
- {
- "id": 1,
- "status": {
- "motion": true,
- "loss": false
}
}
], - "trigger": [
- {
- "id": 1,
- "status": {
- "state": 1
}
}
], - "map": [
- {
- "id": "sid_mapid",
- "status": {
- "motion": false,
- "loss": true
}
}
]
}
Note: Push notifications support requires each server on the web service to be configured with a "Power User Process". This process requires Power User (or greater) permissions to monitor events for push notification signaling. The access provided by this process is only used for fulfilling push notifications and users will only be able to subscribe to events to which they have access.
Some push notification services (notably MPNS) require that the device token used for generation is encrypted during transmission. To facilitate this, a public encryption key is provided through this endpoint.
In most situations (e.g. for iOS and Android devices) this encryption is unnecessary and should be skipped.
{- "success": true,
- "key": "-----BEGIN PUBLIC KEY----- MIICCgKCAgEA2FDgoPqZrtt/uHxGGwsYnvn9cfNxlVij5+UTs17Dp7TzfrEPsn0r XnCC6E/hDSLKCuf1VnJUhNRTMJu9oCBOvw9KP0FGdv34Dsmr6aMquObvYkZPqaTS K24298YOGWbZBm8jDGs97UzknvD5LqiTAQGQ4WGMYUzIUpm9R1oXFuTE09wmBtaN PhcGNDLpvc1DN0EzINtjGljwheLN8mSwg3JlFzr6blG93lwP99fbKsBU7UV9ba6H hkLTeKGzRyFX+6TMSwnFDvwQ9bAK1hxY4GfqG/Xdjyla0ZOpEpATT9APl4GHkeBV hrJEzBn6ByDP8ZHf2iuLOPVNxWxXojGt30c1/eOUHAOHHXkQmqyfK6YgasO5CtGw +/ULHmtHye5iDNq2gPeZWsebIVzYDjWwOgL/Xq9sNe79DwcaU/jrIS7a+HImSMEd oeDTmDKgx+Bv3cRJzpy24PaXIET/OVmnKVytabz6xUZOFVr42oj9UJeqGeaKi7ZT Ebn9/BZ9RgcZgCNCnY/3BW3rGDLL4/yAHYhmB98TZ11VLzlv6NDTR7FjuzcvEGsS 2Lo9D0wfXQerX5sDYUxKHYVDhHo9P3urPnpxBcGtZREPSSk9TPdwLjr0thl5EzuI /Q+PLkTVEQ5eCfKh2Dvl2gH6PVRvKC2MsbUeanBVJhMM0OLEkwcQ+TECAwEAAQ== -----END PUBLIC KEY-----"
}
token required | string The client token. |
type required | int Enum: 0 1 2 The type of service for the client. Available Values:
|
encrypted | boolean Whether the token is encrypted using the key provided in 'Get Encryption Key'. Note: This is only required for MPNS clients. |
{- "success": true,
- "id": "as33nslk3vass"
}
Depending on the push notification network (e.g. APNS/GCM/MPNS), the client token may change intermittently. In these situations, the existing registration must be updated with the new token to ensure proper delivery of push notifications.
id required | string The ID generated for the registered client via 'Register Push Notification Client'. |
newtoken required | string The new client token. |
encrypted | boolean Whether the token is encrypted using the key provided in 'Get Encryption Key'. Note: This is only required for MPNS clients. |
{- "success": true,
- "id": "as33nslk3vass"
}
id required | string The push notification client ID. |
profile required | string The event monitoring profile name. |
guid required | string The GUID of the event to register. |
{- "success": true
}
id required | string The push notification client ID. |
profile required | string The event monitoring profile name. |
guid required | string The GUID of the event to register. |
{- "success": true
}
s required | string The session ID. |
clientId required | string The push notification client ID. |
deviceId required | integer The ID of the device that contains the rule. |
ruleId required | integer The rule ID. |
{- "success": true
}
s required | string The session ID. |
clientId required | string The push notification client ID. |
deviceId required | integer The ID of the device that contains the rule. |
ruleId required | integer The rule ID. |
{- "success": true
}
Search for video, audio, or serial is done with a request to search.web
.
Typically a Metadata Search is performed as a first step which will indicate if there is any stored data and at what times.
If a search is created succesfully the response will include information about the number of frames, clip formats, etc. Retrieval of stored data is done through a request to video.web
, audio.web
, or serial.web
for video, audio, and serial data respectively using the returned searchId
.
A search has several components to understand:
start
and end
times provided). See timestamp.webAs an example a request to video.web
in the context of a search will return the next frame for the camera id provided relative to the current reference time and playspeed. Continue to make requests to video.web
and the images will be returned at the correct rate.
When finished with a search a request should be made to Logout
NOTES:
camera
, audio
, or serial
parameters are required or a 400 response will be returned.video.web
. s required | string The session id of the server of the target camera. |
search_id required | string The session id of the search of the target camera. |
camera required | integer The target camera ID. |
time required | string The time for which to retrieve the closest frame, in IETC RFC 3339 format. |
format | integer Enum: 0 1 3 4 5 6 The format of the requested video. Available values:
The value requested must be available for the requested camera. The available values can be found in the |
w | integer The requested width, in pixels, of image. Result will be 4/3 of requested height. |
h | integer The requested height, in pixels, of image. Result will be 3/4 of requested width. |
q | integer [ 1 .. 10 ] The requested image quality. |
download | string The filename of the attachment to create. When specified the response is sent with a Content-Disposition header set to this field. |
Binary data of the video frame.
s required | string The session id of the server of the target camera. |
camera required | integer The target camera ID. |
time required | string The time for which to retrieve the closest frame, in IETC RFC3339 format. |
format | integer Enum: 0 6 The format of the requested video. Must be either native or transcoded JPEG, as this method must return an independent frame. Available values:
Either of these values must be present in the |
w | integer The requested width, in pixels, of image. Result will be 4/3 of requested height if unset, or 320 if both width and height parameters are absent. Only has effect when requesting transcoded JPEG. |
h | integer The requested height, in pixels, of image. Result will be 3/4 of requested width if unset, or 240 if both width and height parameters are absent. Only has effect when requesting transcoded JPEG. |
q | integer [ 1 .. 10 ] The requested image quality. Higher values correspond to clearer, less-compressed (and larger file size) pictures. Only has effect when requesting transcoded JPEG. |
download | string The filename of the attachment to create. When specified the response is sent with a Content-Disposition header set to this field. |
Binary data of the video frame.
s required | string The session id of the server to search. |
camera | Array of integers The target camera ID. |
audio | Array of integers The target audio ID. |
start required | Array of integers The start time of the search in IETC RFC 3339 format. |
end required | string The end time of the search in IETC RFC 3339 format. |
responseVersion | number Enum: 1 2 The output response version, it is highly recommended to use version 2. |
{- "sessionId": "0x27553f45",
- "success": true,
- "cameras": {
- "2556161": {
- "start": "2018-06-20T12:38:20Z",
- "end": "2018-06-20T12:50:24Z",
- "metadata": [
- {
- "start": "2018-06-20T12:38:20Z",
- "end": "2018-06-20T12:38:21Z",
- "flags": 0
}, - {
- "start": "2018-06-20T12:38:21Z",
- "end": "2018-06-20T12:38:25Z",
- "flags": 128
}, - {
- "start": "2018-06-20T12:38:28Z",
- "end": "2018-06-20T12:38:33Z",
- "flags": 128
}
]
}
}, - "audio": { }
}
s required | string The session id of the server to search. |
camera | Array of integers The target camera ID. |
audio | Array of integers The target audio ID. |
serial | Array of integers The target serial ID. |
start required | string The start time of the search in IETC RFC 3339 format. |
end required | string The end time of the search in IETC RFC 3339 format. |
start_paused | boolean A flag indicating the search should start in the paused state. |
output | string Value: "json" The output response type, the default response type is a URL encoded response. It is highly recommended to use the |
{- "search_id": "0x257a8942",
- "frames": 7866,
- "start_time": "2018-06-20T13:56:21Z",
- "end_time": "2018-06-20T14:01:21Z",
- "frameCounts": {
- "video": 5529,
- "audio": 2337
}, - "audioInfo": [
- {
- "frames": 2337,
- "deviceId": "4653441",
- "audioClips": [
- {
- "startTime": "2018-06-20T13:56:21Z",
- "endTime": "2018-06-20T14:00:24Z",
- "frames": 1906,
- "format": 0,
- "frequency": 8000,
- "samplesPerFrame": 1024
}, - {
- "startTime": "2018-06-20T14:00:25Z",
- "endTime": "2018-06-20T14:01:20Z",
- "frames": 431,
- "format": 0,
- "frequency": 8000,
- "samplesPerFrame": 1024
}
]
}
]
}
Request for the status of a successfully created search is done with a request to search.web/status
.
This endpoint is used to monitor the progress of downloading the stored data from the server.
s required | string The search id |
{- "success": true,
- "status": {
- "status": 2,
- "total": 1022,
- "retrieved": 778
}
}
search_id required | string The search id to get the current time for. |
output | string Value: "json" The output format |
use_ms | boolean Flag to indicate the response should provide a timestamp with millisecond precision. NOTE: This only affects the text response. |
{- "time": "2018-06-20T14:01:21Z",
- "timeWithMs": "2018-06-20T14:01:21.002Z"
}
Get the current search playspeed returned as a string. Values are on a scale of [-12800,12800] where 100 = 1x, 200 = 2x, -100 = -1x, 50 = 0.5x, etc
search_id required | string The search id to get the current playspeed for. |
output | string Value: "json" The output format |
{- "speed": "100"
}
Set the search playspeed. Acceptable values for the speed parameter are on a scale of [-12800,12800] where 100 = 1x, 200 = 2x, -100 = -1x, 50 = 0.5x, etc. A value of 0 will pause the search.
speed required | string [-]?\d+ The new playspeed |
search_id required | string The search id to set the playspeed for. |
output | string Value: "json" The output format |
null
Step forward or backward n frames at a time.
steps required | string [-+]?\d+ The number of steps to make |
search_id required | string The search id to step forward or backward. |
output | string Value: "json" The output format |
{- "frame": "217"
}
s required | string The session id of the server to search. |
camera required | integer The target camera ID. |
start required | string The start time of the search in IETC RFC 3339 format. |
end required | string The end time of the search in IETC RFC 3339 format. |
interval required | integer The duration in seconds to break the search into. Derived by dividing the total search duration by the number of thumbnails desired. |
format | integer Enum: 0 6 The format of the requested video. Available values:
The value requested must be available for the requested camera. The available values can be found in the |
frame | integer The frame number to request |
w | integer The requested width, in pixels, of image. Result will be 4/3 of requested height. |
h | integer The requested height, in pixels, of image. Result will be 3/4 of requested width. |
q | integer [ 1 .. 10 ] The requested image quality. |
{- "success": true,
- "session_id": "search-id",
- "frames": 1,
- "frames_timestamps": [
- 1528366560
], - "start": 1528366560,
- "end": 1528366560
}
Request for creating, managing, and downloading an export is done with a request to export.web
.
Retrieving the valid export formats is done with a GET request to export.web with no parameters.
Creating an export is much like creating a Search.
camera
, audio
, or serial
parameters are required or a 400 response will be returned.s
, start
, end
.format
parameter to specify the export format. If left unspecified the default format ps_zip
will be chosen.name
parameter is used to give a different name to the export when it is downloaded.After an export is created the current status can be retrieved with GET request to export.web that includes the export
parameter.
export.web?export=123e4567-e89b-12d3-a456-426655440000
: Returns a Status Response for the given export ID.An export cannot be downloaded until it has a status of completed.
To download an export set the action parameter to "download"
export.web?export=123e4567-e89b-12d3-a456-426655440000&action=download
After an export has been successfully downloaded it is best practice to free any resources held by the export.
export.web?export=123e4567-e89b-12d3-a456-426655440000&action=finish
An export will be automatically cleaned up after 15 minutes of inactivity.
s | string The session id of the server. |
camera | Array of integers The target camera ID. |
audio | Array of integers The target audio ID. |
serial | Array of integers The target serial ID. |
start | string The start time of the export in IETC RFC 3339 format. |
end | string The end time of the export in IETC RFC 3339 format. |
format | string The export format. Retrieve the valid values from GET request to export.web with no parameters. See the Formats response. |
name | string The requested filename to give to the export. The default is |
action | string Enum: "download" "finish" The action to perform. Valid values:
|
export | string The export ID returned from a successful request to create an export. This ID is used in subsequent requests to export.web to retrieve status, download the completed export file, or free resources held by the export when finished |
{- "success": true,
- "formats": [
- "ps_zip",
- "avi",
- "mov",
- "psx",
- "mp4",
- "eplayer"
]
}
s required | Array of strings The session id of server(s) from which to retrieve targets. |
{- "success": true,
- "targets": [
- {
- "name": "Target 1",
- "id": "6d894e98fb433caf0729699f97af8b11",
- "type": 0,
- "maxPanels": 48,
- "capabilties": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7
], - "sessionIds": [
- 0
]
}, - {
- "name": "Target 2",
- "id": "316dd470d50ffddbb5fff8a0b690b34d",
- "type": 0,
- "maxPanels": 48,
- "capabilties": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7
], - "sessionIds": [
- 0
]
}
]
}
s required | Array of strings The session IDs to associate with this client. |
name required | string The name of the Video Push target. If only creating a sending target (i.e. no capabilities), this value can be an empty string. |
maxPanels required | number The maximum number of video panels this target supports. |
capabilities | Array of numbers Items Enum: 0 1 2 3 4 5 6 7 A list of the available capabilities for this target. Available Values:
|
guid | string A unique identifier for this VideoPush target. Each GUID is specific to a given target and should be reused when disabling/re-enabling the target across sessions. When initially creating a target, this property is optional and a GUID will be generated. Note: This value should be considered semi-private. Exposing this value to other parties will allow receiving and manipulating VideoPush messages for this target. |
mobile | boolean Whether this client is a mobile device. |
{- "success": true,
- "target": {
- "name": "Target 1",
- "id": "316dd470d50ffddbb5fff8a0b690b34d",
- "guid": "6d89-4e98fb433-caf072969-9f97af8b11",
- "maxPanels": 48,
- "type": 1,
- "capabilties": [
- 0,
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7
], - "sessionIds": [
- 0
]
}
}
guid required | string The GUID of the client retrieving messages |
s required | Array of strings The session id of server(s) from which to retrieve targets. |
{- "success": true,
- "events": [
- {
- "type": 1,
- "sender": "Video Push Client 1",
- "sessionIds": [
- 0
], - "content": {
- "name": "",
- "items": [
- {
- "id": 4653318,
- "server": 0,
- "type": 1,
- "slot": 0
}, - {
- "id": 4653316,
- "server": 0,
- "type": 1,
- "slot": 1
}, - {
- "id": 4653320,
- "server": 0,
- "type": 1,
- "slot": 2
}, - {
- "id": 4653324,
- "server": 0,
- "type": 1,
- "slot": 3
}
], - "layout": 4,
- "layout_info": {
- "length": 4,
- "width": 2,
- "height": 2,
- "slots": [
- {
- "index": 0,
- "x": 0,
- "y": 0,
- "width": 1,
- "height": 1
}, - {
- "index": 1,
- "x": 1,
- "y": 0,
- "width": 1,
- "height": 1
}, - {
- "index": 2,
- "x": 0,
- "y": 1,
- "width": 1,
- "height": 1
}, - {
- "index": 3,
- "x": 1,
- "y": 1,
- "width": 1,
- "height": 1
}
]
}
}
}
]
}
guid required | string The GUID of the client sending the message |
s required | Array of strings The session IDs to associate with this message. |
targetId required | string The ID of the target of the message. |
type required | number Enum: 0 1 2 The type of message. Available Values
|
content required | string The content payload of this Video Push event message type. Each content is a JSON-encoded string of an object defined below. The type of this object depends on the type of event, as defined in the following list: Display SettingsAn array of the display settings to apply, defined by the following enum:
Live ViewAn object describing the view via the following JSON-schema:
Live TourAn object describing the tour via the following JSON-schema:
|
{- "success": true,
- "messageId": "85ececde-09b0-4593-abda-35b97f5285c9",
- "sessionIds": [
- "23ceec25-4022-42f6-9ddd-4357c80e43be"
]
}
messageId required | string The ID of the sent message. |
s required | Array of strings The session id of server(s) from which to retrieve message status. |
{- "success": true,
- "status": "Pending",
- "applied": [
- "23ceec25-4022-42f6-9ddd-4357c80e43be"
]
}
Retrieve the list of users
s required | string The session id of the server. |
{- "success": true,
- "users": [
- {
- "managed": false,
- "name": "user1",
- "groupName": "Full Admin",
- "role": 5,
- "accountType": 0,
- "guid": null
}, - {
- "managed": true,
- "name": "3695B20BDB456B48B996DCC21F5A9E1F",
- "groupName": "Full Admin",
- "role": 5,
- "accountType": 1,
- "isOrphaned": false,
- "guid": "66a73016-1f4c-2569-8901-4f6d51c1a7d6"
}
]
}
Creating or updating a user is done with a POST
or PUT
request to users.web
.
Groups do not exist without users so there is no way to create a group separately and then assign a user to it.
The grp*
parameters are only necessary when creating a new group or modifying an existing group. When creating a user and assigning them to a built-in role or group only the role
or guid
parameters need to be set.
s required | string The session id of the server. |
name required | string The name of the user to create. |
password required | string The user's password. |
role required | integer Enum: 3 5 6 10 11 12 The role to assign to the user. Possible values:
|
guid | string The group guid to assign to the user. Leave empty when assigning to a built-in role, otherwise set 'role' to custom and 'guid' to one of the existing groups or leave empty when creating a new group. |
accountType | integer Enum: 0 1 The type of user account. Possible values:
|
grpName | string The name of the group. |
grpUserPermission | integer A bitmask of system privileges. See the response to List User Groups |
grpAdminPermission | integer A bitmask of admin privileges. See the response to List User Groups |
grpGroupPermission | integer A bitmask of input permissions. See the response to List User Groups |
grpPtzPriority | integer The priority to assign to PTZ. |
grpAudioPriority | integer The priority to assign to two way audio. |
grpRemotePriority | integer The priority to assign to remote client. |
grpCameras | string A comma separated list of camera ids this group should have access to. This is only required if the relevant |
grpAudios | string A comma separated list of audio ids this group should have access to. This is only required if the relevant |
grpSerials | string A comma separated list of serial ids this group should have access to. This is only required if the relevant |
grpSoftTriggers | string A comma separated list of soft trigger ids this group should have access to. This is only required if the relevant |
null
Updating a user or group is almost identical to creating one.
s required | string The session id of the server. |
name required | string The name of the user to update. |
password | string The user's password they will use to login with. |
role | integer Enum: 3 5 6 10 11 12 The role to assign to the user. Possible values:
|
guid | string The group guid to assign to the user. Leave empty when assigning to a builtin role, otherwise set 'role' to custom and 'guid' to one of the existing groups or leave empty when creating a new group. |
accountType | integer Enum: 0 1 The type of user account. Possible values:
|
grpName | string The name of the group. |
grpUserPermission | integer A bitmask of system privileges. See the response to List User Groups |
grpAdminPermission | integer A bitmask of admin privileges. See the response to List User Groups |
grpGroupPermission | integer A bitmask of input permissions. See the response to List User Groups |
grpPtzPriority | integer The priority to assign to PTZ. |
grpAudioPriority | integer The priority to assign to two way audio. |
grpRemotePriority | integer The priority to assign to remote client. |
grpCameras | string A comma separated list of camera ids this group should have access to. This is only required if the relevant |
grpAudios | string A comma separated list of audio ids this group should have access to. This is only required if the relevant |
grpSerials | string A comma separated list of serial ids this group should have access to. This is only required if the relevant |
grpSoftTriggers | string A comma separated list of soft trigger ids this group should have access to. This is only required if the relevant |
originalName | string This is used to facilitate renaming a user. To rename a user set this to the original username and the |
{- "success": true
}
Retrieve the list of user groups
s required | string The session id of the server. |
{- "success": true,
- "groups": [
- {
- "audios": [ ],
- "serials": [ ],
- "cameras": [ ],
- "role": 3,
- "name": "My Custom Group",
- "managed": true,
- "softTriggers": [ ],
- "guid": "66a73016-1f4c-2569-8901-4f6d51c1a7d6",
- "priorities": [
- {
- "priority": 1,
- "value": 1
}, - {
- "priority": 2,
- "value": 1
}, - {
- "priority": 3,
- "value": 1
}
], - "permissions": {
- "admin": 2,
- "group": 15,
- "user": 134975
}
}, - {
- "audios": [ ],
- "serials": [ ],
- "cameras": [ ],
- "role": 5,
- "name": "Full Admin",
- "managed": false,
- "softTriggers": [ ],
- "guid": null,
- "priorities": [ ],
- "permissions": {
- "admin": 15,
- "group": 15,
- "user": 67108863
}
}, - {
- "audios": [ ],
- "serials": [ ],
- "cameras": [ ],
- "role": 10,
- "name": "Live Only",
- "managed": false,
- "softTriggers": [ ],
- "guid": null,
- "priorities": [ ],
- "permissions": {
- "admin": 0,
- "group": 15,
- "user": 2097167
}
}, - {
- "audios": [ ],
- "serials": [ ],
- "cameras": [ ],
- "role": 11,
- "name": "Search Only",
- "managed": false,
- "softTriggers": [ ],
- "guid": null,
- "priorities": [ ],
- "permissions": {
- "admin": 0,
- "group": 15,
- "user": 21241600
}
}, - {
- "audios": [ ],
- "serials": [ ],
- "cameras": [ ],
- "role": 12,
- "name": "Live + Search",
- "managed": false,
- "softTriggers": [ ],
- "guid": null,
- "priorities": [ ],
- "permissions": {
- "admin": 0,
- "group": 15,
- "user": 23338767
}
}
]
}
{- "success": true,
- "bookmarks": [
- {
- "case": null,
- "start": "2018-07-09T14:07:14Z",
- "end": "2018-07-09T14:07:25Z",
- "name": "Live Case - 7/9/2018 9:56:01 AM - 3",
- "size": 20504,
- "items": [
- {
- "type": 0,
- "id": 4588032,
- "server": "1"
}
], - "guid": "151affde-78bc-4d2d-9c08-a88c711b6de6",
- "description": ""
}, - {
- "case": "258b8b0e-51d6-4a98-a50f-1743862a61a9",
- "start": "2018-06-29T17:33:02Z",
- "end": "2018-06-29T17:33:08Z",
- "name": "Live Case - 6/29/2018 1:32:55 PM - 3",
- "size": 304433,
- "items": [
- {
- "type": 0,
- "id": 4653314,
- "server": "1"
}
], - "guid": "3853896b-6542-4e65-a777-cc9c037e9c6c",
- "description": ""
}, - {
- "case": "47f82960-9f14-46fd-af6a-1d9993d92c2b",
- "start": "2018-08-01T11:49:45Z",
- "end": "2018-08-01T11:51:28Z",
- "name": "Live Case - 01/08/2018 12:49:35 - 1",
- "size": 101211,
- "items": [
- {
- "type": 0,
- "id": 1573376,
- "server": "1"
}, - {
- "type": 0,
- "id": 4588032,
- "server": "1"
}, - {
- "type": 0,
- "id": 4653312,
- "server": "1"
}, - {
- "type": 0,
- "id": 4653313,
- "server": "1"
}
], - "guid": "958baccd-c461-4b2a-ad78-668987dd58f6",
- "description": ""
}, - {
- "case": "545479f2-6778-40a4-92f6-030a6fd60542",
- "start": "2018-06-29T19:22:35Z",
- "end": "2018-06-29T20:08:54Z",
- "name": "Live Case - 6/29/2018 4:00:34 PM - 2",
- "size": 1006264,
- "items": [
- {
- "type": 0,
- "id": 4653317,
- "server": "1"
}
], - "guid": "24c257a8-6f8e-4de2-97d8-bd4621d4b28c",
- "description": ""
}
]
}
s required | string The session id of the server. |
name required | string The name of the bookmark. |
start required | string The start time of the bookmark in IETC RFC 3339 format. |
end required | string The end time of the bookmark in IETC RFC 3339 format. |
itemType required | integer Enum: 0 1 2 3 The type of the initial source item. Enumerated:
|
itemId required | integer The ID (e.g., camera ID for a camera) for the initial source item. |
description | string An optional description for the bookmark. |
case | string An optional case GUID in which to create the bookmark. |
{- "success": true,
- "bookmark": {
- "case": null,
- "start": "2018-07-12T12:33:36Z",
- "end": "2018-07-12T12:33:46Z",
- "name": "Foo",
- "size": 0,
- "items": [
- {
- "type": 0,
- "id": 4653315,
- "server": "0"
}
], - "guid": "c5e8e073-959b-8d94-59b3-fcc1420852d8",
- "description": ""
}
}
s required | string The session id(s) of the server(s). |
guid required | string The GUID of the bookmark to update. |
name | string The new name of the bookmark. |
description | string A new description for the bookmark. |
start | string A new start time for the bookmark in IETC RFC 3339 format. |
end | string A new end time for the bookmark in IETC RFC 3339 format. |
case | string The case GUID of the bookmark. |
{- "success": true,
- "bookmark": {
- "case": null,
- "start": "2018-07-11T12:33:36Z",
- "end": "2018-07-14T12:33:46Z",
- "name": "Renamed",
- "size": 0,
- "items": [
- {
- "type": 0,
- "id": 4653315,
- "server": "0"
}
], - "guid": "c5e8e073-959b-8d94-59b3-fcc1420852d8",
- "description": "New description"
}
}
{- "success": true,
- "cases": [
- {
- "servers": [
- "0",
- "1"
], - "bookmarks": 25,
- "guid": "00000000-0000-0000-0000-000000000000",
- "name": "(No Case)",
- "description": ""
}, - {
- "servers": [
- "0",
- "1"
], - "bookmarks": 10,
- "guid": "dfa5e0c8-cd57-50c4-2649-66c9404296df",
- "name": "Fizban",
- "description": "The Fabulous"
}, - {
- "servers": [
- "0"
], - "bookmarks": 1,
- "guid": "0217238f-712f-4dcd-a88b-0b2154ac12e9",
- "name": "Live Case - 6/13/2018 10:30:22 PM",
- "description": ""
}, - {
- "servers": [
- "1"
], - "bookmarks": 5,
- "guid": "1ae40fa8-5cae-48ca-b658-fbaa10cd2ee0",
- "name": "Live Case - 5/23/2018 7:14:46 PM",
- "description": "Entrance of the Queen of Sheba"
}
]
}
s required | string The session id(s) of the server(s). |
name required | string The name of the case. |
description | string An optional description for the case. |
{- "success": true,
- "case": {
- "servers": [
- "0"
], - "bookmarks": 5,
- "guid": "0fbde264-7730-6e53-4ca8-bcf19b7a51c2",
- "name": "New case",
- "description": ""
}
}
s required | string The session id(s) of the server(s). |
guid required | string The GUID of the case to update. |
name | string The new name of the case. |
description | string A new description for the case. |
{- "success": true,
- "case": {
- "servers": [
- "0"
], - "bookmarks": 5,
- "guid": "0fbde264-7730-6e53-4ca8-bcf19b7a51c2",
- "name": "Renamed case",
- "description": "With a description!"
}
}
s required | string The session id of the server with the bookmark. |
sessionId required | string The session id of the server with the item. |
guid required | string The GUID of the bookmark in which to create the item. |
type required | integer Enum: 0 1 2 3 The type of the item. Enumerated:
|
id required | integer The ID (e.g., camera ID for a camera) for the item. |
case | string The GUID of the case with the bookmark. |
null
s required | string The session id of the server. |
guid required | string The GUID of the bookmark. |
type required | integer Enum: 0 1 2 3 The type of the item. Enumerated:
|
id required | integer The ID (e.g., camera ID for a camera) for the item. |
case | string The GUID of the case with the bookmark. |
null
s required | string The session id of server from which to retrieve serial ports. |
{- "success": true,
- "uart": [
- {
- "id": 851968,
- "name": "ttyS0",
- "port": "ttyS0",
- "use": 0,
- "profile": 0,
- "baudRate": 9600,
- "dataBits": 8,
- "stopBits": 0,
- "parity": 0,
- "flowControl": 0,
- "maxLineLength": 80,
- "lineEnding": "",
- "timeout": 0
}, - {
- "id": 852224,
- "name": "ttyS1",
- "port": "ttyS1",
- "use": 0,
- "profile": 0,
- "baudRate": 9600,
- "dataBits": 8,
- "stopBits": 0,
- "parity": 0,
- "flowControl": 0,
- "maxLineLength": 80,
- "lineEnding": "",
- "timeout": 0
}
], - "ip": [
- {
- "id": 852736,
- "name": "itv2 serial port",
- "use": 5,
- "type": 3,
- "profile": 5177600,
- "address": "182.17.236.140",
- "ipPort": 3173,
- "stopBits": 0,
- "remotePort": 0,
- "maxLineLength": 1024,
- "lineEnding": "",
- "timeout": 0
}, - {
- "id": 852992,
- "name": "Marsh",
- "use": 1,
- "type": 0,
- "profile": 917506,
- "address": "182.17.225.206",
- "ipPort": 12345,
- "stopBits": 0,
- "remotePort": 0,
- "maxLineLength": 80,
- "lineEnding": "",
- "timeout": 0
}
]
}
s required | string The session id of server from which to retrieve serial data. |
serial required | integer The serial ID to retrieve serial data from. |
stream | integer The stream ID, an arbitrary unique value to identify a client. If none is provided the service will generate one and provide it. |
{- "success": true,
- "stream": "12bahae7ab510zre",
- "data": [
- "POS Terminal",
- "Date: 2018-07-30",
- "Customer: 1251"
]
}
s required | string The search ID from which to retrieve serial data. This value is retrieved from a call to create a search. |
serial required | integer The serial ID to retrieve serial data for. |
{- "success": true,
- "complete": true,
- "stored": [
- {
- "data": "POS Terminal\nDate: 2018-07-30\nCustomer: 1251",
- "start": "2018-06-20T12:38:20Z",
- "end": "2018-06-20T12:38:21Z"
}
]
}
s required | string The search ID from which to retrieve serial profiles. |
{- "success": true,
- "profiles": [
- {
- "name": "Marsh Profile",
- "markers": {
- "start": "MARSH #01",
- "end": "www.marsh.net",
- "type": 0
}, - "id": 917506,
- "caseSensitivity": {
- "keywords": false,
- "rules": false,
- "replacements": false,
- "masks": false,
- "transmissionMarkers": true
}, - "display": {
- "fontName": "Monospace",
- "fontStyle": 90,
- "fontWeight": 90,
- "fontFamily": 76,
- "fontSize": 9,
- "fontColor": "0xffff00",
- "underline": false
}, - "retention": 5184000
}
]
}
s required | string The session id of server from which to retrieve keywords. |
profile required | integer The profile ID to retrieve keywords for. |
{- "keywords": [
- {
- "enabled": false,
- "id": 1,
- "match": "CUCUMBER"
}, - {
- "enabled": false,
- "id": 2,
- "match": "Bagel"
}, - {
- "enabled": false,
- "id": 3,
- "match": "Milk"
}
], - "success": true
}
s required | string The session id of server from which to retrieve profile line masks. |
profile required | integer The profile ID to retrieve line masks for. |
{- "success": true,
- "masks": [
- {
- "live": true,
- "search": true,
- "match": "TestLineMask"
}
]
}
s required | string The session id of server from which to retrieve replacements. |
profile required | integer The profile ID to retrieve replacements for. |
{- "replacements": [
- {
- "live": true,
- "search": false,
- "match": "Banana",
- "replace": "Apple"
}
], - "success": true
}
s required | string The session id of server from which to retrieve rules. |
profile required | integer The profile ID to retrieve rules for. |
{- "rules": [
- {
- "patterns": [
- {
- "fieldPosition": 0,
- "field": "Bagel",
- "id": 1,
- "value": "Apple",
- "op": 1
}
], - "id": 4,
- "name": "Rule 1"
}
], - "success": true
}
s required | string The session id of server from which to retrieve rules. |
{- "rules": [
- {
- "deviceId": 4849920,
- "cameraId": 4849921,
- "ruleId": 4,
- "name": "Rule 1",
- "osdInfo": {
- "bgColor": 1379296,
- "bgOpacity": 100,
- "borderColor": 0,
- "borderOpacity": 50
}, - "metadataEnabled": false
}
], - "success": true
}
s required | string The session ID. |
clientId required | string The push notification client ID. |
deviceId required | integer The ID of the device that contains the rule. |
ruleId required | integer The rule ID. |
{- "success": true
}
s required | string The session ID. |
clientId required | string The push notification client ID. |
deviceId required | integer The ID of the device that contains the rule. |
ruleId required | integer The rule ID. |
{- "success": true
}
Request for both audio information as well as raw audio data is done with a request to audio.web
.
audio.web
: A request with no query parameters returns a Formats Response
audio.web?s=1
: Returns a Streams Response with the available audio streams (if any)audio.web?s=1&a=123
: Returns a binary response with audio data for stream id 123
from session 1
in the native format of the stream. The audio data will continue to be streamed until the request is cancelled. It is recommended to chunk audio requests for the best playback.audio.web?s=1&a=123&type=raw
: Same as the previous request except the response will be raw uncompressed PCM data with 1 channel, 16 bit rate, and the sample rate for the audio device, as listed in the frequency property of the audio "Streams" response. Stored audio is retrieved through audio.web
using a search ID (see the Search API). Unlike video.web
, playback for audio is completely up to the caller. All of the available audio data is returned at once. Optionally startFrame
and endFrame
can be used to limit which frames are returned in the response.
s | string The session id of the server. |
search_id | string The search ID created by search.web. |
a | integer The target audio stream ID. |
type | string Enum: "raw" "native" The audio format. Valid values:
|
startFrame | integer The starting frame number to grab. This only applies to search audio, leaving it unset will always start with frame 0. |
endFrame | integer The ending frame number to grab. This only applies to search audio, leaving it unset will always return data from startFrame to the end of the stream. |
{- "success": true,
- "formats": [
- "raw",
- "native"
]
}
Send raw audio data as the resquest body.
s required | string The session id of the server. |
a required | integer The target audio stream ID. |
type | string Enum: "raw" "native" The audio format. Valid values:
|
null
End an export and free any resources held by it.
action required | string Value: "finish" The action to perform. Valid values:
|
export required | string The export ID returned from a successful request to create an export. |
null