exacqVision Web Service API (1.0)

Download OpenAPI specification:Download

exacqVision API Support: evSupport@exacq.com

FORMAT: 1A

Introduction

Webservice HTTP API v1

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.

Authentication

bearerAuth

Security Scheme Type HTTP
HTTP Authorization Scheme bearer

cookieAuth

Security Scheme Type API Key
Cookie parameter name: token

Servers

List Servers

query Parameters
output
required
string
Value: "json"

The output format of the list

Responses

Response samples

Content type
application/json
{
  • "list":
    [
    ],
  • "CSRF": true
}

Login

There are multiple supported modes of logging into a server.

  1. With user credentials
    • Submit a username and password
  2. Using a previously requested login token
    • This requires you have already logged in with credentials and requested a token be generated. You can use this single use token to log back into the server.
  3. Automatic login when integrated with an external authentication service (e.g. Enterprise Manager).
    • In this mode the web service requests the logged in user's server credentials from the external authentication service.

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.

Request Body schema: application/x-www-form-urlencoded
One of
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:

  • 0: No token
  • 1: Generate Token

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "sessionID": "0dff389d-9e47-466b-88da-c9fb175015b1",
  • "canAutoLogin": false,
  • "daysRecordedVideo": 0,
  • "managedFeatures": [ ],
  • "address": "127.0.0.1",
  • "user_permissions":
    {
    },
  • "serial": "18-62-66-32-4E-AF",
  • "login": false,
  • "group":
    {
    },
  • "name": "Server 1",
  • "licenseInfo":
    {
    },
  • "restricted": false,
  • "admin_access_permissions":
    {
    },
  • "id": "0",
  • "port": 22609,
  • "version": "",
  • "model": "unknown"
}

Logout

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.

Request Body schema: application/x-www-form-urlencoded
One of
s
required
string

The server ID of the server to logout.

Responses

Response samples

Content type
text/html
login.web

Get System Info

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "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
}

Set System Info

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

List Users

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "users":
    [
    ],
  • "success": true
}

List Plugin Status

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "plugins":
    [
    ],
  • "success": true
}

Get Serial Capabilities

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "serial":
    {
    },
  • "success": true
}

List Devices

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "devices":
    [
    ],
  • "success": true
}

Add Device

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Update Device

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Remove Device

Request Body schema: application/x-www-form-urlencoded
s
required
string

The id of the server containing the device.

id
required
number

The id of the device that you wish to remove.

Responses

Response samples

Content type
application/json
null

List Plugin Defaults

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "deviceTypes":
    [
    ],
  • "success": true
}

List Archive Targets

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "archiveTargets":
    [
    ]
}

Get Event Status

query Parameters
s
required
Array of strings

The session id of the server(s) for which to query event status.

Responses

Response samples

Content type
application/json
{
  • "statuses":
    [
    ],
  • "success": true
}

Cameras

List Cameras

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "timezone": -4,
  • "name": "Server 1 Name",
  • "restricted": false,
  • "Cameras":
    [
    ]
}

Get Camera Config

query Parameters
s
required
string

The session id of the server to target.

camera
required
string

The ID of the camera on the targeted server.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "camera":
    {
    }
}

Set Camera Config

Request Body schema: application/x-www-form-urlencoded
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:

  • 0x1: Date
  • 0x2: Timezone
  • 0x4: Time
  • 0x8: Name
position
number
Enum: 0 1 2 3 7 8 9

The position of the OSD display.

Enumerated:

  • 0: None
  • 1: Top left
  • 2: Top center
  • 3: Top right
  • 7: Bottom left
  • 8: Bottom center
  • 9: Bottom right
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:

  • 0: Unknown
  • 70: Default
  • 71: Decorative
  • 72: Roman
  • 73: Script
  • 74: Swiss
  • 75: Modern
  • 76: Teletype
evFontStyle
number
Enum: 0 90 93 94

The desired font styling.

Enumerated:

  • 0: Unknown
  • 90: Normal
  • 93: Italic
  • 94: Slant
evFontWeight
number
Enum: 0 91 92

The desired font weight.

Enumerated:

  • 0: Unknown
  • 91: Light
  • 92: Bold
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]

Responses

Response samples

Content type
application/json
null

Video

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.

Get Video (Legacy)

query Parameters
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:

  • 0: Native JPEG
  • 1: MPEG1
  • 2: MPEG2
  • 3: H.263
  • 4: MPEG4
  • 5: H.264 (AVC)
  • 6: Transcoded JPEG
  • 7: H.265 (HEVC)

The value requested must be available for the requested camera. The available values can be found in the formats property on the response camera object. See the response from Cameras

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:

  • Content-Type: The content-type of the frame data
  • DataLen: The length of the current frame
  • Iframe: Whether the frame is an IFrame. Only present if the frame is an IFrame.
  • Frame: (Search Only) The frame number in the context of the entire search
  • TimeOffset: (Search Only) The time offset, in ms, in the context of the entire search

