Branch: HEAD Hash: eff70d86e358b6bdfa7b1e1a7f69846ccf155ec4

Introduction

Welcome to the Alula API. This service has a variety of features, for both internal and external use. The category of use case will largely correspond to the user types listed in the Access Control section.

Dealer Integration

The main use case for external systems integration is at the Dealer account level. If you are developing an integration for a dealer, this section will provide some introductory and reference notes to support your work.

Sandbox

Credentials

To start, you will need the following information to use the Sandbox environment:

With this information, you should be able to get started with Password Grant authentication to the API. You should also be able to log in to the Sandbox Alarmdealer URL with the supplied username and password.

Test Device

The next step is to set up a test device. This section assumes you will be using a Helix panel. You will need the following information about the panel:

You can register the device through the Sandbox Alarmdealer web portal, or using the devices.register RPC method. (If the device has been registered in another portal, you will need to remove it from your inventory there first.)

When you register this device with the Sandbox, we associate it with the Sanbox environment. Next you should power the panel and connect it to the internet. If it is connecting for the first time, it should automatically connect. If it has been online before, connected to a different server, then you will need to factory reset the panel, or send it a special command to cause it to connect to the new Sandbox environment.

Once connected, you should see the device status show ONLINE in the Sandbox Alarmdealer device list, or by querying the devices REST resource.

Authentication

Prerequisites

To write an application that consumes the Alula API, you will need a Client ID and a Client Secret. To use the Authorization Code Grant, described below, you must also have one or more Redirect URIs whitelisted in advance.

Resource Access

Any request for protected resources must include an Access Token. This must be included in an HTTP header as

Authorization: Bearer $ACCESS_TOKEN

An access token may be obtained in the following ways:

Password Grant

A user may log in with their Alula account username and password. This is done via a request to /oauth/token with the following fields URL-encoded in the query string (GET) or form-encoded in the request body (POST):

POST /oauth/token

grant_type=password
client_id=$CLIENT_ID
client_secret=$CLIENT_SECRET
username=$USERNAME
password=$PASSWORD

This request will return a JSON response like the following:

{
  "token_type": "bearer",
  "access_token": "$ACCESS_TOKEN",
  "expires_in": 3600,
  "refresh_token": "$REFRESH_TOKEN"
}

Authorization Code Grant

A login web interface is available via GET request to /login?client_id=$CLIENT_ID&response_type=code&redirect_uri=$REDIRECT_URI&state=. Note that redirect_uri must match a URI stored in the client record for the specified client_id. To request that a URI be added to this list, please contact Alula. response_type must be code. state is optional.

Upon visiting this login page, the user will be presented with the Alula logo; a summary of the request for authorization; form inputs for their username and password; and a submit button.

If the user correctly submits their username and password, the API will respond with a redirect header that sends the user to the requested redirect_uri, appending a query parameter code containing the authorization code. If state was included in the original GET request to /login, then it will be appended to the URI unmodified; this allows your application to include its own reference information about the request.

With this authorization code, your application can request an access token. This is done via a POST request to /oauth/token with the following fields form-encoded in the request body (POST):

POST /oauth/token

grant_type=authorization_code
client_id=$CLIENT_ID
client_secret=$CLIENT_SECRET
code=$AUTHORIZATION_CODE

Refresh Grant

A new access token may be obtained by supplying the refresh token. This is done via a request to /oauth/token with the following fields URL-encoded in the query string (GET) or form-encoded in the request body (POST):

POST /oauth/token

grant_type=refresh_token
client_id=$CLIENT_ID
client_secret=$CLIENT_SECRET
refresh_token=$REFRESH_TOKEN

Access Control

User Types

Some resources and methods are only accessible by certain user types.

Name uType Description
System 2 Highly-privileged system user
Station 4 Central station user
Dealer 8 Dealer user; child of station users
Technician 16 Technician user; child of dealer users
User 32 Normal user; child of dealer users
Sub-User 64 Child user; child of normal users

OAuth Scopes

As well as being protected by user types, at the lowest level, all resources and methods require a suitable OAuth scope. Available OAuth scopes are specified per OAuth client, and then a subset of the available scopes may be associated with a specific OAuth access/refresh token.

OAuth scopes have yet to be implemented. Look for it soon in a future release.

REST API (v1)

Background

Our REST API is exposed using version 1.0 of the JSON API specification.

We highly recommend going over the spec.

Result Options

Filters

The filter query parameter is used to filter results, and is in the format of an associated array, where the top-level keys are field names ($or operator an exception). The values of top-level keys is either an exact-match term, or another associative array where the keys are comparison operators.

Available Comparison Operators

Operator Value Comment
$gt Scalar; number, date Greater than (numeric)
$gte ^ Ditto Greater than or equal
$lt ^ Ditto Less than
$lte ^ Ditto Less than or equal
$not Scalar; any Not
$ne Scalar; any Not equal
$between Array; numbers, dates Between range
$notBetween ^ Ditto Not between range
$in Array; any Array of matches
$notIn Array; any Array of negative matches
$like Scalar; string Match string where % can be wildcard
$notLike Scalar; string Negative match string where % can be wildcard
$or Complex See example
$and Array of associative arrays Assoc. array where keys are field names, values like at top-level

Example

Javascript object representation of filter param:

{
  "someField": "some value",
  "someNumericField": {
    "$gt": 6
  },
  "$or": {
    "anotherField": 5,
    "yetAnother": {
      "$lt": 3
    }
  },
  "againField": {
    "$or": {
      "$gt": 1,
      "$lt": 10
    }
  },
  "nullField": null
}

Actual URI:

GET /rest/v1/resource
?filter[someField]=some%20value
&filter[someNumericField][$gt]=6
&filter[$or][anotherField]=5
&filter[$or][yetAnother][$lt]=3
&filter[againField][$or][$gt]=1
&filter[againField][$or][$lt]=10
&filter[nullField]

RSQL Filtering

You may also use the where query parameter to filter results using a REST Query Language (RSQL) expression. This filter parameter was added since it is compatible with the OpenAPI Specification. It allows you to use a single query string to filter the results with a SQL-like syntax:

GET /rest/v1/devices?where=programId=in=(32, 35) and onlineStatus==false

The where and filter parameters are compatible and may be included in the same request. In addition to the standard RSQL operators you may also use a custom =like= operator to match string values against a pattern.

Sorting

We implement sorting as described by the JSON API spec.

Custom Options

We have extended the JSON API specification by adding a query parameter, customOptions.

Available options are as follows:

omitRelationships

Default value: false

If included, this option will suppress the list of related resources when fetching a resource or list of resources.

Example:

  GET /rest/v1/devices?customOptions[omitRelationships]=true&filter[mac]=01:02:03:04:05:06

Deprecation

Patchable Field Deprecation

If a patchable field has been marked deprecated for a given user type, that means you can continue passing in that field with a patch request (without error) as long as you are not mutating the value.


Resource: admins

Base URL

/rest/v1/admins

Available methods: GET, PATCH, POST, DELETE

Description

Create, view, configure, and delete admins. When you use this resource to delete an admin, the admin will be marked as hidden and will no longer be able to login to the system.

Relationships

Name Type Cardinality
parent users To-one
address users-addresses To-one
phone users-phones To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
username system true true system system
uType system
userType system true
uLevel system
parentId system
dealerId system
stationId system
lastLogin system
dateEntered system true true
dateModified system true true
enteredBy system
modifiedBy system
pwch system
features system
featuresSelected system
eula system system
defMod system
rgActivated system
companyName system
nameFirst system true true system system
nameLast system true true system system
email system true true system system
timeOffset system
timezone system system
scope system system system
password false false system system

Resource: admins-users

Base URL

/rest/v1/admins/users

Available methods: GET, PATCH, POST, DELETE

Description

Allows system administrators view all users including hidden users. Hidden users may either be renamed or have their hidden field unset to recover deleted accounts.

Relationships

Name Type Cardinality
devices devices To-many
parent users To-one
dealer dealers To-one
address users-addresses To-one
phone users-phones To-one
preferences users-preferences To-one
pushtokens users-pushtokens To-many
revisions revisions To-many
revisionsCreated revisions To-many

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
username system true true system
uType system true
userType system true
uLevel system
parentId system true
dealerId system true
stationId system true
lastLogin system
dateEntered system true true
dateModified system true true
enteredBy system
modifiedBy system
pwch system
features system
featuresSelected system
eula system
defMod system
rgActivated system
companyName system true true
nameFirst system true true
nameLast system true true
email system true true
timeOffset system
timezone system
scope system
hidden system true true system

Resource: admins-webhooks

Base URL

/rest/v1/admins/webhooks

Available methods: GET, PATCH, POST, DELETE

Description


Read and delete WebHook endpoints for administrators.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system true true
userId system true true
reference system true true
url system true
secret system

Resource: billing-programs

Base URL

/rest/v1/billing/programs

Available methods: GET

Description


List available billing programs.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
name system
description system
paramsSchema system

Resource: dealers

Base URL

/rest/v1/dealers

Available methods: GET, PATCH, POST

Description


Create, update, and view dealers.

Relationships

Name Type Cardinality
devices devices To-many
users users To-many
address dealers-addresses To-one
phone dealers-phones To-one
contacts dealers-contacts To-many
revisions revisions To-many

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
stationId all true system system, station
companyName all true true system, station, dealer system, station
dateEntered all true true
dateModified all true true system, station, dealer
modifiedBy all system, station, dealer
enteredBy all
networkTroubleTimeout all system, station, dealer
acntNo all true system, station (deprecated), dealer (deprecated) system, station
nameFirst all system, station, dealer system, station
nameLast all system, station, dealer system, station
email all system, station, dealer system, station
relayGroupAllEnabled all system, station, dealer
relayGroupEnabled all system, station, dealer
pushNotificationEnabled all system, station, dealer
remoteUserLoggingFeatureEnabled all system, station, dealer
stationBilling all true system system
preferStationVoiceChannels all system, station, dealer
timezone all system, station, dealer system, station
mobileBranding all system, station system, station
defaultFeaturesSelected all system, station, dealer
signalSuppressOpenClose all system, station, dealer
signalSuppressBypass all system, station, dealer
showPrices all true system system
hidden system true
suspendedDevicesWaived system system system
username false false system, station
password false false system, station
uType false false system, station

Resource: dealers-addresses

Base URL

/rest/v1/dealers/addresses

Available methods: GET, PATCH

Description


Update and view dealers’ address contact information.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
companyName all true true
address1 all system, station, dealer
address2 all system, station, dealer
stNumber all system, station, dealer
stName all system, station, dealer
stDirection all system, station, dealer
city all system, station, dealer
state all system, station, dealer
zipCode all system, station, dealer

Resource: dealers-phones

Base URL

/rest/v1/dealers/phones

Available methods: GET, PATCH

Description


Update and view dealers’ phone contact information.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
companyName all true true
phonePriContact all system, station, dealer
phonePriCt all system, station, dealer
phoneSecContact all system, station, dealer
phoneSecCt all system, station, dealer
contactType all system, station, dealer
coPhPri all system, station, dealer
coPhSec all system, station, dealer
coPhSales all system, station, dealer
coPhService all system, station, dealer
coPhBilling all system, station, dealer

Resource: dealers-programs

Base URL

/rest/v1/dealers/programs

Available methods: GET, PATCH, POST, DELETE

Description


Create, configure, and delete dealer billing program bindings.

Relationships

Name Type Cardinality
dealer dealers To-one
billingProgram billing-programs To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
dealerId all true system, dealer system, dealer
billingProgramId all true system, dealer system, dealer
name all true true system, dealer system, dealer
description all system system, dealer system, dealer
params all system system
dateModified all true true
dateCreated all true true

Resource: dealers-accounts-transfers

Base URL

/rest/v1/dealers/accounts/transfers

Available methods: GET

Description

View dealer account transfers and their statuses

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all true true
dealerIdSrc all true true
dealerIdDst all true true
dateModified all true true
dateEntered all true true
dateCompleted all true true
companyNameSrc all true true
companyNameDst all true true
customerId all true true
customerName all true true
contactName all true true
contactEmail all true true
cancelled all true true
modifiedBy all true true
enteredBy all true true
authorized all true true
denied all true true
rejected all true true
reason all true true
excludeBillingPrograms all true true

Resource: dealers-branding

Base URL

/rest/v1/dealers/branding

Available methods: GET, PATCH, POST

Description


Dealer branding information, for customizing the appearance of mobile applications.

Relationships

Name Type Cardinality
dealer dealers To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
publishedRevision system system system
companyNameShort system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
companyNameLong system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
centralStationPhone system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
imageURL system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
supportURL system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
isImageSplash system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
splashBg system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
logoURL system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
logoBorderEnabled system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
enableSplash system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
enableKeypadLogo system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
contactName system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
contactEmail system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
logoFaviconUrl system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
primaryLogoUrl system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
webSplashUrl system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
primaryColor system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
secondaryColor system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
touchpadHeaderUrl system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
touchpadPackageUrl system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
contactPhone system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
navStyle system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
id system, station, dealer, technician, user, subUser system, station, dealer system, station, dealer
enteredBy system, station, dealer, technician, user, subUser
dateCreated system, station, dealer, technician, user, subUser
modifiedBy system, station, dealer, technician, user, subUser
dateModified system, station, dealer, technician, user, subUser
isEnabled system, station, dealer, technician, user, subUser
revision system, station, dealer, technician, user, subUser

Resource: dealers-suspensionlog

Base URL

/rest/v1/dealers/suspensionlog

Available methods: GET, PATCH, POST

Description


View a log of dealer suspend and restore activities

Relationships

Name Type Cardinality
dealer dealers To-one
user users To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
dealerId all true
userId all true
action all true
date all true true

Resource: dealers-contacts

Base URL

/rest/v1/dealers/contacts

Available methods: GET, PATCH, POST, DELETE

Description

Dealer emergency contact info

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
companyName all true true system, station, dealer system, station, dealer
contactName all system, station, dealer system, station, dealer
contactEmail all system, station, dealer system, station, dealer
contactPhone1 all system, station, dealer system, station, dealer
contactPhone2 all system, station, dealer system, station, dealer
contactFax all system, station, dealer system, station, dealer
id all
verified all
dealerId all true system, station, dealer system, station, dealer system, station, dealer
redirectUri false false system, station, dealer system, station, dealer system, station, dealer

Resource: dealers-features

Base URL

/rest/v1/dealers/features

Available methods: GET, PATCH, POST, DELETE

Description


Create, update, and view dealer default featuress.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
dealerId all true true system, dealer
deviceType all true true system, dealer system, dealer
featuresSelected.alarmTransmission all system, dealer
featuresSelected.alarmNotifications all system, dealer
featuresSelected.interactiveServices all system, dealer
featuresSelected.homeAutomation all system, dealer
featuresSelected.video all system, dealer
featuresSelected.twoWayVoice all system, dealer
featuresSelected.panelDownloading all system, dealer
featuresSelected.basePrice all system, dealer
featuresSelected.intrudeImpair all system, dealer
featuresSelected.weatherForecast all system, dealer
featuresSelected.weatherAlerts all system, dealer
featuresSelected.billingCustom all system, dealer
featuresSelected.activation all system, dealer
featuresSelected.vigilance all system, dealer
featuresSelected.programFee all system, dealer
featuresSelected.inAppAlarmCancelConfirm all system, dealer
featuresSelected.superGte30Day all system, dealer
featuresSelected.superGte14Day all system, dealer
featuresSelected.superGte7Day all system, dealer
featuresSelected.superGte24Hour all system, dealer
featuresSelected.superGte12Hour all system, dealer
featuresSelected.superGte6Hour all system, dealer
featuresSelected.superGte1Hour all system, dealer
featuresSelected.superGte15Min all system, dealer
featuresSelected.superGte5Min all system, dealer
featuresSelected.superGte200Sec all system, dealer
featuresSelected.superLt200Sec all system, dealer
featuresSelected false false system, dealer

Resource: dealers-rateplans

Base URL

/rest/v1/dealers/rateplans

Available methods: GET, PATCH, POST, DELETE

