API Documentation
Alula
Thu Jan 6 21:33:02 UTC 2022
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:
- Alarmdealer URL
- API Address and Port
- Client ID
- Client Secret
- Alarmdealer Username
- Alarmdealer Password
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:
- MAC - an identifier of the form XX:XX:XX:XX:XX:XX
- CRC - a 4-digit number found on the label along with the MAC.
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 | |
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 | |||
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 | |||
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 | ||
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 | |
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.
- The spec normally requires that you provide
"jsonrpc":"2.0"
, but we allow you to omit this - 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 themethod
property from your request. If you use this technique, themethod
property will be ignored in favor of the URL path.
- You may POST to
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:
- subscribe
- send
- publish
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:
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:
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:
- A name; usually dot-separated
- Params; optional and required parameters for use in trigger definition (documented per event)
- Contexts; meaning information related and provided to actions for a particular event (documented per event)
- Available actions; event types have certain whitelisted actions available (documented per event)
- Permissions; permission requirements for the authorization to register a trigger for a particular event
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.
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
This context provides additional information for a dealer.
Context: device
Description
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
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 GET
ing 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": []
}