This parameter is only valid for the following camera formats:

  • MPEG1
  • MPEG2
  • H.263
  • MPEG4
  • H.264
  • H.265

Responses

Response samples

Content type
image/jpeg
Binary data of the video frame.

Get Video

path Parameters
s
required
string

The session id of the server or search of the target camera.

camera
required
integer

The target camera ID.

container
string
Enum: "native" "transcoded"

The container format of the requested video:

  • native: Camera-native format; see Video
  • transcoded: Transcoded format; see Video
query Parameters
iframes
boolean

If true, return I-frames only.

Responses

Response samples

Content type
image/jpeg
Binary data of the video frame.

Get Thumbnail Preview

Retrieve a cached thumbnail image

query Parameters
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:

  • 0: 80x80px
  • 1: 128x128px
  • 2: 200x200px

Responses

Response samples

Content type
image/jpeg
Binary data of the video frame.

Get Video Frame Deprecated

Deprecated This endpoint has been deprecated in favor of video.web.

query Parameters
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.

Responses

Response samples

Content type
image/jpeg
Binary data of the video frame.

PTZ

List Mechanical PTZ Presets

query Parameters
s
required
string

The session id of the server to target.

camera
required
string

The ID of the camera on the targeted server.

Responses

Response samples

Content type
application/json
{
  • "Presets":
    [
    ]
}

Perform Mechanical PTZ Action

This endpoint fulfills three functions:

  • Apply a mechanical PTZ preset: specify a preset id with the 'preset' parameter
  • Set PTZ speeds - specify the 'pspeed', 'tspeed', and 'zspeed' parameters
  • Pan, tilt, or zoom - specify a direction string (see the 'direction' parameter)

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.

Request Body schema: application/x-www-form-urlencoded
One of
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.

Responses

Clone DPTZ / Get DPTZ Direction / Get DPTZ Rectangle

This endpoint fulfills three functions:

  1. Create a digital PTZ clone - provide the 'camera' and 'type' parameters, and optionally the 'view' and 'slot' parameter (see parameter descriptions)
  2. Get a digital PTZ rectangle - specify the 'ptz' parameter
  3. Check whether a digital ptz rectangle can move in a specific direction - specify the 'ptz' and 'dir' parameters

Only specify parameters needed for the action you wish to perform.

query Parameters
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:

  • 0x1 - Normal
  • 0x2 - Dewarp
  • 0x4 - Panorama
  • 0x8 - Dual-view
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:

  • u: Tilt up
  • d: Tilt down
  • l: Pan left
  • r: Pan right
  • i: Zoom in
  • o: Zoom out

Responses

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "ptzId": "1",
  • "height": 1080,
  • "width": 1920,
  • "camera": "4590080",
  • "x": 0,
  • "y": 0,
  • "server": "0",
  • "type": 1
}

Destroy DPTZ / Set DPTZ Rectangle

Request Body schema: application/x-www-form-urlencoded
One of
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'.

Responses

Response samples

Content type
application/json
null

Views

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.

List Views

query Parameters
s
required
Array of strings

The session id of server[s] from which to retrieve views.

Responses

Response samples

Content type
application/json
{
  • "Folders":
    {
    },
  • "Views":
    [
    ]
}

Tours

List Tours

query Parameters
s
required
Array of strings

The session id of server[s] from which to retrieve tours.

Responses

Response samples

Content type
application/json
{
  • "folders":
    {
    },
  • "success": true,
  • "tours":
    [
    ]
}

Soft Triggers

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).

List Soft Triggers

query Parameters
s
required
string

The session id of the server for the soft triggers.

Responses

Response samples

Content type
application/json
{
  • "Triggers":
    [
    ]
}

Set Soft Trigger State

Request Body schema: application/x-www-form-urlencoded
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

Responses

Response samples

Content type
text/plain
Invalid Request

Groups

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"

List Groups

query Parameters
s
required
Array of strings

The session id(s) of the server(s) for the groups.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "groups":
    [
    ]
}

Maps

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.

List Maps / Get Map Image

This endpoint performs two separate functions:

  • Retrieve the list of maps for a server[s] - specify one or more session IDs with the 's' parameter
  • Retrieve the image for a single map - specify the map ID using the 'map' parameter
query Parameters
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.

Responses

Response samples

Content type
{
  • "success": true,
  • "maps":
    [
    ]
}

Associations

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.

List Associations

query Parameters
s
required
Array of strings

The session id of server[s] from which to retrieve associations.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "associations":
    [
    ]
}

Get Camera Associations

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "association":
    {
    }
}

Event Monitoring

List Event Monitoring Profiles

query Parameters
s
required
Array of strings

The session ID(s) of server(s) from which to retrieve profiles.

Responses

Response samples

Content type
application/json
{
  • "profiles":
    [
    ],
  • "success": true
}

Create Event Monitoring Profile