Description


Create, configure, and delete dealer rate plans.

Relationships

Name Type Cardinality
dealer dealers To-one
ratePlan rateplans To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
dealerId system true system system
ratePlanId system true system system system
carrier system true
deviceType system true true system system

Resource: devices-aliases

Base URL

/rest/v1/devices/aliases

Available methods: GET, PATCH, POST, DELETE

Description


Manage device aliases

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
deviceId all true system, station, dealer, technician, user system, station, dealer, technician, user
aliasType all true true system, station, dealer, technician, user system, station, dealer, technician, user
text all system, station, dealer, technician, user system, station, dealer, technician, user
zoneOrUserIndex all true true system, station, dealer, technician, user system, station, dealer, technician, user

Resource: devices

Base URL

/rest/v1/devices

Available methods: GET, PATCH

Description

The devices resource is used to view or update basic device information and settings.

Relationships

Name Type Cardinality
customer users To-one
deactiveCustomer users To-one
dealer dealers To-one
eventlog devices-eventlog To-many
receiverGroup receivers-groups To-one
helixUsers helix-users To-many
notifications devices-notifications To-many
users devices-users To-many
aliases devices-aliases To-many
featuresPrices devices-features-prices To-one
revisions revisions To-many
charges devices-charges To-many

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
mac all true true
sn all true true
dealerId all true
deactiveCustomerId all true
customerId all true
relayGroupEnabled all system, station, dealer, technician
interactiveEnabled all system, station, dealer, technician
remoteUserLoggingFeatureEnabled all system, station, dealer, technician
pushNotificationEnabled all system, station, dealer, technician
userSyncDisabled all system, station, dealer, technician
autoCfg all
connectedPanel all system
programId all true system
versionId all true system
meid all true system
imei all true system
iccid all true system
mno all true system
timezone all system, station, dealer, technician, user
onlineStatus all true system
onlineStatusTimestamp all
registeredBy all
dateInserted all
dateRegistered all true true
dateActivated all true true
friendlyName all true true system, station, dealer, technician, user
stationPhoneNumber all system, station, dealer, technician
callerIdPhoneNumber all true system, station, dealer, technician
stationAccountNumber all true system, station, dealer, technician
stationAuxNumber all true system, station, dealer, technician
overrideAccountNumber all system, station, dealer, technician
signalSuppressOpenClose all system, station, dealer, technician
signalSuppressBypass all system, station, dealer, technician
openCloseSuppression all system, station, dealer, technician
convertSiaToContactId all system, station, dealer, technician
downloaderPhoneNumber all
receiverGroupId all true system, station, dealer, technician
networkTroubleTimeout all system, station, dealer, technician
physicalAddress1 all true system, station, dealer, technician, user
physicalAddress2 all true system, station, dealer, technician, user
physicalStreetNumber all true system, station, dealer, technician, user
physicalStreetName all true system, station, dealer, technician, user
physicalStreetDirection all true system, station, dealer, technician, user
physicalCity all true system, station, dealer, technician, user
physicalState all true system, station, dealer, technician, user
physicalZip all true system, station, dealer, technician, user
physicalSiteNumber all true system, station, dealer, technician, user
physicalSuite all true system, station, dealer, technician, user
physicalFloor all true system, station, dealer, technician, user
physicalDescription all true system, station, dealer, technician, user
twoWayVoiceEnabled all system, station, dealer, technician
siaTwoWayVoiceEnabled all system, station, dealer, technician
dateDeactivated all true true
movedTo all true true
movedBy all true true
movedAt all true true
enforceFeatures all system
armingLevel all true true
lastArmedAt all true true
lastDisarmedAt all true true
testedAssemblyPartNumber all
assembledPcbPartNumber all
firmwarePartNumber all
featuresSelected.alarmTransmission all true (only =) system, station, dealer, technician
featuresSelected.alarmNotifications all true (only =) system, station, dealer, technician
featuresSelected.interactiveServices all true (only =) system, station, dealer, technician
featuresSelected.homeAutomation all true (only =) system, station, dealer, technician
featuresSelected.video all true (only =) system, station, dealer, technician
featuresSelected.twoWayVoice all true (only =) system, station, dealer, technician
featuresSelected.panelDownloading all true (only =) system, station, dealer, technician
featuresSelected.basePrice all true (only =) system, station, dealer, technician
featuresSelected.intrudeImpair all true (only =) system, station, dealer, technician
featuresSelected.weatherForecast all true (only =) system, station, dealer, technician
featuresSelected.weatherAlerts all true (only =) system, station, dealer, technician
featuresSelected.billingCustom all true (only =) system, station, dealer, technician
featuresSelected.activation all true (only =) system, station, dealer, technician
featuresSelected.vigilance all true (only =) system, station, dealer, technician
featuresSelected.programFee all true (only =) system, station, dealer, technician
featuresSelected.inAppAlarmCancelConfirm all true (only =) system, station, dealer, technician
featuresSelected.superGte30Day all true (only =) system, station, dealer, technician
featuresSelected.superGte14Day all true (only =) system, station, dealer, technician
featuresSelected.superGte7Day all true (only =) system, station, dealer, technician
featuresSelected.superGte24Hour all true (only =) system, station, dealer, technician
featuresSelected.superGte12Hour all true (only =) system, station, dealer, technician
featuresSelected.superGte6Hour all true (only =) system, station, dealer, technician
featuresSelected.superGte1Hour all true (only =) system, station, dealer, technician
featuresSelected.superGte15Min all true (only =) system, station, dealer, technician
featuresSelected.superGte5Min all true (only =) system, station, dealer, technician
featuresSelected.superGte200Sec all true (only =) system, station, dealer, technician
featuresSelected.superLt200Sec all true (only =) system, station, dealer, technician
anyTrouble all true
acFailure all true
lowBattery all true
serverCommFail all true
csCommFail all true
onboardEthernetTrouble all true
expansionSlot1Trouble all true
expansionSlot2Trouble all true
expansionSlot3Trouble all true
localSecurityAppDeviceTrouble all true
alarmPanelCoverTamper all true
alarmPanelWallTamper all true
lowBatteryZones all true
supervisoryZones all true
tamperZones all true
alarmZones all true
armingProtest all true
sirenTroubleCondition all true
pinPadTrouble all true
helipadTrouble all true
troubleZones all true
receiverJam all true
missingBattery all true
armingProtestGeneric all true
keyfobTrouble all true
keypadsLockedOut all true
keystrokeTamper all true
CEArmingSupervisionTroubleZones all true
masterCodeOutOfSync all true
dealerCodeOutOfSync all true
panelGenericTrouble all true
fireTrouble all true
bvn system, station, dealer, technician
ipOnlyEnabled system, station, dealer, technician

Resource: devices-cellular-events

Base URL

/rest/v1/devices/cellular/events

Available methods: GET, PATCH, POST

Description


No description provided.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all true true
deviceId all true true
dealerId all
customerId all
state all
reason all
createdAt all true true

Resource: devices-cellular-status

Base URL

/rest/v1/devices/cellular/status

Available methods: GET

Relationships

Name Type Cardinality
device devices To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
meid all
imei all
esn all
mdn all
iccid all
imsi all
accountName all
carrierName all
deviceGroup all
ratePlan all
state all
ipAddress all
createdAt all
updatedAt all
connected all
signalStrength all

Resource: devices-charges

Base URL

/rest/v1/devices/charges

Available methods: GET, PATCH, POST, DELETE

Description


Manage device billing charges

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
deviceId system true system system
name system true true system system
description system system system
price system true system system system
resolveFeaturePrice system system system
dateModified system true true
dateCreated system true true
dateCharged system true true
createdBy system
modifiedBy system

Resource: devices-chat-messages

Base URL

/rest/v1/devices/chat/messages

Available methods: GET, PATCH, POST

Description


Create and read device chat messages.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id user, subUser true true
deviceId user, subUser true true
eventId user, subUser true true user, subUser user, subUser
message user, subUser user, subUser user, subUser
dateCreated user, subUser true
createdBy user, subUser

Resource: devices-eventlog

Base URL

/rest/v1/devices/eventlog

Available methods: GET

Description


The device eventlog contains a list of all alarm events emitted by a device. It
makes the most sense to view the root of this resource via relationship link
from the devices resource;
i.e. /rest/v1/devices/<device UUID>/eventlog

Relationships

Name Type Cardinality
device devices To-one
customer users To-one
dealer dealers To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
deviceId all true
dealerId all true
customerId all true
groupId all
dateEntered all true true
relay all true
action all true
npv all true
relayStatus all true
signalAccountNumber all
signalEventQualifier all
signalEventCode all true
signalEventDescription all
signalPartition all true
signalUserZone all true
signalUserZoneType all
signalUserZoneAlias all
signalProtocol all true

Resource: devices-features-prices

Base URL

/rest/v1/devices/features/prices

Available methods: GET

Description

View device feature prices

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system, station, dealer, technician
base system, station, dealer, technician
alarmTransmission system, station, dealer, technician
alarmNotifications system, station, dealer, technician
interactiveServices system, station, dealer, technician
homeAutomation system, station, dealer, technician
video system, station, dealer, technician
twoWayVoice system, station, dealer, technician
panelDownloading system, station, dealer, technician
basePrice system, station, dealer, technician
intrudeImpair system, station, dealer, technician
weatherForecast system, station, dealer, technician
weatherAlerts system, station, dealer, technician
billingCustom system, station, dealer, technician
activation system, station, dealer, technician
vigilance system, station, dealer, technician
programFee system, station, dealer, technician
inAppAlarmCancelConfirm system, station, dealer, technician
superGte30Day system, station, dealer, technician
superGte14Day system, station, dealer, technician
superGte7Day system, station, dealer, technician
superGte24Hour system, station, dealer, technician
superGte12Hour system, station, dealer, technician
superGte6Hour system, station, dealer, technician
superGte1Hour system, station, dealer, technician
superGte15Min system, station, dealer, technician
superGte5Min system, station, dealer, technician
superGte200Sec system, station, dealer, technician
superLt200Sec system, station, dealer, technician

Resource: devices-notifications

Base URL

/rest/v1/devices/notifications

Available methods: GET, PATCH, POST

Description


This resource is used to configure alarm event notification preferences for devices.

Relationships

Name Type Cardinality
device devices To-one
user users To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
deviceId all true system, station, dealer, technician, user, subUser system, station, dealer, technician, user, subUser
userId all true system, station, dealer, technician, user, subUser system, station, dealer, technician, user, subUser
alarms all all system, station, dealer, technician, user, subUser
openClose all all system, station, dealer, technician, user, subUser
supervisory all all system, station, dealer, technician, user, subUser
troubles all all system, station, dealer, technician, user, subUser
bypassesDisables all all system, station, dealer, technician, user, subUser
testMisc all all system, station, dealer, technician, user, subUser
iViewNow all all system, station, dealer, technician, user, subUser

Resource: devices-programs

Base URL

/rest/v1/devices/programs

Available methods: GET, PATCH, POST, DELETE

Description


Create, and delete device to dealer billing program bindings.

Relationships

Name Type Cardinality
device devices To-one
dealerBillingProgram dealers-programs To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
deviceId all true system, station, dealer, technician system, station, dealer, technician
dealerProgramId all true system, station, dealer, technician system, station, dealer, technician
dateModified all true true
dateCreated all true true system, station, dealer, technician
dateEnrollmentEnd all true true

Resource: devices-relay-attempts

Base URL

/rest/v1/devices/relay/attempts

Available methods: GET, PATCH, POST

Description


Create and update signal relay attempts.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
groupId all system
mac all system
logFormat all system
receiverType all system
receiverName all system
receiverPath all system
dateModified all true true
dateEntered all true true
relayStatus all system system
receiverCallerId all system
versionMap system system
meshidMap system system
meshidReceiver system system

Resource: devices-users

Base URL

/rest/v1/devices/users

Available methods: GET, POST, DELETE

Description


Create and destroy devices-users to limit which sub-users have virtual keypad
access to a device.

Relationships

Name Type Cardinality
device devices To-one
user users To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
deviceId all true system, station, dealer, technician, user system, station, dealer, technician, user
userId all true system, station, dealer, technician, user system, station, dealer, technician, user

Resource: events-notifications-cameras

Base URL

/rest/v1/events/notifications/cameras

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete event trigger notifications for cameras. The authenticated user must have permissions to access the camera device and have a user type of System, Dealer, User, or Sub-User.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all true true all
userId all true all
deviceId all true true all
pushEnabled all all all
pushOptions.titleKey all all
pushOptions.titleArgs all all
pushOptions.bodyKey all all
pushOptions.bodyArgs all all
pushOptions.clickAction all all
pushOptions.data all all
reference all true all all
expires all all
ttl all all all

Resource: events-notifications-chats

Base URL

/rest/v1/events/notifications/chats

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete event trigger notifications for chats. The authenticated user must have permissions to access the device and have a user type of System, Dealer, User, or Sub-User.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system, user, subUser true true system, user, subUser
userId system, user, subUser true system, user, subUser
deviceId system, user, subUser true true system, user, subUser
pushEnabled system, user, subUser system, user, subUser system, user, subUser
pushOptions.titleKey system, user, subUser system, user, subUser
pushOptions.titleArgs system, user, subUser system, user, subUser
pushOptions.bodyKey system, user, subUser system, user, subUser
pushOptions.bodyArgs system, user, subUser system, user, subUser
pushOptions.clickAction system, user, subUser system, user, subUser
pushOptions.data system, user, subUser system, user, subUser
reference system, user, subUser true system, user, subUser system, user, subUser
expires system, user, subUser system, user, subUser
ttl system, user, subUser system, user, subUser system, user, subUser

Resource: events-notifications-doorbells

Base URL

/rest/v1/events/notifications/doorbells

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete event trigger notifications for doorbells. The authenticated user must have permissions to access the doorbell device and have a user type of System, Dealer, User, or Sub-User.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all true true all
userId all true all
deviceId all true true all
pushEnabled all all all
pushOptions.titleKey all all
pushOptions.titleArgs all all
pushOptions.bodyKey all all
pushOptions.bodyArgs all all
pushOptions.clickAction all all
pushOptions.data all all
reference all true all all
expires all all
ttl all all all

Resource: events-notifications-locks

Base URL

/rest/v1/events/notifications/locks

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete event trigger notifications for locks. The authenticated user must have permissions to access the Helix device and have a user type of System, Dealer, User, or Sub-User.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all true true all
userId all true all
deviceId all true true all
pushEnabled all all all
pushOptions.titleKey all all
pushOptions.titleArgs all all
pushOptions.bodyKey all all
pushOptions.bodyArgs all all
pushOptions.clickAction all all
pushOptions.data all all
reference all true all all
expires all all
ttl all all all
nodeId all true true all
deviceStatus.name all all
deviceStatus.on all all

Resource: events-notifications-signals

Base URL

/rest/v1/events/notifications/signals

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete event trigger notifications for signals. The authenticated user must have permissions to access the device and have a user type of System, Dealer, User, or Sub-User.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system, dealer, user, subUser true true system, dealer, user, subUser
userId system, dealer, user, subUser true system, dealer, user, subUser
deviceId system, dealer, user, subUser true true system, dealer, user, subUser
pushEnabled system, dealer, user, subUser system, dealer, user, subUser system, dealer, user, subUser
pushOptions.titleKey system, dealer, user, subUser system, dealer, user, subUser
pushOptions.titleArgs system, dealer, user, subUser system, dealer, user, subUser
pushOptions.bodyKey system, dealer, user, subUser system, dealer, user, subUser
pushOptions.bodyArgs system, dealer, user, subUser system, dealer, user, subUser
pushOptions.clickAction system, dealer, user, subUser system, dealer, user, subUser
pushOptions.data system, dealer, user, subUser system, dealer, user, subUser
reference system, dealer, user, subUser true system, dealer, user, subUser system, dealer, user, subUser
expires system, dealer, user, subUser system, dealer, user, subUser
ttl system, dealer, user, subUser system, dealer, user, subUser system, dealer, user, subUser
classification system, dealer, user, subUser true true system, dealer, user, subUser