Request Body schema: application/x-www-form-urlencoded
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:

  • 0: Video panel
  • 1: View
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:

  • 1: Soft trigger
  • 2: Time trigger
  • 3: Input trigger
  • 4: Video loss
  • 5: Video motion
  • 6: Device disconnected
  • 7: Serial port
  • 8: Serial profile
  • 9: Health event
  • 10: Button
  • 11: Analytics
  • 12: Group
  • 13: Video disconnected
  • 14: Audio disconnected
  • 15: Outbound connection
  • 16: Default
  • 17: Access control event
  • 18: Access control disconnected
  • 19: Serial port disconnected
  • 20: Record idle
eventSourceExtra
number

An additional identifier needed to trigger the event, if required.

This value is necessary for the following 'eventSourceType' values:

  • 7 (Serial port): The serial rule/keyword ID
  • 8 (Serial profile): The serial rule/keyword ID
  • 9 (Health event): The health event type
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:

  • 1 (View): The view name
  • 3 (Tour): The tour name
  • 4 (Video): The ID of the video stream
  • 5 (Digital preset): The ID of the video stream
  • 7 (Audio): The ID of the audio stream
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:

  • 1: Switch to view
  • 2: Play sound file
  • 3: Switch to tour
  • 4: Switch to video
  • 5: Log message
  • 6: Switch to digital PTZ preset
  • 7: Switch to audio
eventTargetExtra
string

An extra identifier necessary to complete the client action, if applicable.

The meaning of the value depends on the 'eventTargetType' property:

  • 6 (Digital preset): The ID of the digital preset
eventTargetFolders
string

The folder path to the event target, if applicable.

Responses

Response samples

Content type
application/json
{
  • "profile":
    {
    },
  • "success": true
}

Update Event Monitoring Profile

Request Body schema: application/x-www-form-urlencoded
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:

  • 0: Video panel
  • 1: View
showEventsList
boolean

Whether to show the list of events on receipt.

showNewestEvent
boolean

Whether to show only the newest event on receipt.

Responses

Response samples

Content type
application/json
null

Delete Event Monitoring Profile

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

List Triggered Event Links

path Parameters
profile
required
string

The name of the profile for which to list triggered links.

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "triggeredEvents":
    [
    ]
}

Create Event Monitoring Link

path Parameters
profile
required
string

The name of the profile to target.

Request Body schema: application/x-www-form-urlencoded
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:

  • 1: Soft trigger
  • 2: Time trigger
  • 3: Input trigger
  • 4: Video loss
  • 5: Video motion
  • 6: Device disconnected
  • 7: Serial port
  • 8: Serial profile
  • 9: Health event
  • 10: Button
  • 11: Analytics
  • 12: Group
  • 13: Video disconnected
  • 14: Audio disconnected
  • 15: Outbound connection
  • 16: Default
  • 17: Access control event
  • 18: Access control disconnected
  • 19: Serial port disconnected
  • 20: Record idle
eventSourceExtra
number

An additional identifier needed to trigger the event, if required.

This value is necessary for the following 'eventSourceType' values:

  • 7 (Serial port): The serial rule/keyword ID
  • 8 (Serial profile): The serial rule/keyword ID
  • 9 (Health event): The health event type
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:

  • 1 (View): The view name
  • 3 (Tour): The tour name
  • 4 (Video): The ID of the video stream
  • 5 (Digital preset): The ID of the video stream
  • 7 (Audio): The ID of the audio stream
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:

  • 1: Switch to view
  • 2: Play sound file
  • 3: Switch to tour
  • 4: Switch to video
  • 5: Log message
  • 6: Switch to digital PTZ preset
  • 7: Switch to audio
eventTargetExtra
string

An extra identifier necessary to complete the client action, if applicable.

The meaning of the value depends on the 'eventTargetType' property:

  • 6 (Digital preset): The ID of the digital preset
eventTargetFolders
string

The folder path to the event target, if applicable.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "event":
    {
    }
}

Update Event Monitoring Link

path Parameters
profile
required
string

The name of the profile containing the link.

Request Body schema: application/x-www-form-urlencoded
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:

  • 1: Soft trigger
  • 2: Time trigger
  • 3: Input trigger
  • 4: Video loss
  • 5: Video motion
  • 6: Device disconnected
  • 7: Serial port
  • 8: Serial profile
  • 9: Health event
  • 10: Button
  • 11: Analytics
  • 12: Group
  • 13: Video disconnected
  • 14: Audio disconnected
  • 15: Outbound connection
  • 16: Default
  • 17: Access control event
  • 18: Access control disconnected
  • 19: Serial port disconnected
  • 20: Record idle
eventSourceExtra
number

An additional identifier needed to trigger the event, if required.

This value is necessary for the following 'eventSourceType' values:

  • 7 (Serial port): The serial rule/keyword ID
  • 8 (Serial profile): The serial rule/keyword ID
  • 9 (Health event): The health event type
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:

  • 1 (View): The view name
  • 3 (Tour): The tour name
  • 4 (Video): The ID of the video stream
  • 5 (Digital preset): The ID of the video stream
  • 7 (Audio): The ID of the audio stream
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:

  • 1: Switch to view
  • 2: Play sound file
  • 3: Switch to tour
  • 4: Switch to video
  • 5: Log message
  • 6: Switch to digital PTZ preset
  • 7: Switch to audio
eventTargetExtra
string

An extra identifier necessary to complete the client action, if applicable.

The meaning of the value depends on the 'eventTargetType' property:

  • 6 (Digital preset): The ID of the digital preset
eventTargetFolders
string

The folder path to the event target, if applicable.

Responses

Response samples

Content type
application/json
null

Delete Event Monitoring Link

path Parameters
profile
required
string

The name of the profile containing the link.

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Register Event Monitoring Profile Event Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Unregister Event Monitoring Profile Event Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Events

List Active Events

query Parameters
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:

  • 1: Video motion
  • 2: Video loss
  • 3: Input trigger active
  • 4: Serial keyword match
  • 5: Serial rule match
  • 6: Button input active
  • 7: Device failure
  • 8: Device temperature alarm
  • 9: Device fan alarm
  • 10: Device PSU alarm
  • 11: Storage alarm
  • 12: License expired
  • 13: Video throttling
  • 14: System voltage alarm
  • 15: System temperature alarm
  • 16: System fan alarm
  • 17: Archive connection alarm
  • 18: Archive task alarm
  • 19: Stored content old
  • 20: Archived content old
  • 21: Device disconnected
  • 22: Soft trigger active
  • 23: Time trigger active
  • 24: Analytic rule triggered
  • 25: Outbound connection failure
  • 26: Security integration connection failure
  • 27: Security integration alert
  • 28: Security integration alarm
  • 29: Serial port connection error

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "events":
    [
    ]
}

Security Integrations

List Security Devices

query Parameters
s
required
Array of strings

The session ID(s) of server(s) from which to retrieve devices.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "devices":
    [
    ]
}

List Device Sensors

query Parameters
s
required
string

The session ID of the server with the device.

device
required
integer

The ID of the security device.

Responses

Response samples

Content type
application/json
{
  • "sensors":
    [
    ],
  • "success": true
}

Perform Sensor Action

Request Body schema: application/x-www-form-urlencoded
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:

  • 0: None
  • 1: Lock
  • 2: Unlock
  • 3: Arm
  • 4: Disarm
  • 5: Activate
  • 6: Deactivate
  • 7: Enable reader
  • 8: Disable reader
  • 9: Card presented
  • 10: Input supervised
  • 11: Input unsupervised
  • 12: Input normal
  • 13: Arm (away)
  • 14: Arm (stay)
  • 15: Arm (no entry delay)
timeout
integer

A number of seconds after which to timeout if the sensor is not responding.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "actionSuccessful": true,
  • "operatorStatus": 0,
  • "deviceId": 4849920,
  • "sensorId": 4849921
}

Device Login

Request Body schema: application/x-www-form-urlencoded
One of
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

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "token": "1bd7c559-48a6-4acb-b4bf-e342aaa18e75",
  • "expiration": "2018-07-25T20:25:46Z",
  • "sensors":
    [
    ]
}

Verify Device Login

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "valid": true
}

Device Logout

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Service

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.

Login

Request Body schema: application/x-www-form-urlencoded
u
required
string

The username of the web service administrative account.

p
required
string

The password of the web service administrative account.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "expires": "Mon Jan 2 15:04:05 -0700 MST 2006"
}

Logout

Authorizations:
Request Body schema: application/x-www-form-urlencoded

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Get Admin Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "username": "admin",
  • "accessLevel": 2
}

Update Admin Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
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:

  • 0: All clients may access
  • 1: Access over the web relay is forbidden
  • 2: Access is allowed only over the loopback device
localhostRestriction
boolean

DEPRECATED. Provide the accessLevel property instead.

Whether to restrict access to the service configuration to requests originating from the localhost. This parameter will be ignored if the accessLevel property is provided on the request body.

Responses

Response samples

Content type
application/json
null

Get Basic Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "name": "My Webservice",
  • "url": "www.mywebservice.com",
  • "ports":
    {
    },
  • "csrf": true,
  • "loginExpiration": 30,
  • "inactivityTimeout": 5,
  • "autocomplete": true,
  • "relay": false,
  • "httpPolicy": 2
}

Update Basic Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
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:

  • 0 allow HTTP
  • 1 redirect HTTP to HTTPS
  • 2 disable HTTP (accept no connections on the HTTP port)

Responses

Response samples

Content type
application/json
null

Get SSL Configuration Type

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "type": 1
}

Delete SSL Configuration

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.

Authorizations:
Request Body schema: application/x-www-form-urlencoded

Responses

Response samples

Content type
application/json
null

Get External SSL Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "sslConfig":
    {
    }
}

Update External SSL Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Get ACME SSL Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "sslConfig":
    {
    },
  • "autoRenew": "true"
}

Update ACME SSL Configuration

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

Authorizations:
Request Body schema:
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "token": "ec213cdc-3eca-42af-8c58-d2dc6f783c87"
}

Get ACME SSL Configuration Status