Resource: events-notifications-zones

Base URL

/rest/v1/events/notifications/zones

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete event trigger notifications for zones. The authenticated user must have permissions to access the Helix device and have a user type of System, Dealer, User, or Sub-User.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all true true all
userId all true all
deviceId all true true all
pushEnabled all all all
pushOptions.titleKey all all
pushOptions.titleArgs all all
pushOptions.bodyKey all all
pushOptions.bodyArgs all all
pushOptions.clickAction all all
pushOptions.data all all
reference all true all all
expires all all
ttl all all all
zoneIndex all true true all
zoneStatus.name all all
zoneStatus.on all all

Resource: events-triggers

Base URL

/rest/v1/events/triggers

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete event triggers. The authenticated user must have permissions to access the provided event type and action type.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all all all
userId all true
reference all true all all
event all all
conditions all all all
action all all all
ttl all all all
expires all true

Resource: events-webhooks

Base URL

/rest/v1/events/webhooks

Available methods: GET, PATCH, POST, DELETE

Description


Create, read, update, and delete WebHook endpoints.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system, dealer system, dealer system, dealer
reference system, dealer true system, dealer system, dealer
url system, dealer system, dealer system, dealer
secret system, dealer system, dealer system, dealer

Resource: features-bysubject

Base URL

/rest/v1/features/bysubject

Available methods: GET, PATCH, POST

Description


Associates a billing plan with a subject.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all system
gpId all true system
subjectId all true system
subjectType all true system
dateStart all true system system
dateEnd all true system system
dateAssigned all true system
assignedBy all system
assignmentType all true true system

Resource: features-plans

Base URL

/rest/v1/features/plans

Available methods: GET, PATCH, POST

Description


Manage feature plans.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system system
gpId system true true system
name system true system system
description system system system
dateCreated system true true system
dateModified system true true system system

Resource: features-plansvideo

Base URL

/rest/v1/features/plansvideo

Available methods: GET, PATCH, POST, DELETE

Description


Manage feature prices for video associated with a specific Great Plains account.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all system
gpId all true true system
item all true system
overflow all true true system
count all true system system
price all true system system

Resource: features-prices

Base URL

/rest/v1/features/prices

Available methods: GET, PATCH, POST, DELETE

Description


Manages feature prices which allow administrators to set prices for each feature plan, feature, and device type.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system true true
gpId system true true system system
featureName system true true system system
deviceType system true true system system
price system true true system system system

Resource: goldmine-leads

Base URL

/rest/v1/goldmine/leads

Available methods: GET

Description


View goldmine leads information.

Relationships

Name Type Cardinality
dealer dealers To-one
devices devices To-many

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
dealerId all true
companyName all true true
url all
phone1 all
phone1Ext all
phone2 all
phone2Ext all
email1 all
email2 all
email3 all
salesStageTag all
salesStage all true
salesStageProcessed all
billAddress1 all
billAddress2 all
billCity all
billState all
billZip all
billCountry all
shipAddress1 all
shipAddress2 all
shipCity all
shipState all
shipZip all
shipCountry all
contactFirst1 all
contactLast1 all
contactFirst2 all
contactLast2 all
leadType all
leadClass all
yearsInBusiness all
numberOfEmployees all
numberOfTrucks all
preferredDistributer1 all
preferredDistributer2 all
preferredPanel1 all
preferredPanel2 all
preferredCentralStation all
sellAccounts all
alarmLic all
dateAdded all true true
dateModified all true true
modifiedBy all
dateEntered all true true
enteredBy all
campId all
gpBizName all
gpBizAcntNo all true
alarmDealerComId all
emergencyContact1 all
emergencyContact2 all
professionalOrgMemberships all
creditHold all true
salesPersonId all
specialPrice all
specialPriceStartDate all
specialPriceEndDate all
rmr all
rmrStartDate all
rmrEndDate all
2g all
sdmRankingNumber all
remark all
monthlyVolume all
smile all
sfId all

Resource: helix-cache-mfd

Base URL

/rest/v1/helix/cache/mfd

Available methods: GET, DELETE

Description

Retrieve and delete helix cached mfd data. If mfd is unknown, or a deserialization error occurs, then raw data bytes will be return in the data field, and name field will be null. If successful, data will hold the deserialized mfd object./n/r/n/rUsers below system level REQUIRE deviceId filter! Filter will be scanned for deviceIds and authorization will be checked. Top level deviceId field will be replaced with the checked authorized device list (deviceId: {$in: [ids]}). Regex and wildcard deviceIds not allowed

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
deviceId all true
code all true true
name all true
index all true true
section all true true
status all true
data all
dateModified all true true

Resource: helix-ha-nodes

Base URL

/rest/v1/helix/ha/nodes

Available methods: GET, PATCH, POST, DELETE

Description


Create, retrieve, and update Helix home automation nodes.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system system system
deviceId system true system
nodeId system true true system
hidden system true system

Resource: helix-users

Base URL

/rest/v1/helix/users

Available methods: GET, PATCH

Description


View helix users associated with device.

Relationships

Name Type Cardinality
device devices To-one
user users To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
deviceId all true
userId all true
number all true
pin all all
fobNumber all all
authMaster all all
authInstaller all all
authDealer all all
authSystemTest all all
authEditUserCredentials all all
authBypassZones all all
allowDisarm all all
allowStay all all
allowNight all all
allowAway all all
allowAllOff all all
allowLevel1 all all
allowLevel2 all all
allowLevel3 all all
allowLevel4 all all
allowLevel5 all all
allowLevel6 all all
allowLevel7 all all
allowLevel8 all all
syncNeeded all
isNew all

Resource: oauth-accesstokens

Base URL

/rest/v1/oauth/accesstokens

Available methods: GET, POST, DELETE

Description


View and delete OAuth access tokens that have been generated for current user.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all system
accessToken all true
clientName all
clientAuthor all
expires all true true
scope all
userId all true system
impersonatedBy all true
dateCreated all

Resource: oauth-clients

Base URL

/rest/v1/oauth/clients

Available methods: GET, PATCH, POST, DELETE

Description


Create, update, and delete OAuth clients.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system system system
clientSecret system system system
redirectUri system system system
clientName system true true system system
clientAuthor system true true system system
scope system system system
userId system true system system

Resource: oauth-refreshtokens

Base URL

/rest/v1/oauth/refreshtokens

Available methods: GET, DELETE

Description


View and delete OAuth refresh tokens that have been generated for current user.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
refreshToken all true
clientName all
clientAuthor all
expires all true
scope all

Resource: rateplans

Base URL

/rest/v1/rateplans

Available methods: GET, PATCH, POST, DELETE

Description


Manage rate plan settings.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
carrier system true true system
ratePlanName system true true system system
communicationPlanName system true true system system

Resource: receivers-binds

Base URL

/rest/v1/receivers/binds

Available methods: GET, PATCH, POST, DELETE

Description


Create, configure, and delete groupings between receivers and receiver groups.

Relationships

Name Type Cardinality
dealer dealers To-one
receiver receivers To-one
receiverGroup receivers-groups To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
dealerId all true system, station, dealer system, station, dealer
receiverId all true system, station, dealer system, station, dealer
receiverGroupId all true system, station, dealer system, station, dealer
priority all true all system, station, dealer
dateModified all true true
dateEntered all true true
createdBy all
modifiedBy all

Resource: receivers-connections

Base URL

/rest/v1/receivers/connections

Available methods: GET, PATCH, POST

Description


No description provided.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
path system true true
name system
stationId system
successCount system
failCount system
status system true
type system true
statusDate system true true

Resource: receivers-disabled

Base URL

/rest/v1/receivers/disabled

Available methods: GET, PATCH, POST, DELETE

Description


Manages receiver filters which allow administrators to disabled PSTN phone numbers.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
receiverPath system true true system system system
callerPhoneNumber system true true system system
enable system system system
dateCreated system
dateModified system true

Resource: receivers-groups

Base URL

/rest/v1/receivers/groups

Available methods: GET, PATCH, POST, DELETE

Description


Create, configure, and delete signal relay receiver groups.

Relationships

Name Type Cardinality
dealer dealers To-one
binds receivers-binds To-many
devices devices To-many

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
dealerId all true system, station, dealer system, station, dealer
name all true true all system, station, dealer system, station, dealer
description all all system, station, dealer system, station, dealer
dateModified all true true
dateEntered all true true
createdBy all
modifiedBy all

Resource: receivers

Base URL

/rest/v1/receivers

Available methods: GET, PATCH, POST, DELETE

Description


Create, configure, and delete signal relay receivers.

Relationships

Name Type Cardinality
dealer dealers To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all true
dealerId all true system, station, dealer system, station, dealer
receiverType all all system, station, dealer
name all true true all system, station, dealer system, station, dealer
description all all system, station, dealer system, station, dealer
path all true all system, station, dealer system, station, dealer
recvNum all all system, station, dealer
lineNum all all system, station, dealer
dealerAcnt all all system, station, dealer
appkey all all system, station, dealer
hbKey all all system, station, dealer
testing all all system, station, dealer
includeCustomerIp all all system, station, dealer
aes256 all all system, station, dealer
dateModified all true true
dateEntered all true true
createdBy all
modifiedBy all
status all
disabled all
username all all system, station, dealer
passwd all all system, station, dealer

Resource: revisions

Base URL

/rest/v1/revisions

Available methods: GET, PATCH, POST

Description


No description provided.

Relationships

Name Type Cardinality
creator users To-one
device devices To-one
user users To-one
dealer dealers To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system
model system
document system
operation system
documentId system true
revision system true
createdAt system true true
updatedAt system true
userId system true

Resource: self

Base URL

/rest/v1/self

Available methods: GET

Description


Retrieve the root of this resource to learn user type and hierarchy information.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
dealerId all
parentId all
uType all
userType all
impersonator all

Resource: stations

Base URL

/rest/v1/stations

Available methods: GET, PATCH, POST

Description


Create, read and update information for station accounts. A station account is
one level above a dealer account in the heirarchy.
- Dealer accounts can be assigned to station accounts.
- Station accounts can create dealer accounts.
- Station accounts have privileges to control the dealer accounts assigned to them if the dealer account has station billing enabled;
This includes users and devices belonging to those dealers. If station billing is disabled then the station’s access is limited.

Relationships

Name Type Cardinality
dealers dealers To-many

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
companyName all true true system, station, dealer system
dateEntered all true true
dateModified all true true system, station, dealer
modifiedBy all system, station, dealer
enteredBy all
acntNo all true system, station (deprecated), dealer (deprecated) system
email all system, station, dealer system
hidden system system
username false false system
password false false system
nameFirst false false system
nameLast false false system
uType false false system
timezone false false system

Resource: stations-contacts

Base URL

/rest/v1/stations/contacts

Available methods: GET, PATCH, POST, DELETE

Description

Station emergency contact info

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
companyName all true true system, station system, station
contactName all system, station system, station
contactEmail all system, station system, station
contactPhone1 all system, station system, station
contactPhone2 all system, station system, station
contactFax all system, station system, station
id all
verified all
receiverPath all system, station system, station system, station
stationId all system, station system, station system, station
redirectUri false false system, station system, station system, station

Resource: timeseries-signal

Base URL

/rest/v1/timeseries/signal

Available methods: GET

Relationships

No relationships available.

Fields

No field information available.


Resource: users

Base URL

/rest/v1/users

Available methods: GET, PATCH, POST, DELETE

Description

Create, view, configure, and delete users and sub-users.

When you use this resource to delete a user, the user will marked as hidden and will no longer be able to login to the system. Devices associated with the user will be unassigned and deactivated. Any user preferences for those devices will also be removed. All of the user’s sub-users will also be marked as hidden. Any sub-users with the Sub-User user type will also have their device user preferences removed.

Relationships

Name Type Cardinality
devices devices To-many
parent users To-one
dealer dealers To-one
address users-addresses To-one
phone users-phones To-one
preferences users-preferences To-one
pushtokens users-pushtokens To-many
revisions revisions To-many
revisionsCreated revisions To-many

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
username all true true system, station, dealer, technician, user, subUser system, station, dealer, technician, user
uType all true system, station, dealer, technician, user
userType all true system, station, dealer, technician, user
uLevel all
parentId all true system, station, dealer, technician, user
dealerId all true system, station, dealer, technician, user
stationId all true
lastLogin all
dateEntered all true true
dateModified all true true
enteredBy all
modifiedBy all
pwch all
features all
featuresSelected all system, station, dealer, technician system, station, dealer, technician
eula all system, station, dealer, technician, user, subUser
defMod all
rgActivated all
companyName all true true system, station, dealer, technician, user, subUser system, station, dealer, technician, user
nameFirst all true true system, station, dealer, technician, user, subUser system, station, dealer, technician, user
nameLast all true true system, station, dealer, technician, user, subUser system, station, dealer, technician, user
email all true true system, station, dealer, technician, user, subUser system, station, dealer, technician, user
timeOffset all
timezone all system, station, dealer, technician, user, subUser system, station, dealer, technician, user
scope all system, station, dealer, technician, user, subUser system, station, dealer, technician
password false false system, station, dealer, technician, user, subUser system, station, dealer, technician, user

Resource: users-addresses

Base URL

/rest/v1/users/addresses

Available methods: GET, PATCH

Description


Create, view, and configure users’ and sub-users’ address contact information.

Relationships

Name Type Cardinality
user users To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
username all true true
address1 all true system, station, dealer, technician, user, subUser
address2 all true system, station, dealer, technician, user, subUser
stNumber all true system, station, dealer, technician, user, subUser
stName all true system, station, dealer, technician, user, subUser
stDirection all true system, station, dealer, technician, user, subUser
city all true system, station, dealer, technician, user, subUser
state all true system, station, dealer, technician, user, subUser
zipCode all true system, station, dealer, technician, user, subUser
country all true system, station, dealer, technician, user, subUser
timeOffset all system, station, dealer, technician, user, subUser
timezone all system, station, dealer, technician, user, subUser

Resource: users-phones

Base URL

/rest/v1/users/phones

Available methods: GET, PATCH

Description


Create, view, and configure users’ and sub-users’ phone contact information.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
username all true true
phonePriContact all system, station, dealer, technician, user, subUser
phonePriCt all system, station, dealer, technician, user, subUser
phoneSecContact all system, station, dealer, technician, user, subUser
phoneSecCt all system, station, dealer, technician, user, subUser
contactType all system, station, dealer, technician, user, subUser
coPhPri all system, station, dealer, technician, user, subUser
coPhSec all system, station, dealer, technician, user, subUser
coPhSales all system, station, dealer, technician, user, subUser
coPhService all system, station, dealer, technician, user, subUser
coPhBilling all system, station, dealer, technician, user, subUser
cellText all system, station, dealer, technician, user, subUser

Resource: users-preferences

Base URL

/rest/v1/users/preferences

Available methods: GET, PATCH

Description


Create and view preferences.

Relationships

Name Type Cardinality
user users To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all
userId all true true
key all system, station, dealer, technician, user, subUser
value all system, station, dealer, technician, user, subUser
data all system, station, dealer, technician, user, subUser
inherited false false system, station, dealer, technician, user, subUser

Resource: users-pushtokens

Base URL

/rest/v1/users/pushtokens

Available methods: GET, PATCH, POST, DELETE

Description


Manage push notification tokens for Google Cloud Messaging and Apple Push Notifications

Relationships

Name Type Cardinality
user users To-one

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id system, user, subUser system, user, subUser
userId system, user, subUser true system, user, subUser
key system, user, subUser true system, user, subUser system, user, subUser system, user, subUser
type system, user, subUser true true system, user, subUser system, user, subUser system, user, subUser
version system, user, subUser true true system, user, subUser system, user, subUser
userAgent system, user, subUser
video system, user, subUser system, user, subUser system, user, subUser
doorbell system, user, subUser system, user, subUser system, user, subUser
security system, user, subUser system, user, subUser system, user, subUser

Resource: users-videoprofiles

Base URL

/rest/v1/users/videoprofiles

Available methods: GET, PATCH, POST, DELETE