Authorizations:
query Parameters
token
required
string

The unique token returned from a successful POST to /v1/service.web/config/ssl/acme.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "status": 1,
  • "restart": false
}

Get Updates Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{}

Update Updates Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
url
required
string

The evFileInfo URL to set.

timeout
required
string

The update download timeout to set.

Responses

Response samples

Content type
application/json
null

Check for Updates

Authorizations:
query Parameters
action
required
string
Value: "updatecheck"

The value 'updatecheck'.

updates_file
required
string

The location of an evFileInfo manifest containing information about updates.

Responses

Response samples

Content type
application/json
{}

Download Update

Authorizations:
Request Body schema: application/x-www-form-urlencoded
action
required
string
Value: "downloadupdate"

The value 'downloadupdate'.

version
required
string

The update version to download.

Responses

Response samples

Content type
application/json
null

Get Update Download Status

Authorizations:
query Parameters
action
required
string
Value: "downloadupdatestatus"

The value 'downloadupdatestatus'.

version
required
string

The version for which you wish to check the download status.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "status": 1,
  • "current_file_size": 58842316,
  • "total_file_size": 94434530
}

Apply Update

Authorizations:
Request Body schema: application/x-www-form-urlencoded
action
required
string
Value: "update"

The value 'update'.

version
required
string

The update version to apply.

Responses

Response samples

Content type
application/json
null

Get Servers Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "servers":
    [
    ]
}

Create Server Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Update Server Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "restart": false,
  • "id": 8,
  • "passthroughStatus": 1,
  • "powerUserStatus": 0
}

Delete Server Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
id
required
number

The ID of the server you wish to update.

Responses

Response samples

Content type
application/json
null

Export Servers Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "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=="
}

Import Servers Configuration

Authorizations:
Request Body schema:
One of
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "restart": true,
  • "servers":
    [
    ]
}

Get Remote Servers Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "servers":
    [
    ]
}

Create Remote Server Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Update Remote Server Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
null

Delete Remote Server Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
id
required
number

The ID of the remote server you wish to remove.

Responses

Response samples

Content type
application/json
null

Get Remote Listener Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "enabled": true,
  • "port": 35111
}

Update Remote Listener Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
enabled
required
boolean

Whether or not the remote listener should be enabled.

port
required
number

The port the remote listener should use.

Responses

Response samples

Content type
application/json
null

Get Logging Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "level": 1,
  • "type": "H",
  • "interval": 10,
  • "count": 1
}

Update Logging Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
type
required
string
Enum: "H" "M" "D" "W"

The unit of time by which logs should be delimited.

Enumerated:

  • H: hours
  • M: minutes
  • D: days
  • W: weeks
level
required
number
Enum: 0 1 2 3

The level of verbosity at which logs should be set.

Enumerated:

  • 0: error
  • 1: warning
  • 2: info
  • 3: debug (verbose)
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "restart": true
}

Get External Auth Configuration

Authorizations:

Responses

Response samples

Content type
application/json
{}

Update External Auth Configuration

Authorizations:
Request Body schema: application/x-www-form-urlencoded
type
required
number
Enum: 0 1

The type of external authentication in use.

Enumerated:

  • 0: none
  • 1: Enterprise Manager
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.

Responses

Response samples

Content type
application/json
null

Get Service Info

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "name": "Internal web service API",
  • "version":
    {
    }
}

Get Service Status

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "ssl":
    {
    },
  • "pushNotifications":
    {
    },
  • "updates": true
}

Get Service Connectivity Status

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "externalIp": "8.67.121.203",
  • "lastUpdated": "2011-08-30T13:22:53.108Z",
  • "connectivity":
    {
    },
  • "internalIp":
    [
    ],
  • "relay":
    {
    }
}

Get Server Session Status Deprecated

Deprecated This endpoint was deprecated in version 9.4.

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "servers":
    [
    ],
  • "remoteServers":
    [
    ]
}

Get Discovered Servers

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "servers":
    [
    ]
}

Get Address Info

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "addresses":
    {
    }
}

External Auth

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:

  • Obtain a login token via [POST /auth.web]
  • Perform any HTTP interactions as usual, supplying the retrieved token on all requests
  • Destroy the token via [POST /auth.web/logout] when finished

Currently, the only supported external authentication service is the exacqVision Enterprise Manager.

Get External Auth Information

Responses

Response samples

Content type
application/json
{}

Login

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "auth": "b29d8790-0247-49b7-8a1c-7dba4c4ff6ba",
  • "expiration": "2017-08-30T13:22:53.404Z"
}

Logout

Authorizations:

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Status

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).

Request for specific item(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.

Request for overall status of one or more server(s):

  • 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.

Get Status

query Parameters
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.

Responses

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "camera":
    [
    ],
  • "trigger":
    [
    ],
  • "map":
    [
    ]
}

Push Notifications

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.

Get Encryption Key

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.

Responses

Response samples

Content type
application/json
{
  • "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-----"
}

Register Push Notification Client

Request Body schema: application/x-www-form-urlencoded
token
required
string

The client token.

type
required
int
Enum: 0 1 2

The type of service for the client.

Available Values:

  • 0: APNS (iOS)
  • 1: GCM (Android Google Play)
  • 2: MPNS (Windows Phone 8)
encrypted
boolean

Whether the token is encrypted using the key provided in 'Get Encryption Key'. Note: This is only required for MPNS clients.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "id": "as33nslk3vass"
}

Update Push Notification Client

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.

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "id": "as33nslk3vass"
}

Unregister Push Notification Client

Request Body schema: application/x-www-form-urlencoded
id
required
string

The ID generated for the registered client via 'Register Push Notification Client'.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Register Event Monitoring Profile Event Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Unregister Event Monitoring Profile Event Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Analytic Rule: Subscribe to Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Analytic Rule: Unsubscribe from Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Search

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:

  • A "play head" - the current reference time of the search (somewhere between start and end times provided). See timestamp.web
  • A playback speed - the rate (and direction) at which to progress the reference time. See playspeed.web
  • Controls for stepping through individual frames. See step.web

As 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:

  • At least one of camera, audio, or serial parameters are required or a 400 response will be returned.
  • A paused search will return the same image over and over again from video.web.

Get Frame at Time

query Parameters
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:

  • 0: Native JPEG
  • 1: MPEG1
  • 2: MPEG2
  • 3: H.264
  • 4: MPEG4
  • 5: H.264
  • 6: Transcoded JPEG

The value requested must be available for the requested camera. The available values can be found in the formats property on the response camera object. See the response from Cameras

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.

Responses

Response samples

Content type
image/jpeg
Binary data of the video frame.

Retrieve Single Recorded Frame

query Parameters
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:

  • 0: Native JPEG
  • 6: Transcoded JPEG

Either of these values must be present in the formats property on the response camera object from Cameras

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.

Responses

Response samples

Content type
image/jpeg
Binary data of the video frame.

Create a Metadata Search

query Parameters
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.

Responses

Response samples

Content type
application/json
Example
{
  • "sessionId": "0x27553f45",
  • "success": true,
  • "cameras":
    {
    },
  • "audio": { }
}

Create a Search

query Parameters
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 json format.

Responses

Response samples

Content type
application/json
{
  • "search_id": "0x257a8942",
  • "frames": 7866,
  • "start_time": "2018-06-20T13:56:21Z",
  • "end_time": "2018-06-20T14:01:21Z",
  • "frameCounts":
    {
    },
  • "audioInfo":
    [
    ]
}

Get Search Status

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.

query Parameters
s
required
string

The search id

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "status":
    {
    }
}

Get the Reference Time

query Parameters
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.

Responses

Response samples

Content type
{
  • "time": "2018-06-20T14:01:21Z",
  • "timeWithMs": "2018-06-20T14:01:21.002Z"
}

Get Playspeed

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

query Parameters
search_id
required
string

The search id to get the current playspeed for.

output
string
Value: "json"

The output format

Responses

Response samples

Content type
{
  • "speed": "100"
}

Set Playspeed

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.

path Parameters
speed
required
string [-]?\d+

The new playspeed

query Parameters
search_id
required
string

The search id to set the playspeed for.

output
string
Value: "json"

The output format

Responses

Response samples

Content type
null

Step Frames

Step forward or backward n frames at a time.

path Parameters
steps
required
string [-+]?\d+

The number of steps to make

query Parameters
search_id
required
string

The search id to step forward or backward.

output
string
Value: "json"

The output format

Responses

Response samples

Content type
{
  • "frame": "217"
}

Thumbnail Search

query Parameters
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:

  • 0: Native JPEG
  • 6: Transcoded JPEG

The value requested must be available for the requested camera. The available values can be found in the formats property on the response camera object. See the response from Cameras

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.

Responses

Response samples

Content type
{
  • "success": true,
  • "session_id": "search-id",
  • "frames": 1,
  • "frames_timestamps":
    [
    ],
  • "start": 1528366560,
  • "end": 1528366560
}

Export Video

Request for creating, managing, and downloading an export is done with a request to export.web.

List export formats:

Retrieving the valid export formats is done with a GET request to export.web with no parameters.

Create an export:

Creating an export is much like creating a Search.

  • At least one of camera, audio, or serial parameters are required or a 400 response will be returned.
  • The following parameters are also required when creating an export: s, start, end.
  • Use the format parameter to specify the export format. If left unspecified the default format ps_zip will be chosen.
  • The optional name parameter is used to give a different name to the export when it is downloaded.

Get current status of an export:

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.

Download an export:

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

Finish/Destroy an export:

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.

query Parameters
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 Export with a suffix that matches the export format.

action
string
Enum: "download" "finish"

The action to perform. Valid values:

  • download: Request to download a finished export.
  • finish: Free any resources associated with an export.
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

Responses

Response samples

Content type
Example
{
  • "success": true,
  • "formats":
    [
    ]
}

Video Push

List Video Push Targets

query Parameters
s
required
Array of strings