Description


Video profile for users. This table contains the max camera/clip counts associated with a user.

Relationships

No relationships available.

Fields

Name Viewable By Sortable Filterable Patchable By Creatable By Required Of
id all system, station, dealer, technician system, station, dealer, technician
cameraPlanCount all true system, station, dealer, technician system, station, dealer, technician system, station, dealer, technician
clipPlanCount all true system, station, dealer, technician system, station, dealer, technician system, station, dealer, technician

RPC API (v1)

Background

Our RPC API is exposed using version 2.0 of the JSON-RPC specification.

Please go over the spec before proceeding.

Request

JSON-RPC requests, in our case, are made over HTTPS as POST requests to: /rpc/v1.

We make two exceptions to the JSON-RPC specification.

  1. The spec normally requires that you provide "jsonrpc":"2.0", but we allow you to omit this
  2. We allow two alternate ways of indicating the method you wish to call:
    • You may POST to /rpc/v1 and provide the "method" property as described in the JSON-RPC specification
    • Alternatively, you may POST to /rpc/v1/method/name and omit the method property from your request. If you use this technique, the method property will be ignored in favor of the URL path.

Important note: You must provide a value for the "id" property in order to receive responses to your requests. It can be set to any value you choose; the response will contain the same id.

You can submit multiple RPC calls in a single request, by providing a JSON array as your request body rather than a JSON object. The response in this case will also be an array. Each element of the array is subject to all the same considerations as for individual requests.

There is also a WebSocket channel that you can use to perform RPC requests.


Method: alarm.cancel

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/alarm/cancel

Description

Users and sub-users may call this method to verify that an alarm is cancelled.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/

Method: alarm.confirm

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/alarm/confirm

Description

Users and sub-users may call this method to verify that an alarm is confirmed.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/

Method: dealers.devices.stats.get

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/dealers/devices/stats/get

Description

Get device statistics for a given dealer

Parameters

Name Type Description Constraints
dealerId string Dealer ID (36-char UUID)

Method: dealers.restore

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/dealers/restore

Description

Restore service for a suspended dealer

Parameters

Name Type Description Constraints
dealerId string Dealer ID (36-character UUID)

Method: dealers.suspend

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/dealers/suspend

Description

Suspend service for a dealer

Parameters

Name Type Description Constraints
dealerId string Dealer ID (36-character UUID)

Method: devices.assign

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/assign

Description

Assign a device to a customer

Parameters

Name Type Description Constraints
customerId string Customer ID (36-char UUID)
dealerProgramId string Dealer billing program ID (36-char UUID) minLength: 36, maxLength: 36
deviceId string Device ID (36-char UUID)
pin string Optionally provide a Connect+ user PIN

Method: devices.cellular.history.get

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/cellular/history/get

Description

Retrieves cellular history for a device with a cellular interface. This is currently only supported by Verizon and it has a maximum date range of 7 days.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)
startAt string The earliest date to include in the results. format: date-time
stopAt string The latest date to include in the results. format: date-time

Method: devices.deactivate

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/deactivate

Description

Deactivate a cellular radio. This deactivates the Alula device and deactivates the radio if the device has an AT&T or Verizon cellular radio. Please note that Verizon CDMA devices are retired so they can no longer be activated once they have been deactivated.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.features.select

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/features/select

Description

Select device features

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)
featureOffsets[] array of integers This represents an array of feature offsets to enable. For list of feature offsets, see database table features_by_device

Method: devices.initialize

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/initialize

Description


Initialize a new device record. Only used internally during device
initialization.

Parameters

Name Type Description Constraints
assembledPcbPartNumber string The assembled printed circuit board part number
cellularCustomer string The cellular customer account
crc string 4 digit number; hexadecimal for Clare Controls D3 devices, decimal otherwise
firmwarePartNumber string The firmware part number
iccid string ICCID (hex string)
imei string IMEI (hex string)
mac string MAC address (hex, transmission order, colon/slash separated)
meid string MEID (hex string)
mno enum Mobile network operator
AKA cell/network carrier/provider
Default is VZW (Verizon Wireless)
[“VZW”, “ATT”]
moduleType string The cellular module type
productFamily string The product family
programId number Product type identifier
testedAssemblyPartNumber string The tested assembly part number

Method: devices.mac.generate

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/mac/generate

Description

Generate MAC addresses for a new device.

Parameters

Name Type Description Constraints
deviceType enum Device type to generate MAC address(es) for [“BAT-FIRE”]

Method: devices.programs.renew

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/programs/renew

Description

Renews participation in a billing program. Any applicable program fees will be charged and a new prepaid term will begin.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.rateplan.get

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/rateplan/get

Description


Get the devices rate plan either
Internet only, or
Both Internet and Cell.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.rateplan.set

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/rateplan/set

Description


Set the devices rate plan either
Internet only, or
Both Internet and Cell.

Parameters

Name Type Description Constraints
cell boolean true if rate plan includes cell, false if rate plan is to exclude cell [true, false]
deviceId string Device ID (36-char UUID)

Method: devices.reactivate

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/reactivate

Description

Re-Activate a cellular radio. This activates the Alula device and activates the radio if the device has an AT&T or Verizon cellular radio. Please note that Verizon CDMA devices are retired so they can no longer be activated once they have been deactivated.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.register

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/register

Description

Add a device to a dealer’s inventory

Parameters

Name Type Description Constraints
crc string 4 digit number; hexadecimal for Helix devices, decimal otherwise
dealerId string Dealer ID (36-character UUID)
mac string MAC address (hex, transmission order, colon/slash separated)
skipPartnerClaim boolean Set to true to skip Helix partner configuration [true, false]

Method: devices.replace

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/replace

Description

Allows you to replace a device by copying data from the old device to the new one. You may also choose to deactivate the old device after the data has been copied.

Parameters

Name Type Description Constraints
dealerProgramId string Dealer billing program ID the to device should use minLength: 36, maxLength: 36
from object required: [“deviceId”]
  from.deviceId string Device ID (36-char UUID)
  from.isDeactivated boolean Indicates the device should be deactivated [true, false]
to object required: [“deviceId”]
  to.deviceId string Device ID (36-char UUID)

Method: devices.resume

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/resume

Description

Resumes a Verizon cellular radio. This activates the Alula device and resumes the radio if the device has a Verizon cellular radio. This is not supported by AT&T devices so you must call devices.reactivate instead.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.session.init

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/session/init

Description

Initialize a devices session.
- Applies to Helix devices only.
- Only system applications should use.
- TBS

Parameters

Name Type Description Constraints
mac string MAC address (hex, transmission order, colon separated)
read object Specify which elements you want to read - devices / devProfiles are read by default.
  read.users boolean If true, helixUsers records are returned. [true, false]
  read.mfd[] array of integers If provided, an array of helix config data codes to return
write object desciption: Specify which elements you want to write to storage.
  write.device object
    write.device.programId number Product type identifier
    write.device.versionId number Product version identifier
    write.device.twoWayVoiceEnabled boolean tbs [true, false]
    write.device.siaTwoWayVoiceEnabled boolean tbs [true, false]
    write.device.featuresSelected object
      write.device.featuresSelected.homeAutomation boolean tbs [true, false]
    write.device.meid string,null MEID (hex string)
    write.device.imei string,null IMEI (hex string)
    write.device.iccid string,null ICCID (hex string)
    write.device.mno enum Mobile network operator
AKA cell/network carrier/provider
Default is VZW (Verizon Wireless)
[“VZW”, “ATT”, null]
    write.device.connectedPanel string The connected panel type
    write.device.friendlyName string Friendly name of panel
  write.mfd[] array of objects

Method: devices.services.restart

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/services/restart

Description

Restarts services for a device by activating the Alula device and by managing its cellular radio. If the device has a cellular radio then it will either be activated or restored. If the cellular radio is CDMA then it is restored since CDMA radios are retired and can no longer be activated once they have been deactivated.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.services.stop

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/services/stop

Description

Stops services for a device by deactivating the Alula device and by managing its cellular radio. If the device has a cellular radio then it will either be deactivated or suspended. If the cellular radio is CDMA then it is suspended since CDMA radios are retired and can no longer be activated once they have been deactivated.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.signal.add

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/signal/add

Description

Add a new signal to the eventlog

Parameters

Name Type Description Constraints
action number Signal action
customerId string Customer ID (36-char UUID)
dealerId string Dealer ID (36-char UUID)
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
groupId string Group ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
id string ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
logFormat enum Type of signal, Contact ID or SIA [“cid”, “sia”]
mac string Device MAC
relayStatus number Relay status
sequence integer Unique sequence from Helix 0x4F panel report commands
signalAccountNumber string Signal account number
signalEventCode string Signal event code
signalEventQualifier string Signal event qualifier
signalPartition string Signal partition
signalUserZone string Signal User/Zone
sn string Device SN (Serial Number)
timeout integer Unique timeout from Helix 0x4F panel report commands

Method: devices.signal.delivered

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/signal/delivered

Description

Update a signal action in the eventlog to indicate “delivered” to notification destination

Parameters

Name Type Description Constraints
dealerId string Dealer ID (36-char UUID)
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
groupId string Group ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
logFormat enum Type of signal, Contact ID or SIA [“cid”, “sia”]
mac string Device MAC

Method: devices.signal.update

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/signal/update

Description

Update a signal relayStatus in the eventlog

Parameters

Name Type Description Constraints
dealerId string Dealer ID (36-char UUID)
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
groupId string Group ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
logFormat enum Type of signal, Contact ID or SIA [“cid”, “sia”]
mac string Device MAC
relayStatus number Relay status
sequence integer Unique sequence from Helix 0x4F panel report commands

Method: devices.suspend

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/suspend

Description

Suspends a Verizon cellular radio. This deactivates the Alula device and suspends the radio if the device has a Verizon cellular radio. This is not supported by AT&T devices so you must call `devices.deactivate’ instead.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.transfer

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/transfer

Description

This method is deprecated and has been replaced with the users.transfer method.

Parameters

Name Type Description Constraints
dealerId string Destination dealer ID (36-character UUID). That is, the receiving dealer.
excludeBillingPrograms boolean Indicates that billing programs should not be transferred. They will be closed so the original dealer may be subjected to early termination penalties. [true, false]
macs[] array of strings An array of device MACs to be transferred.

Method: devices.unassign

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/unassign

Description

Revoke a device from a customer

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)

Method: devices.unregister

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/devices/unregister

Description

Unregister/remove a device from a dealer’s inventory.
- The device must first be ‘unassigned’ from a user.
- Only an admin, station, or dealer user may ‘unregister’ a device.
- A station or dealer can only unregister devices belonging to their account.
- If the device has never been registered or is ‘unregistered’ no further action will be taken.
- If the device is a Helix panel, then the panel is unassigned from the partner configuration server.
- If the device has a cellular communicator, then
– then the cell is deactivated but only if the user specifically requests it to be
- An account registry entry is made for unregistering the device.
- An account registry entry is made for deactivating the cell.
- Device and device profile attributes are returned for successful unregistering.

Parameters

Name Type Description Constraints
deactivate boolean [true, false]
mac string

Method: events.notifications.renew

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/events/notifications/renew

Description

Renews event triggers associated with the authenticated user by extending their expiration date.

Parameters

Name Type Description Constraints
reference string Optional event trigger reference to identify a subset of records.
ttl integer The number of seconds to keep event trigger(s) alive. This must be between 5 minutes and 28 days (in seconds). minimum: 300, maximum: 2419200

Method: helix.mfd.put

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/helix/mfd/put

Parameters

Name Type Description Constraints
deviceId string required: true
mfd[] array of objects required: true
programId number

Method: helix.mfd.get

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/helix/mfd/get

Parameters

Name Type Description Constraints
code number required: true
deviceId string required: true

Method: helix.mfd.invalidate

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/helix/mfd/invalidate

Parameters

Name Type Description Constraints
deviceId string required: true
sections[] array of numbers required: true

Method: helix.pin.valid

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/helix/pin/valid

Parameters

Name Type Description Constraints
deviceId string required: true
pin string required: true

Method: helix.sensor.enroll

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/helix/sensor/enroll

Description


Enroll a Connect+ sensor (zone), Wireless Siren, Keyfob, or PINpad using the 8 character
serial number.

Parameters

Type Description Constraints
oneOf: [{“type”:“object”,“description”:“A request to enroll Connect+ zone”,“properties”:{“deviceId”:{“type”:“string”,“required”:true,“pattern”:{},“description”:“Device ID (36-char UUID)”},“serialNumber”:{“type”:“string”,“required”:true,“pattern”:“1{8}”,“description”:“8 character hexadecimal sensor serial number”},“name”:{“type”:“string”,“required”:false,“description”:“Optional zone name”},“inputIndexName”:{“type”:“string”,“required”:false,“description”:“Optional input name/type, e.g. Reed, Low Temperature, etc.”}}},{“type”:“object”,“description”:“A request to enroll BAT Connect zone”,“properties”:{“deviceId”:{“type”:“string”,“required”:true,“pattern”:{},“description”:“Device ID (36-char UUID)”},“zoneIndex”:{“type”:“integer”,“required”:true,“minimum”:0,“maximum”:95},“name”:{“type”:“string”,“required”:false,“description”:“Optional zone name”}}}]

Method: helix.sensor.unenroll

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/helix/sensor/unenroll

Description


Un-enroll a Connect+ sensor (zone), Wireless Siren, Keyfob, or PIN Pad using the 8 character
serial number.

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) required: true, pattern: /^[a-f0-9\-]{36}$/
inputIndexName string Optional input name/type, e.g. Reed, Low Temperature, etc. required: false
serialNumber string 8 character hexadecimal sensor serial number required: true, pattern: 2{8}

Method: mesh.ipdbsd.update

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/mesh/ipdbsd/update

Parameters

Name Type Description Constraints
mac string required: true
timeout number required: true

Method: mesh.ipddfs.get

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/mesh/ipddfs/get

Parameters

Name Type Description Constraints
path string required: true

Method: mesh.ipddfs.put

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/mesh/ipddfs/put

Parameters

Name Type Description Constraints
data[] array of numbers required: true
path string required: true

Method: push.send

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/push/send

Description

System admins can send a push notification to all of users’ push tokens or the specified push tokens

Parameters

Name Type Description Constraints
bodyArgs[] array of strings Array of string arguments for interpolation
bodyKey string The string message to be sent
clickAction string Click action
data object Pass along arbitrary key-value pairs
ids[] array of objects required: [“kind”,“value”]
timeToLive number Optional time for message to live
titleArgs[] array of strings Array of string arguments for interpolation
titleKey string Optional title for push notification

Method: task.mfd.alias.sync

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/task/mfd/alias/sync

Description

Perform batch sync from mfd cache to populate user and zone aliases

Parameters

Type Description Constraints

Method: users.exists

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/exists

Parameters

Name Type Description Constraints
username string

Method: users.pinonly.create

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/pinonly/create

Description

Create a pin only user

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID)
index integer Provide user index minimum: 1
nameFirst string Provide user first name minLength: 1, maxLength: 64, pattern: /(^[a-zA-Z0-9 ,.'&-]+)$/
nameLast string Provide user last name minLength: 1, maxLength: 64, pattern: /(^[a-zA-Z0-9 ,.'&-]+)$/
pin string Provide user PIN pattern: /(^[0-9]*)$/

Method: users.pushtokens.delete

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/pushtokens/delete

Parameters

Name Type Description Constraints
key string

Method: users.pushtokens.put

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/pushtokens/put

Parameters

Name Type Description Constraints
doorbell boolean [true, false]
key string
security boolean [true, false]
type enum [“apn”, “gcm”]
version string
video boolean [true, false]

Method: users.transfer

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/transfer

Description

Administrators may execute a user account transfer immediately.

Parameters

Name Type Description Constraints
customerId string The customer user ID which identifies the account to transfer
destinationDealerId string The destination dealer ID which will receive the account
excludeBillingPrograms boolean Indicates that billing programs should not be transferred. They will be closed so the original dealer may be subjected to early termination penalties. [true, false]
sourceDealerId string The source dealer ID which is used for additional validation (optional)

Method: users.transfer.request

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/transfer/request

Description

Administrators and source dealers may request a new account transfer.

Parameters

Name Type Description Constraints
customerId string Customer ID (36-char UUID) to be transferred.
dealerId string Destination dealer ID (36-character UUID). That is, the receiving dealer.
excludeBillingPrograms boolean Indicates that billing programs should not be transferred. They will be closed so the original dealer may be subjected to early termination penalties. [true, false]

Method: users.transfer.cancel

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/transfer/cancel

Description

Source dealers may cancel a requested account transfer. This action will abort the account transfer.

Parameters

Type Description Constraints
params: {“type”:“object”,“required”:[“id”],“properties”:{“id”:{“type”:“string”,“description”:“The dealer account transfer ID (36-char UUID) to be transferred (see /rest/v1/dealers/accounts/transfers)”}}}

Method: users.transfer.authorize

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/transfer/authorize

Description

Administrators may authorize a requested account transfer. This action will allow destination dealers to choose whether to accept the account transfer

Parameters

Type Description Constraints
params: {“type”:“object”,“required”:[“id”],“properties”:{“id”:{“type”:“string”,“description”:“The dealer account transfer ID (36-char UUID) to be transferred (see /rest/v1/dealers/accounts/transfers)”}}}

Method: users.transfer.deny

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/transfer/deny

Description

Administrators may deny a requested or an authorized account transfer. This action will abort the account transfer.

Parameters

Type Description Constraints
params: {“type”:“object”,“required”:[“id”],“properties”:{“id”:{“type”:“string”,“description”:“The dealer account transfer ID (36-char UUID) to be transferred (see /rest/v1/dealers/accounts/transfers)”},“reason”:{“type”:“string”,“description”:“An optional reason for aborting the account transfer”}}}

Method: users.transfer.reject

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/transfer/reject

Description

Destination dealers may reject an approved account transfer. This action will abort the account transfer.

Parameters

Type Description Constraints
params: {“type”:“object”,“required”:[“id”],“properties”:{“id”:{“type”:“string”,“description”:“The dealer account transfer ID (36-char UUID) to be transferred (see /rest/v1/dealers/accounts/transfers)”},“reason”:{“type”:“string”,“description”:“An optional reason for aborting the account transfer”}}}

Method: users.transfer.accept

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/transfer/accept

Description

Destination dealers may accept an authorized account transfer. This action will transfer the account to the destination dealer.

Parameters

Type Description Constraints
params: {“type”:“object”,“required”:[“id”],“properties”:{“id”:{“type”:“string”,“description”:“The dealer account transfer ID (36-char UUID) to be transferred (see /rest/v1/dealers/accounts/transfers)”}}}

Method: users.validation.phone.request

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/validation/phone/request

Description

Validate a users primary/secondary phone numbers.
A phone call is made to the user’s phone number(s).
The user can enter the PIN on this touch phone to securely confirm the phone call was received.

Parameters

Name Type Description Constraints
secondary boolean [true, false]
userId string

Method: users.validation.phone.confirm

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/validation/phone/confirm

Description

Confirm a users primary/secondary phone numbers.
A phone call is made to the user’s phone number(s).
The user can enter the PIN on this touch phone to securely confirm the phone call was received.

Parameters

Name Type Description Constraints
pin string
validateId string

Method: users.validation.email.request

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/validation/email/request

Description

Validate a users e-mail address.
An e-mail with a validation link is sent to the users e-mail address.
The user can click this link to confirm the e-mail was received.

Parameters

Name Type Description Constraints
redirectUri string
userId string

Method: users.plansvideo.price.get

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/plansvideo/price/get

Parameters

Name Type Description Constraints
quote object required: [“cameraPlanCount”,“clipPlanCount”]
  quote.cameraPlanCount number
  quote.clipPlanCount number
userId string

Method: users.type.change

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/type/change

Parameters

Name Type Description Constraints
userId string User ID (36-char UUID) to receive the new userType
userType enum new userType to be assigned to the user [“subUser”, “user”, “technician”, “dealer”]

Method: users.preferences.list

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/users/preferences/list

Description

Get all the unique preferences currently in use

Parameters

Type Description Constraints
object

Method: video.register

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/video/register

Description

Add a video camera to a dealer’s inventory and assign to
the current user

Parameters

Name Type Description Constraints
accountId string Account identifier for white-label apps (default “alula”)
qrCode string QR Code from camera. Example: “ezviz21473778-CV206-C0-1A1WFR”. String likely includes manufacturer, model number, verification code, and serial number.

Method: video.unregister

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/rpc/v1/video/unregister

Description

Unassign a video camera from a user and remove from the
dealer’s inventory

Parameters

Name Type Description Constraints
deviceId string UUID of camera

WS API (v1)

Background

Our WebSockets (WS) API is exposed using a custom protocol.

Access is restricted by OAuth2, and provided the same way with the upgrade request.

General Spec

Channel

We compartmentalize different types of real-time communication within channels.

WSAPI channels currently support the following methods:

You can subscribe to multiple channels, multiple times (if subscription options differ).

Initial Connection

Make a standard WebSockets connection to: /ws/v1/?access_token=$ACCESS_TOKEN

It is recommended that after initiating the connection, you wait for the following message from the server before issuing any requests:

{
  "channel": "*",
  "message": "ready",
  "sessionId": "ID of WS session"
}

Request

{
  "channel": "dot.separated.channel.name",
  "id": "optional, arbitrary id so you can much up responses to each request",
  "subscribe": {
    // Subscription options and keys will vary channel to channel
  },
  "unsubscribe": {
    "consumerTag": "<consumerTag>" // The consumerTag is provided in the
                                   // response to the "subscribe" request.
  },
  "send": {
    // Send options and keys will vary channel to channel
  },
  "publish": {
    // Publish options and keys will vary channel to channel
  },
}

Response

{
  "channel": "dot.separated.channel.name",
    "id": "present and filled in with the id passed in with the request, if provided",
    "subscribe": {
      "message": "Present, usually to confirm subscription success",
      "consumerTag": "ID of consumer. Useful for unsubscribing."
    },
    "unsubscribe": {
      "message": "Usually something about unsubscribe success"
    },
    "send": {
      "message": "Usually something about send success"
    },
    "publish": {
      "message": "Usually something about publish success"
    },
    "event": {
      // The event object is usually set when a subscription event occurs, related to the subscription.
      // The contents vary by channel.
    }
}

Error Response

{
  "channel": "dot.separated.channel.name",
  "id": "present and filled in with the id passed in with the request, if provided",
  "error": {
    "id": "UUID of error, which is useful when parsing logs",
    "title": "Title of error",
    "detail": "More detailed description of error"
  }
}

Channel: device.query

Method: publish

Parameters

Name Type Description Constraints
deviceId string pattern: /^[a-f0-9\-]{36}$/
sessionId string pattern: /^[a-f0-9]{12}$/
type enum [“upgrade”, “upgradeForce”, “upgradeForceBoot”, “version”, “cause”, “programSwap”, “diagnostics”, “cellId”, “keyswitchPolaritySet”, “keyswitchPolarityGet”, “gsmSet”, “gsmGet”, “cellCai”, “connectionHistory”, “cellVersion”, “upgradeFota”, “reset”]

Method: subscribe

Parameters

Name Type Description Constraints
deviceId string pattern: /^[a-f0-9\-]{36}$/
sessionId string pattern: /^([a-f0-9]{12}|\*)$/
type oneof: [{“type”:“string”,“pattern”:“*“},{”enum“:[“upgrade”,“upgradeForce”,“upgradeForceBoot”,“version”,“cause”,“programSwap”,“diagnostics”,“cellId”,“keyswitchPolaritySet”,“keyswitchPolarityGet”,“gsmSet”,“gsmGet”,“cellCai”,“connectionHistory”,“cellVersion”,“upgradeFota”,“reset”]}]

Method: send

Parameters

Name Type Description Constraints
deviceId string pattern: /^[a-f0-9\-]{36}$/
type enum [“upgrade”, “upgradeForce”, “upgradeForceBoot”, “version”, “cause”, “programSwap”, “diagnostics”, “cellId”, “keyswitchPolaritySet”, “keyswitchPolarityGet”, “gsmSet”, “gsmGet”, “cellCai”, “connectionHistory”, “cellVersion”, “upgradeFota”, “reset”]

Channel: device.keypad

Description

Interact with a legacy alarm panel by sending keypresses and receiving LCD screen updates.

When subscribed to a device via this channel, you will receive LCD events as follows:

{
  "channel": "device.keypad",
  "id": "optional",
  "event": {
    "sessionId": "ID of specific session this event was destined for",
    "deviceId": "UUID of device associated with event",
    "data": {
      "line1": "LCD line 1",
      "line2": "LCD line 2",
      "lights": ["bl", "armed", "ready", "chime", "trouble", "power", "stay", "exit", "bypass", "cancel", "fire"]
    }
  }
}

Note that lights could be zero (“lights”: []) or more enabled (“lights”: [“armed”, “stay”]).

Method: publish

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
sessionId string Publish to a specific session pattern: /^[a-f0-9]{12}$/

Method: subscribe

Description

Subscribe to device keypad events, i.e. LCD updates

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
sessionId string Receive messages destined only for a specific session. (Not recommended.) pattern: /^([a-f0-9]{12}|\*)$/

Method: send

Description

Send a keypad key press to alarm panel

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
keyPress string pattern: /^.{1,2}$/

Channel: device.helix

Description

WebSocket controller for Helix protocol. Mostly direct translation, but with some additional processes such as caching. For more details, see separate Helix API Documentation.

Method: publish

Parameters

Name Type Description Constraints
data oneOf: [{“type”:“object”,“properties”:{“cmdrsp”:{“type”:“number”},“payload”:{“type”:“array”,“items”:{“type”:“number”}}}},{“type”:“object”,“properties”:{“cmdrsp”:{“type”:“string”},“payload”:{“oneOf”:[{“type”:“array”,“items”:{“type”:“object”,“properties”:{“name”:{“type”:“string”},“indexFirst”:{“type”:“number”},“indexLast”:{“type”:“number”},“value”:{“type”:[“string”,“object”,“number”]}}}},{“type”:“object”}]}}}]
deviceId string pattern: /^[a-f0-9\-]{36}$/
sessionId string Publish to a specific session pattern: /^[a-f0-9]{12}$/

Method: subscribe

Description

Subscribe to Helix protocol events

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
sessionId string Restrict subscription to receive messages destined for a specific session. (Not recommended.) pattern: /^([a-f0-9]{12}|\*)$/

Method: send

Description

Send helix protocol messages to helix device

Parameters

Name Type Description Constraints
cmdrsp string
deviceId string pattern: /^[a-f0-9\-]{36}$/
payload oneOf: [{“type”:“array”,“items”:{“type”:“object”,“properties”:{“name”:{“type”:“string”},“indexFirst”:{“type”:“number”},“indexLast”:{“type”:“number”},“value”:{“type”:[“string”,“object”,“number”]}}}},{“type”:“object”}]
requestId string pattern: /^[a-zA-Z0-9\-\_]{1,63}$/

Channel: device.notification

Description

Publish device notifications.

Method: publish

Parameters

Name Type Description Constraints
bodyArgs[] array of strings Array of string arguments for interpolation
bodyKey string Message body key
category enum [“video”, “doorbell”, “security”]
data object Pass along arbitrary key-value pairs
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
titleArgs[] array of strings Array of string arguments for interpolation
titleKey string Title key

Channel: device.signal

Description

Enqueue alarm events for reliable transmission.

Method: send

Description

Queue an alarm signal for transmission

Parameters

Name Type Description Constraints
deviceId string Device ID (36-char UUID) pattern: /^[a-f0-9\-]{36}$/
signal oneOf: [{“$ref":"#/definitions/contactIdSignalStringDef"},{"type":"array","items":{"$ref”:“#/definitions/contactIdSignalStringDef”},“maxItems”:43},{“$ref":"#/definitions/contactIdExternalRelayDef"},{"$ref”:“#/definitions/aliasDef”},{“$ref”:“#/definitions/siaFskDef”}]

Channel: device.status

Description

Subscribe to device online/offline events

Method: publish

Parameters

Name Type Description Constraints
deviceId string pattern: /^[a-f0-9\-]{36}$/
sessionId string pattern: /^[a-f0-9]{12}$/
status object required: [“online”], additionalProperties: false
  status.online boolean [true, false], not: null
  status.lastEvent string format: date-time

Method: subscribe

Parameters

Name Type Description Constraints
deviceId string pattern: /^[a-f0-9\-]{36}$/
sessionId string pattern: /^([a-f0-9]{12}|\*)$/

Channel: event

Description

General event channel TODO: Better description

Method: publish

Parameters

Name Type Description Constraints
event object data: {“type”:“object”}, required: [“name”,“params”,“data”]
  event.name enum [“device.chat.new”, “device.doorbell”, “device.mfd”, “device.scene”, “device.signal.new”, “device.signal.update”, “device.video”, “device.zwave”]
  event.params object

Method: subscribe

Description

Subscribe to general events

Parameters

Name Type Description Constraints
event object required: [“name”,“params”]
  event.name enum [“device.chat.new”, “device.doorbell”, “device.mfd”, “device.scene”, “device.signal.new”, “device.signal.update”, “device.video”, “device.zwave”]
  event.params object

Channel: internal.auth

Description

All clients are automatically subscribed to this channel.

You will see messages like this:

{
  "channel": "internal.auth",
  "event": {
    "name": "accessTokenExpired",
  }
}

Method: send

Description

Send a new access token to keep session alive

Parameters

Name Type Description Constraints
accessToken string Replacement access token

Channel: mesh.message

Description

Interact with a mesh application by sending mesh messages.

When subscribed to this channel, you will receive mesh events as follows:

{
  "channel": "mesh.message",
  "id": "optional",
  "event": {
    "meshId": "<meshId>",
    "data": ["byte array representing the umc_route packet"],
  }
}

Method: subscribe

Description

Subscribe to mesh message events

Parameters

Name Type Description Constraints
meshId string Mesh ID (23-char byte-order hex string format, bytes colon-separated) pattern: /^[a-f0-9\:]{23}$/

Method: send

Description

Send a mesh message

Parameters

Name Type Description Constraints
umcRoute[] array of numbers

Channel: rest.events

Description

This websocket channel allows you to subscribe to data resource changes. Note that it is currently only available to system (admin) users.

Method: publish

Parameters

Name Type Description Constraints
resource object required: [“data”]
  resource.data object required: [“id”,“attributes”]
    resource.data.id string pattern: /^[a-f0-9\-]{36}$/
    resource.data.attributes object
resourceType enum [“admins”, “admins-users”, “admins-webhooks”, “billing-programs”, “dealers”, “dealers-addresses”, “dealers-phones”, “dealers-programs”, “dealers-accounts-transfers”, “dealers-branding”, “dealers-suspensionlog”, “dealers-contacts”, “dealers-features”, “dealers-rateplans”, “devices-aliases”, “devices”, “devices-cellular-events”, “devices-cellular-status”, “devices-charges”, “devices-chat-messages”, “devices-eventlog”, “devices-features-prices”, “devices-notifications”, “devices-programs”, “devices-relay-attempts”, “devices-users”, “events-notifications-cameras”, “events-notifications-chats”, “events-notifications-doorbells”, “events-notifications-locks”, “events-notifications-signals”, “events-notifications-zones”, “events-triggers”, “events-webhooks”, “features-bysubject”, “features-plans”, “features-plansvideo”, “features-prices”, “goldmine-leads”, “helix-cache-mfd”, “helix-ha-nodes”, “helix-users”, “oauth-accesstokens”, “oauth-clients”, “oauth-refreshtokens”, “rateplans”, “receivers-binds”, “receivers-connections”, “receivers-disabled”, “receivers-groups”, “receivers”, “revisions”, “self”, “stations”, “stations-contacts”, “timeseries-signal”, “users”, “users-addresses”, “users-phones”, “users-preferences”, “users-pushtokens”, “users-videoprofiles”]
verb enum [“post”, “patch”, “delete”]

Method: subscribe

Parameters

Name Type Description Constraints
resourceId string pattern: /^[a-f0-9\-]{36}$/
resourceType enum [“admins”, “admins-users”, “admins-webhooks”, “billing-programs”, “dealers”, “dealers-addresses”, “dealers-phones”, “dealers-programs”, “dealers-accounts-transfers”, “dealers-branding”, “dealers-suspensionlog”, “dealers-contacts”, “dealers-features”, “dealers-rateplans”, “devices-aliases”, “devices”, “devices-cellular-events”, “devices-cellular-status”, “devices-charges”, “devices-chat-messages”, “devices-eventlog”, “devices-features-prices”, “devices-notifications”, “devices-programs”, “devices-relay-attempts”, “devices-users”, “events-notifications-cameras”, “events-notifications-chats”, “events-notifications-doorbells”, “events-notifications-locks”, “events-notifications-signals”, “events-notifications-zones”, “events-triggers”, “events-webhooks”, “features-bysubject”, “features-plans”, “features-plansvideo”, “features-prices”, “goldmine-leads”, “helix-cache-mfd”, “helix-ha-nodes”, “helix-users”, “oauth-accesstokens”, “oauth-clients”, “oauth-refreshtokens”, “rateplans”, “receivers-binds”, “receivers-connections”, “receivers-disabled”, “receivers-groups”, “receivers”, “revisions”, “self”, “stations”, “stations-contacts”, “timeseries-signal”, “users”, “users-addresses”, “users-phones”, “users-preferences”, “users-pushtokens”, “users-videoprofiles”]
verb enum [“post”, “patch”, “delete”]

Channel: rest.tunnel

Description

This channel provides a more efficient means to execute large numbers of REST calls. Note that it is currently available only to system (admin) users.

Method: send

Parameters

Name Type Description Constraints
request object This request follows the same rules as described in the REST section of this documentation
  request.path string
  request.method enum [“get”, “patch”, “post”, “delete”]
  request.params object
  request.body object
required 0: path, 1: method

Channel: rpc.tunnel

Description

This channel provides a more efficient means to execute large numbers of RPC calls. Note that it is currently available only to system (admin) users.

Method: send

Parameters

Name Type Description Constraints
request oneOf: [{“type”:“object”,“description”:“This request follows the same rules as described in the RPC section of this documentation”,“properties”:{“id”:{“oneOf”:[{“type”:“string”},{“type”:“number”}]},“method”:{“type”:“string”},“params”:{“type”:“object”}}},{“type”:“array”,“items”:{“type”:“object”,“description”:“This request follows the same rules as described in the RPC section of this documentation”,“properties”:{“id”:{“oneOf”:[{“type”:“string”},{“type”:“number”}]},“method”:{“type”:“string”},“params”:{“type”:“object”}}}}]

Channel: work

Description

This websocket channel supports sending work items to work queues, subscribing to work queues, receiving items, and acknowledging items. Unacknowledged items will be requeued if a worker disconnects. The work queues also support aggregation of work items over a specified batch window duration.

Method: publish

Parameters

Name Type Description Constraints
batch object required: [“key”], additionalProperties: false
  batch.key string
  batch.terminate boolean [true, false]
command enum [“submit”]
data object
meta object
workQueue enum [“hello”, “signal”, “vigilance”, “vigilanceCancel”, “push”, “webhook”, “greatcall”, “events”]

Method: subscribe

Parameters

Name Type Description Constraints
prefetch number
workQueue enum [“hello”, “signal”, “vigilance”, “vigilanceCancel”, “push”, “webhook”, “greatcall”, “events”]

Method: send

Parameters

Type Description Constraints
object oneOf: [{“properties”:{“command”:{“type”:“string”,“enum”:[“ack”]},“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“taskId”:{“type”:“string”}},“required”:[“workQueue”,“command”,“taskId”],“additionalProperties”:false},{“properties”:{“command”:{“type”:“string”,“enum”:[“nack”]},“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“taskId”:{“type”:“string”},“requeue”:{“type”:“boolean”},“delay”:{“type”:“number”}},“required”:[“workQueue”,“command”,“taskId”],“additionalProperties”:false}]

Public API (v1)

These public endpoints are unique in that they do not require an OAuth access token.

Endpoints below which are designated as RPC endpoints follow the same specification as the methods documented above; the only difference is that the route prefix should be /public/v1 rather than /rpc/v1.


Method: users.password.reset

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/public/v1/users/password/reset

Description

Invoke this (public) endpoint to reset password.
The input data is validated. That is, the password reset token as
provided by another public endpoint (/public/v1/users/password/reset/request)
is validated.

Once token is validated, the password for the user associated with the token
is reset.

Note: standard password reset functions are performed such as pruning
user associated mobile app push notification tokens and OAUTH access and
refresh tokens.

Parameters

Name Type Description Constraints
password string
token string pattern: /^[a-f0-9\-]{36}$/

Method: users.password.reset.request

This is an RPC endpoint, and follows the JSON-RPC 2.0 specification. See also these notes about our RPC implementation.

Base URL

/public/v1/users/password/reset/request

Description

Invoke this (public) endpoint to initiate the password reset chain.
The input data is validated. That is, the input username and e-mail address
must match and a redirect URI must be provided.

If all input data is valid, an e-mail is sent to the provided e-mail address
with a link containing a token which when clicked will take the user to
a redirect page where they can change their password.

Finally, another non-authenticated (public) endpoint is available
(/public/v1/users/password/reset) to then
actually perform the password reset via the password reset token.

Parameters

Name Type Description Constraints
email string
redirectUri string
username string

Endpoint: users-password-reset-verify

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/users/password/reset/verify

Description

This endpoint should be accessed only by a link clicked
in the e-mail sent when a user password reset request is made, ref.
/public/v1/users/password/reset/request.

This endpoint validates the input data including validating that the
password reset token exist and has not expired.

After validation the redirect URI is invoked with the proper query data set
depending on success or failure.

Parameters

Name Type Description Constraints
redir string
token string pattern: /^[a-f0-9\-]{36}$/

Endpoint: validate

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/validate

Description


This route is intended as a public route for validating a users
email address. There is a rpc method
/rpc/v1/users/validation/email/request
that should send an e-mail to the user.
In that e-mail there is a link to this resource.
This resource will “validate” the e-mail
and then redirect the user to the redirect URI.

Parameters

Name Type Description Constraints
type enum [“email”]
validateId string pattern: /^[a-f0-9\-]{36}$/

Endpoint: contacts-verify

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/contacts/verify

Description

This route is intended as a public route for verifying a
dealer or station’s emergency contact e-mail address.
There are a couple of rest methods
/rest/v1/dealers/contacts
/rest/v1/stations/contacts
that should send an e-mail to the emergency contact e-mail address.
In that e-mail there is a link to this resource.
This resource will “verify” the e-mail and send a follow up e-mail
to let them know that they were verified.
And then redirect the user to the redirect URI.

Parameters

Name Type Description Constraints
verifyId string

Endpoint: healthcheck-all

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/healthcheck/all

Description


This route is intended as an internal route that reports a summary of all of the healthcheck statuses.
It should always return HTTP response status code 200 regardless of the results.

Parameters

Type Description Constraints

Endpoint: healthcheck-default

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/healthcheck/default

Description


This route is intended as an internal route that reports a generic running status.
It’s purpose is to verify that the API can serve http requests.

Parameters

Type Description Constraints

Endpoint: healthcheck-mariadb

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/healthcheck/mariadb

Description


This route is intended as an internal route that reports on whether or not
the API can successfully interact with the Mariadb database.
It uses a ping to determine connectivity.

Parameters

Type Description Constraints

Endpoint: healthcheck-mongodb

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/healthcheck/mongodb

Description


This route is intended as an internal route that reports on whether or not
the API can successfully interact with the MongoDb database.
It checks the status of each MongoDb database to determine connectivity.

Parameters

Type Description Constraints

Endpoint: healthcheck-rabbitmq

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/healthcheck/rabbitmq

Description


This route is intended as an internal route that reports the status
of our existing RabbitMQ connections.

Parameters

Type Description Constraints

Endpoint: healthcheck-mesh

This is an HTTP GET endpoint. Any parameters should be supplied as query string parameters, URL-encoded.

Base URL

/public/v1/healthcheck/mesh

Description


This route is intended as an internal route that reports the status
of an existing MNC connection.

Parameters

Type Description Constraints

Event Triggers and Actions

Background

Clients can register event triggers and actions. The event identifies an event type and represents “something that happens” on the system. The trigger allows you to select a subset of events for a given event type by defining conditions to determine which of those events will initiate an action. The action is the operation you want to perform when the trigger fires.

Components

Event

An event has:

Trigger

A trigger is a combination of the event and conditions objects provided when creating an events-triggers REST resource.

Conditions

A conditions object is fed into a library called JsonLogic. It allows for further filtering of events by having your conditions object resolve to ‘truthy’ (to continue with action execution) or ‘falsy’ (to do nothing). Conditions may be omitted or set to null to disable filtering. To figure out how to build a logic object see the JsonLogic operations documentation.

Note the ‘Accessing Data’ section in the operations document. Every filter has access to event and date objects, as well as zero or more other context objects determined by which contexts are available for a specific event. See specific event documentation below for precise details.

Action

An action to be executed for a particular event trigger should be provided as the action object when creating an events-triggers REST resource.

Time to Live (TTL)

Each event trigger has a TTL, in seconds, which may be set between 5 minutes and 28 days. This establishes an expiration date for event triggers so they are automatically cleaned up when they are no longer being used. If you want to keep your event triggers around, you will need to periodically patch the ttl property to increase the expiration date.

Alternatively, for triggers built through the events-notifications-* REST resources, the events.notifications.renew RPC method may also be used to increase the expiration date. It allows you to set a new TTL value for all event triggers associated with the authenticated user.

Context

{
  "event": {
    "name": "device.doorbell",
    "params": {
      "deviceId": "2453d3e0-e080-11e9-a769-033dc51bbf99"
    },
    "data": {
      "category": "doorbell"
    }
  },
  "date": {
    "years": 2019,
    "months": 8,
    "date": 26,
    "hours": 17,
    "minutes": 7,
    "seconds": 38,
    "milliseconds": 340
  }
}

Contexts provide additional information about an event and can be referenced by your event trigger’s conditions or be included in your event trigger’s action. The example above shows an example of a context value for a device.doorbell event. This context value automatically includes the event data and may include one or more contexts. This example only includes the date context.

{
  "===":[
    {
      "var":"date.years"
    },
    2019
  ]
}

Contexts may be referenced by the JsonLogic used in your event trigger’s conditions. This simplified example only selects events which occur in the year 2019.

{
  "action": {
    "name": "pushUser",
    "params": {
      "userId": "00941ae0-e081-11e9-963c-750cefc64c18",
      "titleKey": "APP_NAME",
      "bodyKey": "OPEN_ACTIVE",
      "bodyArgs": ["{date.years}-{date.months}-{date.date}", "{zoneName.0:Zone 0}"]
    }
  }
}

Contexts may be included in your event trigger’s action. You may insert them into any JSON string by enclosing the context value reference within curly braces. The reference uses the same syntax as JsonLogic except you may include a default value after a semicolon. If a reference token spans an entire string, then the context value’s original type will be preserved by substituting the string with referenced value’s type.

The default value is useful for the nodeName, zoneConfiguration, and zoneStatus contexts since these contexts are loaded from a cache, and in rare cases, the values may not be available. For example, the cached value may not be intialized yet or the value may be evicted during a cache refresh.


Event: device.chat.new

Description


An event for new chat messages when users discuss a recent alarm.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushDeprecated”},“params”:{“type”:“object”,“properties”:{“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushUser”},“params”:{“type”:“object”,“properties”:{“userId”:{“type”:“string”,“description”:“User to send push”},“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“clickAction”:{“type”:“string”,“description”:“Click action”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“userId”,“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.chat.new
  event.params object required: [“deviceId”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) pattern: /^[a-f0-9\-]{36}$/
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Event: device.doorbell

Description

A doorbell event. This can only be used by System, Dealer, User, and Sub-User users which have permissions to access the doorbell device.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushDeprecated”},“params”:{“type”:“object”,“properties”:{“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushUser”},“params”:{“type”:“object”,“properties”:{“userId”:{“type”:“string”,“description”:“User to send push”},“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“clickAction”:{“type”:“string”,“description”:“Click action”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“userId”,“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.doorbell
  event.params object required: [“deviceId”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) or * (for all) pattern: /^([a-f0-9\-]{36}|\*)$/
    event.params.dealerId string Dealer ID (UUID) pattern: /^[a-f0-9\-]{36}$/
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Event: device.mfd

Description

Helix device multi-field data event. See the parameters documentation below for event parameters that can be provided to limit events to a specific device and a specific multi-field data type. This can only be used by System, Dealer, User, and Sub-User users which have permissions to access the Helix device.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushUser”},“params”:{“type”:“object”,“properties”:{“userId”:{“type”:“string”,“description”:“User to send push”},“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“clickAction”:{“type”:“string”,“description”:“Click action”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“userId”,“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.mfd
  event.params object required: [“deviceId”,“name”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) or * (for all) pattern: /^([a-f0-9\-]{36}|\*)$/
    event.params.dealerId string Dealer ID (UUID) pattern: /^[a-f0-9\-]{36}$/
    event.params.name MFD field name or * for all oneOf: [{“enum”:[“panelDefinition”,“serverIpAddr”,“serverIpAddr2”,“serverHeartbeat”,“serverKeepAlive”,“receiverIpAddr”,“receiverIpAddr2”,“csHeartbeat”,“endOfConfigData”,“accessCode”,“accountNumber”,“wifiCreds1”,“wifiCreds2”,“miscCommOptions”,“interfaceStatus”,“protestReasons”,“panelName”,“gsmApn3”,“gsmApn4”,“hardwareIdOfActiveInterface”,“serverSeqNumber”,“sessionKey”,“gatewayVersions”,“gsmApn2”,“gsmApn”,“gatewayId”,“reconnectReasons”,“eventReportingDelay”,“dealerNumber”,“updateFailCode”,“entryDelay”,“longEntryDelay”,“exitDelay”,“longExitDelay”,“sirenTimeout”,“sensorSupervisionTimeShort”,“sensorSupervisionTimeMedium”,“sensorSupervisionTimeLong”,“panelOptions”,“troubleBeepSuppressStart”,“troubleBeepSuppressEnd”,“reportableEventTypesCS”,“keyfobUnlockButtonFunction”,“keyfobLockButtonFunction”,“keyfobLightsButtonFunction”,“keyfobStarButtonFunction”,“keyfobLockAndUnlockButtonsHeldFunction”,“keyfobStayButtonFunction”,“keyfobLightsButtonHeldFunction”,“keyfobStarButtonHeldFunction”,“rtcTime”,“panelStatus”,“sensorEnroll”,“armingLevel”,“expansionSlot1ModuleInfo”,“expansionSlot2ModuleInfo”,“serverIpAddrCdmaGsm”,“bluetoothInterfaceVersions”,“forceArm”,“serverHeartbeatGsmCdma”,“serverKeepAliveGsmCdma”,“csHeartbeatGsmCdma”,“userCredsUsername”,“userCredsPassword”,“userCredsPin”,“keypadKeystroke”,“bluetoothDeviceType”,“bluetoothDeviceId”,“bluetoothSystemId”,“bluetoothHardwareId”,“configVersion”,“statusVersion”,“helixBluetoothMac”,“panelAudioVolumes”,“configVersionSegments”,“timeOptions”,“mobileDeviceNextDeviceId”,“bluetoothDeviceOptionsFlags”,“highestUsedIndexes”,“silenceTroubleBeeps”,“chimeToggle”,“expansionSlot3ModuleInfo”,“rfTranslatorProtocol”,“panelMiscOptions”,“commInterfaceOptions”,“helixControlOptions”,“alarmMemory”,“keyfobButtonPress”,“duressPin”,“hardwareStatus”,“addTriggersToLocalScene”,“addActionsToLocalScene”,“reportableEventTypes”,“acFailDetectDelay”,“swingerThreshold”,“expansionSlot1HardwareId”,“expansionSlot2HardwareId”,“temperatureThresholds”,“mobileDeviceStatusToHelix”,“currentSirenCadence”,“locationCoordinates”,“localDeviceDiagnostics”,“zoneSource”,“zoneId”,“zoneInputIndex”,“zoneName”,“zoneReportingCode”,“zoneActiveLevels”,“zoneOptions”,“fobSource”,“fobId”,“userPassword”,“userDisplayName”,“userAuthLevel”,“userFobNumber”,“armingLevelOptions”,“armingLevelName”,“zoneStatus”,“zoneConfiguration”,“zoneBypass”,“zoneUnbypass”,“userName”,“userPin”,“userAllowedArmingLevels”,“userConfigurationAll”,“wirelessSirenConfig”,“wirelessPinpadConfig”,“mobileDeviceConfig”,“wirelessSirenStatus”,“wirelessPinpadStatus”,“mobileDeviceName”,“mobileDeviceStatus”,“mobileDeviceVersions”,“pingerFobConfiguration”,“pingerFobStatus”,“userPingerFobNumber”,“userStatus”,“zoneBypassAccessCode”,“zoneUnbypassAccessCode”,“phoneNumbers”,“localSceneTriggers”,“localSceneActions”,“localSceneNames”,“localScenes”,“zwaveDeviceNames”,“pingAddresses”,“keyfobStatus”,“mobileDeviceTamperZone”,“diagnosticsToConfigServer”,“localScenesId”,“zoneOptionsUsers”,“virtualInterfaceInfo”,“virtualInterfaceStatus”,“virtualInterfaceOptions”,“zoneStatusTimestamp”,“userMapping”,“armingOptionsSupportedByArmingLevel”,“zoneSuppressTimer”,“accessCodeUserMapping”,“outputPort”,“phoneLineStatus”,“inputPointMap”,“outputControl”,“phoneOutputControl”,“outputName”,“mobileDeviceSettings”,“receiverFixedKey”,“csHeartbeatBackup”,“removeTriggersFromScene”,“removeActionsFromScene”,“criptixReceiverNoiseFloor”,“panelDiagnostics”,“modifySceneTriggerFlags”,“alarmTypesSupported”,“deviceCrc”,“otaUpdateProgress”,“panelModelString”,“panelEventCaptureMethod”,“dealerCode”,“resetInfo”,“centralStationStatus”,“manufactureInfo”,“boschNnc”,“autoCommTestInterval”,“cellSignalData”]},{“const”:“*“}]
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Event: device.scene

Description

Helix device scene execution event. Corresponds to the sceneTriggerNotify command. This can only be used by System, Dealer, User, and Sub-User users which have permissions to access the Helix device.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushUser”},“params”:{“type”:“object”,“properties”:{“userId”:{“type”:“string”,“description”:“User to send push”},“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“clickAction”:{“type”:“string”,“description”:“Click action”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“userId”,“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.scene
  event.params object required: [“deviceId”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) or * (for all) pattern: /^([a-f0-9\-]{36}|\*)$/
    event.params.dealerId string Dealer ID (UUID) pattern: /^[a-f0-9\-]{36}$/
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Event: device.signal.new

Description

New device signal event such as alarm, trouble, disarm, offline.
Users allowed include system and dealer users.
A deviceId wildcard (*) is allowed for dealer users. That is, a dealer can provide
the deviceId wildcard and receive events for each of its devices.
Wildcard is not allowed by system user.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushUser”},“params”:{“type”:“object”,“properties”:{“userId”:{“type”:“string”,“description”:“User to send push”},“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“clickAction”:{“type”:“string”,“description”:“Click action”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“userId”,“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.signal.new
  event.params object required: [“deviceId”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) or * (for all) pattern: /^([a-f0-9\-]{36}|\*)$/
    event.params.dealerId string Dealer ID (UUID) pattern: /^[a-f0-9\-]{36}$/
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Event: device.signal.update

Description

Device signal update event, usually a change to the relayStatus.
Users allowed include system and dealer users.
A deviceId wildcard (*) is allowed for dealer users. That is, a dealer can provide
the deviceId wildcard and receive events for each of its devices.
Wildcard is not allowed by system user.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.signal.update
  event.params object required: [“deviceId”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) or * (for all) pattern: /^([a-f0-9\-]{36}|\*)$/
    event.params.dealerId string Dealer ID (UUID) pattern: /^[a-f0-9\-]{36}$/
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Event: device.video

Description

A video event. This can only be used by System, Dealer, User, and Sub-User users which have permissions to access the video device.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushDeprecated”},“params”:{“type”:“object”,“properties”:{“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushUser”},“params”:{“type”:“object”,“properties”:{“userId”:{“type”:“string”,“description”:“User to send push”},“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“clickAction”:{“type”:“string”,“description”:“Click action”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“userId”,“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.video
  event.params object required: [“deviceId”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) or * (for all) pattern: /^([a-f0-9\-]{36}|\*)$/
    event.params.dealerId string Dealer ID (UUID) pattern: /^[a-f0-9\-]{36}$/
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Event: device.zwave

Description

Helix device ZWave event. See the parameters documentation below for event parameters that can be provided to limit events to a specific device and a specific zwave command type. This can only be used by System, Dealer, User, and Sub-User users which have permissions to access the Helix device.

Actions Avalaible

Contexts

Parameters

Name Type Description Constraints
action oneOf: [{“type”:“object”,“properties”:{“name”:{“const”:“publishWork”},“params”:{“type”:“object”,“properties”:{“workQueue”:{“enum”:[“hello”,“signal”,“vigilance”,“vigilanceCancel”,“push”,“webhook”,“greatcall”,“events”]},“data”:{“type”:“object”},“batch”:{“type”:“object”,“properties”:{“key”:{“type”:“string”},“terminate”:{“type”:“boolean”}},“required”:[“key”],“additionalProperties”:false},“meta”:{“type”:“object”}},“required”:[“workQueue”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“webHook”},“params”:{“type”:“object”,“properties”:{“webHookId”:{“type”:“string”,“description”:“events-webhooks resource ID”}},“required”:[“webHookId”],“additionalProperties”:false}},“required”:[“name”,“params”]},{“type”:“object”,“properties”:{“name”:{“const”:“pushUser”},“params”:{“type”:“object”,“properties”:{“userId”:{“type”:“string”,“description”:“User to send push”},“titleKey”:{“type”:“string”,“description”:“Title key”},“titleArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“bodyKey”:{“type”:“string”,“description”:“Message body key”},“bodyArgs”:{“type”:“array”,“items”:{“type”:“string”},“description”:“Array of string arguments for interpolation”},“clickAction”:{“type”:“string”,“description”:“Click action”},“data”:{“type”:“object”,“description”:“Pass along arbitrary key-value pairs”}},“required”:[“userId”,“titleKey”,“bodyKey”],“additionalProperties”:false}},“required”:[“name”,“params”]}]
conditions object,null
conditionsHashValue string,null
event object required: [“name”,“params”], additionalProperties: false
  event.name const: device.zwave
  event.params object required: [“deviceId”,“cmd”], additionalProperties: false
    event.params.deviceId string Device ID (UUID) or * (for all) pattern: /^([a-f0-9\-]{36}|\*)$/
    event.params.dealerId string Dealer ID (UUID) pattern: /^[a-f0-9\-]{36}$/
    event.params.cmd Z-Wave API command name or * for all oneOf: [{“enum”:[“addAssociation”,“addDevice”,“addDeviceS2Dsk”,“cancelAllControllerCmds”,“cancelAllSleepMsgs”,“cancelControllerCmd”,“cancelNodeSleepMsgs”,“checkOnlineStatus”,“controllerLearnModeClassic”,“controllerLearnModeNwe”,“controllerLearnModeNwi”,“doorLockPushAccessCodeToLocks”,“fastPowerReporting”,“generalErrorReport”,“generalGetValue”,“generalSetValue”,“generalSetValueNoply”,“getAssociationGroups”,“getControllerNodeId”,“getDeviceSavedStates”,“getGroupAssociations”,“getHomeId”,“getLastKnownOnlineStatus”,“getLastKnownOnlineStatusAll”,“getManufacturerInfo”,“getNetworkInfo”,“getNodeCmdClasses”,“getProtocolInfo”,“getRoutingInfo”,“getS2Dsk”,“hardReset”,“isFailedNode”,“multichannelCmd”,“noCmd”,“nodeList”,“nodeNeighborUpdate”,“optimizeNetwork”,“optimizeSingle”,“refreshDeviceStates”,“reinitializeNode”,“removeAssociation”,“removeDevice”,“removeFailedNode”,“replaceFailedNode”,“setAllOff”,“setAllOn”,“softReset”,“switchMultilevelGetSupported”,“switchMultilevelStartChange”,“switchMultilevelStopChange”]},{“const”:“*“}]
    event.params.commandClass Z-Wave command class name or * for all oneOf: [{“enum”:[“antitheft”,“applicationStatus”,“association”,“associationGrpInfo”,“barrierOperator”,“basic”,“battery”,“clock”,“configuration”,“crc16Encap”,“deviceResetLocally”,“doorLock”,“doorLockLogging”,“humidityControlMode”,“humidityControlOperatingState”,“humidityControlSetpoint”,“manufacturerSpecific”,“meter”,“multiChannel”,“multiCmd”,“nodeNaming”,“notification”,“powerlevel”,“protection”,“sceneActivation”,“sceneActuatorConf”,“scheduleEntryLock”,“sensorBinary”,“sensorMultilevel”,“switchAll”,“switchColor”,“thermostatFanMode”,“thermostatFanState”,“thermostatHeating”,“thermostatMode”,“thermostatOperatingState”,“thermostatSetback”,“thermostatSetpoint”,“time”,“timeParameters”,“userCode”,“version”,“wakeUp”,“zwaveplusInfo”]},{“type”:“array”,“items”:{“enum”:[“antitheft”,“applicationStatus”,“association”,“associationGrpInfo”,“barrierOperator”,“basic”,“battery”,“clock”,“configuration”,“crc16Encap”,“deviceResetLocally”,“doorLock”,“doorLockLogging”,“humidityControlMode”,“humidityControlOperatingState”,“humidityControlSetpoint”,“manufacturerSpecific”,“meter”,“multiChannel”,“multiCmd”,“nodeNaming”,“notification”,“powerlevel”,“protection”,“sceneActivation”,“sceneActuatorConf”,“scheduleEntryLock”,“sensorBinary”,“sensorMultilevel”,“switchAll”,“switchColor”,“thermostatFanMode”,“thermostatFanState”,“thermostatHeating”,“thermostatMode”,“thermostatOperatingState”,“thermostatSetback”,“thermostatSetpoint”,“time”,“timeParameters”,“userCode”,“version”,“wakeUp”,“zwaveplusInfo”]}},{“const”:“*“}]
    event.params.command Z-Wave command class index or * for all oneOf: [{“enum”:[“antitheftReport”,“associationGroupCommandListReport”,“associationGroupInfoReport”,“associationGroupNameReport”,“associationGroupingsReport”,“associationReport”,“associationSpecificGroupReport”,“barrierOperatorReport”,“barrierOperatorSignalReport”,“barrierOperatorSignalSupportedReport”,“basicReport”,“batteryReport”,“clockReport”,“configurationBulkReport”,“configurationInfoReport”,“configurationNameReport”,“configurationPropertiesReport”,“configurationReport”,“dateReport”,“deviceSpecificReport”,“doorLockConfigurationReport”,“doorLockLoggingRecordsSupportedReport”,“doorLockOperationReport”,“eventSupportedReport”,“humidityControlModeReport”,“humidityControlModeSupportedReport”,“humidityControlOperatingStateReport”,“humidityControlSetpointCapabilitiesReport”,“humidityControlSetpointReport”,“humidityControlSetpointScaleSupportedReport”,“humidityControlSetpointSupportedReport”,“manufacturerSpecificReport”,“meterReport”,“meterSupportedReport”,“multiChannelAggregatedMembersReport”,“multiChannelCapabilityReport”,“multiChannelEndPointFindReport”,“multiChannelEndPointReport”,“multiInstanceReport”,“nodeNamingNodeLocationReport”,“nodeNamingNodeNameReport”,“notificationReport”,“notificationSupportedReport”,“powerlevelReport”,“powerlevelTestNodeReport”,“protectionEcReport”,“protectionReport”,“protectionSupportedReport”,“protectionTimeoutReport”,“recordReport”,“sceneActivationReport”,“sceneActuatorConfReport”,“scheduleEntryLockDailyRepeatingReport”,“scheduleEntryLockEnableAllReport”,“scheduleEntryLockEnableReport”,“scheduleEntryLockTimeOffsetReport”,“scheduleEntryLockWeekDayReport”,“scheduleEntryLockYearDayReport”,“scheduleEntryTypeSupportedReport”,“sensorBinaryReport”,“sensorMultilevelReport”,“sensorMultilevelSupportedScaleReport”,“sensorMultilevelSupportedSensorReport”,“switchAllReport”,“switchColorReport”,“switchColorSupportedReport”,“switchMultilevelSupportedReport”,“thermostatFanModeReport”,“thermostatFanModeSupportedReport”,“thermostatFanStateReport”,“thermostatHeatingModeReport”,“thermostatHeatingRelayStatusReport”,“thermostatHeatingSetpointReport”,“thermostatHeatingStatusReport”,“thermostatHeatingTimedOffReport”,“thermostatModeReport”,“thermostatModeSupportedReport”,“thermostatOperatingStateLoggingReport”,“thermostatOperatingStateLoggingSupportedReport”,“thermostatOperatingStateReport”,“thermostatSetbackReport”,“thermostatSetpointCapabilitiesReport”,“thermostatSetpointReport”,“thermostatSetpointSupportedReport”,“timeOffsetReport”,“timeParametersReport”,“timeReport”,“userCodeReport”,“usersNumberReport”,“versionCommandClassReport”,“versionReport”,“wakeUpIntervalCapabilitiesReport”,“wakeUpIntervalReport”,“zwaveplusInfoReport”]},{“type”:“array”,“items”:{“enum”:[“antitheftReport”,“associationGroupCommandListReport”,“associationGroupInfoReport”,“associationGroupNameReport”,“associationGroupingsReport”,“associationReport”,“associationSpecificGroupReport”,“barrierOperatorReport”,“barrierOperatorSignalReport”,“barrierOperatorSignalSupportedReport”,“basicReport”,“batteryReport”,“clockReport”,“configurationBulkReport”,“configurationInfoReport”,“configurationNameReport”,“configurationPropertiesReport”,“configurationReport”,“dateReport”,“deviceSpecificReport”,“doorLockConfigurationReport”,“doorLockLoggingRecordsSupportedReport”,“doorLockOperationReport”,“eventSupportedReport”,“humidityControlModeReport”,“humidityControlModeSupportedReport”,“humidityControlOperatingStateReport”,“humidityControlSetpointCapabilitiesReport”,“humidityControlSetpointReport”,“humidityControlSetpointScaleSupportedReport”,“humidityControlSetpointSupportedReport”,“manufacturerSpecificReport”,“meterReport”,“meterSupportedReport”,“multiChannelAggregatedMembersReport”,“multiChannelCapabilityReport”,“multiChannelEndPointFindReport”,“multiChannelEndPointReport”,“multiInstanceReport”,“nodeNamingNodeLocationReport”,“nodeNamingNodeNameReport”,“notificationReport”,“notificationSupportedReport”,“powerlevelReport”,“powerlevelTestNodeReport”,“protectionEcReport”,“protectionReport”,“protectionSupportedReport”,“protectionTimeoutReport”,“recordReport”,“sceneActivationReport”,“sceneActuatorConfReport”,“scheduleEntryLockDailyRepeatingReport”,“scheduleEntryLockEnableAllReport”,“scheduleEntryLockEnableReport”,“scheduleEntryLockTimeOffsetReport”,“scheduleEntryLockWeekDayReport”,“scheduleEntryLockYearDayReport”,“scheduleEntryTypeSupportedReport”,“sensorBinaryReport”,“sensorMultilevelReport”,“sensorMultilevelSupportedScaleReport”,“sensorMultilevelSupportedSensorReport”,“switchAllReport”,“switchColorReport”,“switchColorSupportedReport”,“switchMultilevelSupportedReport”,“thermostatFanModeReport”,“thermostatFanModeSupportedReport”,“thermostatFanStateReport”,“thermostatHeatingModeReport”,“thermostatHeatingRelayStatusReport”,“thermostatHeatingSetpointReport”,“thermostatHeatingStatusReport”,“thermostatHeatingTimedOffReport”,“thermostatModeReport”,“thermostatModeSupportedReport”,“thermostatOperatingStateLoggingReport”,“thermostatOperatingStateLoggingSupportedReport”,“thermostatOperatingStateReport”,“thermostatSetbackReport”,“thermostatSetpointCapabilitiesReport”,“thermostatSetpointReport”,“thermostatSetpointSupportedReport”,“timeOffsetReport”,“timeParametersReport”,“timeReport”,“userCodeReport”,“usersNumberReport”,“versionCommandClassReport”,“versionReport”,“wakeUpIntervalCapabilitiesReport”,“wakeUpIntervalReport”,“zwaveplusInfoReport”]}},{“const”:“*“}]
id string
reference string,null
ttl integer minimum: 300, maximum: 2419200
userId string,null

Action: publishWork

Description

Publish an event to an API work queue. This can only be used by System and Dealer users. Not available to third-parties.

Parameters

Name Type Description Constraints
batch object required: [“key”], additionalProperties: false
  batch.key string
  batch.terminate boolean [true, false]
data object
meta object
workQueue enum [“hello”, “signal”, “vigilance”, “vigilanceCancel”, “push”, “webhook”, “greatcall”, “events”]

Action: pushDeprecated

Description

Generate a push notification using a deprecated method of checking whether certain notification categories are enabled for a given push token. This is only available to System users and should be used carefully.

Parameters

Name Type Description Constraints
bodyArgs[] array of strings Array of string arguments for interpolation
bodyKey string Message body key
data object Pass along arbitrary key-value pairs
titleArgs[] array of strings Array of string arguments for interpolation
titleKey string Title key

Action: pushUser

Description

Generate a push notification for a particular user. Generates notifications for all push tokens associated to the user specified in action params. This can only be used by System, Dealer, User, and Sub-User users.

Parameters

Name Type Description Constraints
bodyArgs[] array of strings Array of string arguments for interpolation
bodyKey string Message body key
clickAction string Click action
data object Pass along arbitrary key-value pairs
titleArgs[] array of strings Array of string arguments for interpolation
titleKey string Title key
userId string User to send push

Action: webHook

Description

Post event to a configured WebHook endpoint. This can only be used by System and Dealer users. WebHooks are defined by creating a events-webhooks resource and providing the events-webhooks ID for the webHookId param described below.

A WebHook endpoint must expose an HTTP(S) interface that listens for HTTP POSTs and returns HTTP status code 200 if the event was successfully processed. A non-200 status code results in further POST attempts until a 200 status code is received or 30 seconds have elapsed, in which case the event is discarded. We may provide a configurable retry period in the future.

A WebHook endpoint will receive a JSON POST body; for example:

{
  "meta": {
    "webHookId": "the configured webhook's id",
    "executedAt": "ISO-8601 timestamp of action execution",
    "secret": "the secret set on the events-webhooks resource",
    "url": "the configured webhook URL",
    "reference": "the reference field from the events-webhooks resource"
  },
  "context": {
    "event": {
      "name": "event.name",
      "params": {
        // varies by event
      },
      "data": {
        // varies by event
      }
    },
    "date": {
      "years": 2015,
      "months": 6,
      "date": 26,
      "hours": 1,
      "minutes": 53,
      "seconds": 14,
      "milliseconds": 600
    },
    // more context objects depending on event
  }
}

Parameters

Name Type Description Constraints
webHookId string events-webhooks resource ID

Context: date

Description

{
  "date": {
    "years": 2015,
    "months": 6,
    "date": 26,
    "hours": 1,
    "minutes": 53,
    "seconds": 14,
    "milliseconds": 600,
    "timestamp": 1435283594000
  }
}

Object representing the date the related event was generated. The object provided is in UTC and generated using momentjs’s toObject() function. See momentjs documentation.


Context: dealer

Description

{
  "dealer": {
    "companyName": "ACME Security",
  }
}

This context provides additional information for a dealer.


Context: device

Description

{
  "device": {
    "friendlyName": "My Connect+",
  }
}

This context provides additional information for a device.


Context: doorLock

Description

{
  "7": {
    "currentDoorLockMode":"secured",
    "insideDoorHandlesMode":[
      "disabled",
      "disabled",
      "disabled",
      "disabled"
    ],
    "outsideDoorHandlesMode":[
      "disabled",
      "disabled",
      "disabled",
      "disabled"
    ],
    "doorCondition":{
      "door":"open",
      "bolt":"locked",
      "latch":"open"
    }
  }
}

This context is only loaded for device.zwave events with an event.params.cmd of generalGetValue and either an event.params.commandClass of doorLock or an event.params.command of notificationReport. It provides an object which maps a ZWave node number to a door lock status. Since the door lock status values are loaded from a cache, the availability of this context is not guaranteed.


Context: nodeName

Description

{
  "7": "Front Door Lock",
  "11": "Kitchen Light"
}

This context is only loaded for device.zwave events with an event.params.cmd of generalGetValue. It provides an object which maps a ZWave node number to a node name. Since the node names are loaded from a cache, the availability of this context is not guaranteed.


Context: signal

Description

{
  "signal": {
    "eventDescription": "System Armed",
    "userZoneType": "User",
    "userZoneAlias": "Chris Customer",
    "areaPrefix": ", Area ",
    "area": "01"
  }
}

This context provides additional information for a device.signal event. It includes a text description for the signal and includes the signal’s user/zone name and type. The area and areaPrefix are loaded when the event trigger has a pushUser action and the user has their ‘enableAreaPartitionInEmailSMS’ feature enabled.


Context: zoneConfiguration

Description

{
  "zoneConfiguration": {
    "0": {
      "zoneSource": 0,
      "id": 16,
      "deviceType": "DWS",
      "inputIndex": 32,
      "inputIndexName": "Reed",
      "reportCode": 0,
      "activeLevel0": false,
      "activeLevel1": false,
      "activeLevel2": false,
      "activeLevel3": false,
      "activeLevel4": false,
      "activeLevel5": false,
      "activeLevel6": false,
      "activeLevel7": false,
      "sirenType": "No Siren",
      "alarmType": "No Alarm",
      "entryDelayTypeBit0": false,
      "entryDelayType": "none",
      "entryDelayTypeBit1": false,
      "supervisionType": "not supervised",
      "restoralReportNeeded": false,
      "alarmReportDelayEnabled": false,
      "bypassAllowed": false,
      "chimeOpen": false,
      "chimeClose": false,
      "lowBatteryDetectionEnabled": false,
      "tamperDetectionEnabled": false,
      "followerZone": false,
      "autoBypassEnabled": false,
      "zoneInactive": false,
      "swingerBypassThreshold": 0,
      "tamperAlarm": false,
      "crossZoningEnabled": false,
      "fireAlarmVerify": false,
      "normallyOpenZoneInput": false,
      "zoneName": "Front Door"
    }
  }
}

This context is only loaded for device.mfd events with an event.params.name of zoneStatus. It provides an object which maps a zone index to its zone configuration. Since the zone configuration is loaded from a cache, the availability of this context is not guaranteed.


Context: zoneStatus

Description

{
  "zoneStatus": {
    "0": {
      "sensorMalfunctionTrouble": false,
      "sensorEolTrouble": false,
      "generalTrouble": false,
      "supervisoryRecevied": false,
      "momentaryOpen": false,
      "alarmMemory": false,
      "alarm": false,
      "entryDelay": false,
      "tamper": false,
      "bypassed": false,
      "open": false,
      "supervisoryTrouble": false,
      "lowBatteryTrouble": false,
      "seqNumOutOfSync": false,
      "protesting": false,
      "testButton": false,
      "nanoLowTemp": false,
      "ceArmingSupervisionFailure": false,
      "acFail": false,
      "highTemperature": false,
      "lowTemperature": false,
      "swingerDisabled": false,
      "signalLevel": 1,
      "deviceTypeData": 2,
      "deviceType": 2
    },
    "1": {
      "sensorMalfunctionTrouble": false,
      "sensorEolTrouble": false,
      "generalTrouble": false,
      "supervisoryRecevied": false,
      "momentaryOpen": false,
      "alarmMemory": false,
      "alarm": false,
      "entryDelay": false,
      "tamper": false,
      "bypassed": false,
      "open": true,
      "supervisoryTrouble": false,
      "lowBatteryTrouble": false,
      "seqNumOutOfSync": false,
      "protesting": false,
      "testButton": false,
      "nanoLowTemp": false,
      "ceArmingSupervisionFailure": false,
      "acFail": false,
      "highTemperature": false,
      "lowTemperature": false,
      "swingerDisabled": false,
      "signalLevel": 1,
      "deviceTypeData": 2,
      "deviceType": 2
    }
  }
}

This context is only loaded for device.mfd events with an event.params.name of zoneStatus. It provides an object which maps a zone index to its current zone status. This allows you to compare the event’s new zone status values to the current values. Since the zone status is loaded from a cache, the availability of this context is not guaranteed.

Billing Programs

Background

Base billing programs are defined in code. To associate a billing program to a dealer, create dealers-programs resources. You can walk through available base billing programs by GETing the billing-programs (/rest/v1/billing/programs) resource.

Overriding Default Params

See below for a list of base programs and the parameters they have available for setting, as well as the defaults applied if no override is supplied.


Billing Program: sunset(f5c27478-1114-4a1e-b7be-08362b681958)

Description

Sunset program

Parameters

Name Type Description Constraints
deferredPlan string Plan to use for the deferred period (gpId) default: Sunset-Deferred
deferredTerm number Deferred term in months default: 18, minimum: 1
eligibleDeviceTypes[] array of enums Eligible device types default: [“BAT-CONNECT”,“CONNECT+”,“CONNECT-XT”], [“IPD-BAT”, “IPD-BAT-ZKI”, “IPD-ZGW”, “IPD-MPWC”, “IPD-BAT-U”, “IPD-BAT-CDMA”, “IPD-BAT-WIFI”, “IPD-BAT-CDMA-WIFI”, “IPD-BAT-CDMA-L”, “IPD-CAT-CDMA”, “IPD-CAT-XT”, “BAT-LTE”, “CONNECT+”, “CONNECT-XT”, “BAT-CONNECT”, “BAT-FIRE”, “CAMERA”, “CLARE-D3”]
inContractPlan string Plan to use after deferred period (gpId) default: Sunset-Contract
inContractTerm number In-contract term in months default: 36, minimum: 1
postContractPlan string Plan to use once out of contract (gpId) default: Sunset-Contract
waiveTerminationFee boolean Configure whether we are waiving the termination fee [true, false], default: false

Defaults

{
  "deferredTerm": 18,
  "deferredPlan": "Sunset-Deferred",
  "inContractTerm": 36,
  "inContractPlan": "Sunset-Contract",
  "postContractPlan": "Sunset-Contract",
  "eligibleDeviceTypes": [
    "BAT-CONNECT",
    "CONNECT+",
    "CONNECT-XT"
  ],
  "waiveTerminationFee": false
}

Billing Program: builder-2020(7abb379c-93c5-46a0-bcc2-5a302844f362)

Description

2020 Builder program

Parameters

Name Type Description Constraints
deferredPlan string Plan to use for the deferred period (gpId) default: BD20-PREPAID
deferredTerm number Deferred term in months default: 12, minimum: 1
eligibleDeviceTypes[] array of enums Eligible device types default: [“BAT-CONNECT”,“CONNECT+”], [“IPD-BAT”, “IPD-BAT-ZKI”, “IPD-ZGW”, “IPD-MPWC”, “IPD-BAT-U”, “IPD-BAT-CDMA”, “IPD-BAT-WIFI”, “IPD-BAT-CDMA-WIFI”, “IPD-BAT-CDMA-L”, “IPD-CAT-CDMA”, “IPD-CAT-XT”, “BAT-LTE”, “CONNECT+”, “CONNECT-XT”, “BAT-CONNECT”, “BAT-FIRE”, “CAMERA”, “CLARE-D3”]
inContractPlan string Plan to use after deferred period (gpId) default: BD20
inContractTerm number In-contract term in months default: 24, minimum: 1
postContractPlan string Plan to use once out of contract (gpId) default: BD20
waiveTerminationFee boolean Configure whether we are waiving the termination fee [true, false], default: true

Defaults

{
  "deferredTerm": 12,
  "deferredPlan": "BD20-PREPAID",
  "inContractTerm": 24,
  "inContractPlan": "BD20",
  "postContractPlan": "BD20",
  "eligibleDeviceTypes": [
    "BAT-CONNECT",
    "CONNECT+"
  ],
  "waiveTerminationFee": true
}

Billing Program: builder-2021(7bc184fd-5e8a-4bda-8023-4a3b32898d5a)

Description

2021 Builder program

Parameters

Name Type Description Constraints
defaultFeaturesSelected[] array of enums Default features selected default: [], [“alarmTransmission”, “alarmNotifications”, “interactiveServices”, “homeAutomation”, “video”, “twoWayVoice”, “panelDownloading”, “intrudeImpair”, “weatherForecast”, “weatherAlerts”, “billingCustom”, “activation”, “vigilance”, “programFee”, “inAppAlarmCancelConfirm”]
eligibleDeviceTypes[] array of enums Eligible device types default: [“IPD-BAT”,“IPD-BAT-ZKI”,“IPD-ZGW”,“IPD-MPWC”,“IPD-BAT-U”,“IPD-BAT-CDMA”,“IPD-BAT-WIFI”,“IPD-BAT-CDMA-WIFI”,“IPD-BAT-CDMA-L”,“IPD-CAT-CDMA”,“IPD-CAT-XT”,“BAT-LTE”,“CONNECT+”,“CONNECT-XT”,“BAT-CONNECT”,“BAT-FIRE”,“CAMERA”,“CLARE-D3”], [“IPD-BAT”, “IPD-BAT-ZKI”, “IPD-ZGW”, “IPD-MPWC”, “IPD-BAT-U”, “IPD-BAT-CDMA”, “IPD-BAT-WIFI”, “IPD-BAT-CDMA-WIFI”, “IPD-BAT-CDMA-L”, “IPD-CAT-CDMA”, “IPD-CAT-XT”, “BAT-LTE”, “CONNECT+”, “CONNECT-XT”, “BAT-CONNECT”, “BAT-FIRE”, “CAMERA”, “CLARE-D3”]
postContractPlan string Plan to use once out of contract (gpId) default: BD21
prepaidPlan string Plan to use for the prepaid period (gpId) default: BD21-PREPAID
prepaidTerm number Prepaid term in months default: 12, minimum: 1

Defaults

{
  "prepaidTerm": 12,
  "prepaidPlan": "BD21-PREPAID",
  "postContractPlan": "BD21",
  "eligibleDeviceTypes": [
    "IPD-BAT",
    "IPD-BAT-ZKI",
    "IPD-ZGW",
    "IPD-MPWC",
    "IPD-BAT-U",
    "IPD-BAT-CDMA",
    "IPD-BAT-WIFI",
    "IPD-BAT-CDMA-WIFI",
    "IPD-BAT-CDMA-L",
    "IPD-CAT-CDMA",
    "IPD-CAT-XT",
    "BAT-LTE",
    "CONNECT+",
    "CONNECT-XT",
    "BAT-CONNECT",
    "BAT-FIRE",
    "CAMERA",
    "CLARE-D3"
  ],
  "defaultFeaturesSelected": []
}

  1. 0-9a-fA-F

  2. 0-9a-fA-F