The session id of server(s) from which to retrieve targets.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "targets":
    [
    ]
}

Create/Update Video Push Target

Request Body schema: application/x-www-form-urlencoded
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:

  • 0: Live Video
  • 1: Live Audio
  • 2: Live Serial
  • 3: Live Digital PTZ
  • 4: Live Tours
  • 5: Live Custom Layouts
  • 6: Live Full Screen
  • 7: Live Maps
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "target":
    {
    }
}

Get Video Push Messages

path Parameters
guid
required
string

The GUID of the client retrieving messages

query Parameters
s
required
Array of strings

The session id of server(s) from which to retrieve targets.

Responses

Response samples

Content type
application/json
Example
{
  • "success": true,
  • "events":
    [
    ]
}

Send Video Push Message

path Parameters
guid
required
string

The GUID of the client sending the message

Request Body schema: application/x-www-form-urlencoded
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

  • 0: Display Settings
  • 1: Live View
  • 2: Live Tour
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 Settings

An array of the display settings to apply, defined by the following enum:

  • 0: Full Screen
  • 1: Hide Toolbar
  • 2: Hide Navigation Bar

Live View

An object describing the view via the following JSON-schema:

{
  "type": "object",
  "properties": {
    "items": {
      "description": "View content for pushed live views.",
      "type": "array",
      "items": {
        "description": "The individual items in the view."
        "type": "object",
        "properties": {
          "id": {
            "description": "The ID of the item",
            "type": "string"
          },
          "server": {
            "description": "The server ID of the server associated with this item",
            "type": "number"
          },
          "type": {
            "description": "The type of item.\n\nAvailable Values:\n+ 1: Camera\n+ 3: Map",
            "type": "number",
            "enum": [1, 3]
          },
          "slot": {
            "description": "The index of the slot this item should be applied to.",
            "type": "number"
          },
          "digitalPtzType": {
            "description": "The type of digital PTZ to apply to this item.\n\nAvailable Values:\n+ 1: Normal\n+ 2: Dewarp\n + 3: Panorama\n+ 4: Dual View",
            "type": "number",
            "enum": [1, 2, 3, 4]
          }
        },
        "required": ["id", "server", "type", "slot"]
      }
    },
    "audioInput": {
      "description": "An audio input to be added to the view.",
      "type": "object",
      "properties": {
        "id": {
          "description": "The ID of the audio input.",
          "type": "string"
        },
        "server": {
          "description": "The session ID of the audio input.",
          "type": "string"
        }
      }
    },
    "layout": {
      "description": "Size of the layout to apply in the view.",
      "type": "number",
      "min": 0
    }
  },
  "required": ["items", "layout"]
}

Live Tour

An object describing the tour via the following JSON-schema:

{
  "type": "object",
  "properties": {
    "name": {
      "description": "The name of the tour",
      "type": "string"
    }
    "folders": {
      "description": "A list of the names of the parent folders, in order from the root to the tour.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": ["name", "folders"]
}

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "messageId": "85ececde-09b0-4593-abda-35b97f5285c9",
  • "sessionIds":
    [
    ]
}

Get Video Push Message Status

path Parameters
messageId
required
string

The ID of the sent message.

query Parameters
s
required
Array of strings

The session id of server(s) from which to retrieve message status.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "status": "Pending",
  • "applied":
    [
    ]
}

Users

List Users

Retrieve the list of users

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "users":
    [
    ]
}

Create User

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.

query Parameters
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:

  • 3: Custom
  • 4: Power User
  • 5: Full Admin
  • 6: User Admin
  • 10: Live Only
  • 11: Search Only
  • 12: Live & Search
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:

  • 0: Normal
  • 1: LDAP
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 grpGroupPermission does not have the video bit set and admin privileges are set to none.

grpAudios
string

A comma separated list of audio ids this group should have access to. This is only required if the relevant grpGroupPermission does not have the audio bit set and admin privileges are set to none.

grpSerials
string

A comma separated list of serial ids this group should have access to. This is only required if the relevant grpGroupPermission does not have the serial bit set and admin privileges are set to none.

grpSoftTriggers
string

A comma separated list of soft trigger ids this group should have access to. This is only required if the relevant grpGroupPermission does not have the soft trigger bit set and admin privileges are set to none.

Responses

Response samples

Content type
application/json
null

Update a User

Updating a user or group is almost identical to creating one.

query Parameters
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:

  • 3: Custom
  • 4: Power User
  • 5: Full Admin
  • 6: User Admin
  • 10: Live Only
  • 11: Search Only
  • 12: Live & Search
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:

  • 0: Normal
  • 1: LDAP
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 grpGroupPermission does not have the video bit set and admin privileges are set to none.

grpAudios
string

A comma separated list of audio ids this group should have access to. This is only required if the relevant grpGroupPermission does not have the audio bit set and admin privileges are set to none.

grpSerials
string

A comma separated list of serial ids this group should have access to. This is only required if the relevant grpGroupPermission does not have the serial bit set and admin privileges are set to none.

grpSoftTriggers
string

A comma separated list of soft trigger ids this group should have access to. This is only required if the relevant grpGroupPermission does not have the soft trigger bit set and admin privileges are set to none.

originalName
string

This is used to facilitate renaming a user. To rename a user set this to the original username and the name parameter to the desired username.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Delete a User

Delete an existing user.

query Parameters
s
required
string

The session id of the server.

user
required
string

The name of the user to delete.

Responses

Response samples

Content type
application/json
null

List Groups

Retrieve the list of user groups

query Parameters
s
required
string

The session id of the server.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "groups":
    [
    ]
}

Bookmarks

List Bookmarks

query Parameters
s
required
string

The session id(s) of the server(s).

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "bookmarks":
    [
    ]
}

Create Bookmark

query Parameters
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:

  • 0 - Camera
  • 1 - Audio
  • 2 - Serial
  • 3 - Event
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "bookmark":
    {
    }
}

Update Bookmark

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "bookmark":
    {
    }
}

Delete Bookmark

query Parameters
s
required
string

The session id(s) of the server(s).

guid
required
string

The GUID of the bookmark to delete.

Responses

Response samples

Content type
application/json
null

List Cases

query Parameters
s
required
string

The session id(s) of the server(s).

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "cases":
    [
    ]
}

Create Case

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "case":
    {
    }
}

Update Case

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "case":
    {
    }
}

Delete Case

query Parameters
s
required
string

The session id(s) of the server(s).

guid
required
string

The GUID of the case to delete.

Responses

Response samples

Content type
application/json
null

Create Bookmark Item

query Parameters
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:

  • 0 - Camera
  • 1 - Audio
  • 2 - Serial
  • 3 - Event
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.

Responses

Response samples

Content type
application/json
null

Delete Bookmark Item

query Parameters
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:

  • 0 - Camera
  • 1 - Audio
  • 2 - Serial
  • 3 - Event
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.

Responses

Response samples

Content type
application/json
null

Serial

List Serial Devices

query Parameters
s
required
string

The session id of server from which to retrieve serial ports.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "uart":
    [
    ],
  • "ip":
    [
    ]
}

Live Serial Data

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "stream": "12bahae7ab510zre",
  • "data":
    [
    ]
}

Search Serial Data

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "complete": true,
  • "stored":
    [
    ]
}

List Serial Profiles

query Parameters
s
required
string

The search ID from which to retrieve serial profiles.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "profiles":
    [
    ]
}

List Serial Profile Keywords

query Parameters
s
required
string

The session id of server from which to retrieve keywords.

profile
required
integer

The profile ID to retrieve keywords for.

Responses

Response samples

Content type
application/json
{
  • "keywords":
    [
    ],
  • "success": true
}

List Serial Profile Masks

query Parameters
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.

Responses

Response samples

Content type
application/json
{
  • "success": true,
  • "masks":
    [
    ]
}

List Serial Profile Replacements

query Parameters
s
required
string

The session id of server from which to retrieve replacements.

profile
required
integer

The profile ID to retrieve replacements for.

Responses

Response samples

Content type
application/json
{
  • "replacements":
    [
    ],
  • "success": true
}

List Serial Profile Rules

query Parameters
s
required
string

The session id of server from which to retrieve rules.

profile
required
integer

The profile ID to retrieve rules for.

Responses

Response samples

Content type
application/json
{
  • "rules":
    [
    ],
  • "success": true
}

Analytics

List Analytic Rules

query Parameters
s
required
string

The session id of server from which to retrieve rules.

Responses

Response samples

Content type
application/json
{
  • "rules":
    [
    ],
  • "success": true
}

Analytic Rule: Subscribe to Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Analytic Rule: Unsubscribe from Push Notifications

Request Body schema: application/x-www-form-urlencoded
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.

Responses

Response samples

Content type
application/json
{
  • "success": true
}

Audio

Get Audio

Request for both audio information as well as raw audio data is done with a request to audio.web.

Request the available formats:

audio.web: A request with no query parameters returns a Formats Response

Request for the available audio streams:

  • audio.web?s=1: Returns a Streams Response with the available audio streams (if any)

Request for live audio data:

  • 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.

Request for search (stored) audio data:

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.

query Parameters
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:

  • raw: Returns the stream as uniform PCM
  • native: Returns the data in whatever the native audio format for the stream is.
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.

Responses

Response samples

Content type
Example
{
  • "success": true,
  • "formats":
    [
    ]
}

Send Audio

Send raw audio data as the resquest body.

query Parameters
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:

  • raw: Returns the stream as uniform PCM
  • native: Returns the data in whatever the native audio format for the stream is.

Responses

Response samples

Content type
application/json
null

Export

Finish Export

End an export and free any resources held by it.

query Parameters
action
required
string
Value: "finish"

The action to perform. Valid values:

  • finish: Free any resources associated with an export.
export
required
string

The export ID returned from a successful request to create an export.

Responses

Response samples

Content type
application/json
null