Monitor Premises
Monitor Premises
In this guide, we will create a premises monitorable to allow us to monitor events for a physical location.Overview
Monitorables are people, places, or things that you want to monitor for events and alarms. Premises monitorables are used to track and monitor physical locations, such as homes, businesses, or commercial buildings.
Getting Started
Before creating a premises monitorable, you need an application with the monitorable:write scope. If you haven't created an application yet, see the Create Application API Reference to get started.
Once you have your application credentials, use the Set Access Token button in the navbar to configure your access token for making API requests.
Create a Premises Monitorable
To create a premises monitorable, send a POST request to the /monitorables endpoint with the premises information:
Response
Upon successful creation, you'll receive a response containing the premises monitorable details:
{
"id": "7a60216c-5512-467a-8d70-6b5ccc7c9b7d",
"partnerId": "550e8400-e29b-41d4-a716-446655440000",
"externalId": "ext-premises-12345",
"customerSupportId": "A265000001",
"type": "PREMISES",
"verificationStatus": "PENDING_REQUIREMENTS",
"systemStatus": "INACTIVE",
"picEnabled": false,
"subscription": "MONTHLY",
"keys": [],
"requirements": [
{
"id": "550e8400-e29b-41d4-a716-446655440010",
"monitorableId": "7a60216c-5512-467a-8d70-6b5ccc7c9b7d",
"type": "NUMBER_OF_CONTACTS",
"status": "COMPLETE",
"stage": "PRE_ACTIVATION",
"responsibleParty": "CUSTOMER",
"count": 1,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
},
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"monitorableId": "7a60216c-5512-467a-8d70-6b5ccc7c9b7d",
"type": "PERMIT",
"status": "INCOMPLETE",
"stage": "POST_ACTIVATION",
"responsibleParty": "CUSTOMER",
"eventTypes": ["BURGLARY"],
"applicationUrl": "https://www.county.gov/permit",
"fees": [
{
"type": "PERMIT_INITIAL",
"frequency": "PT0S",
"amount": 50.00,
"currency": "USD"
}
],
"renewal": {
"frequency": "P1Y",
"responsibleParty": "CUSTOMER",
"fee": { "amount": 50.00, "currency": "USD", "frequency": "P1Y" }
},
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
}
],
"documents": [],
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-20T14:45:00Z"
}
Customer Support ID
Premises monitorables are associated with a customerSupportId (ex. A265000001).
To reserve an ID before create, send a POST request to /monitorables/customer-support-id:
Response:
{
"id": "A265000001",
"expiresAt": "2024-01-15T10:45:00Z"
}
The response id is the customer support ID string. Pass it as customerSupportId when creating the premises monitorable. The reservation lasts 15 minutes; the platform claims the reserved ID for the new monitorable. If you omit the field on create, a new ID is allocated automatically and returned on the create response. Passing an expired or already-claimed ID returns a 400 error. If the partner has no available customer support pool, the reserve endpoint returns a 400 error.
Person and vehicle monitorables do not use customerSupportId.
Subscription
When the partner has active subscription offerings, creating a premises monitorable generates a SUBSCRIPTION pre-activation requirement. The allowed types appear in the requirement options array (for example MONTHLY, ANNUAL).
You may pass subscription on create:
- If the value is one of the allowed options, the requirement is created as
COMPLETEandsubscriptionis set on the monitorable. - If omitted, the requirement is created as
INCOMPLETEand must be fulfilled before activation via update. - If you pass
subscriptionwhen the partner has no active subscriptions, the API returns400withSubscription is not available for this partner.
If the partner has no active subscriptions, no SUBSCRIPTION requirement is created.
See Subscriptions for the full model.
Contact Ordering
Contacts serve as the call escalation list used by monitoring agents and emergency services when an alarm occurs at the premises. Use the optional order field on each contact to control the sequence in which contacts are attempted — order: 1 is tried first, then order: 2, and so on.
When order is omitted on create, the platform assigns based on the contact's position in the request array. When adding a new contact on update without order, the next available value is assigned. Each contact must have a unique order — duplicates are rejected with a 400 error. Exactly one contact must be PRIMARY, and that contact needs an email. See Contact type.
{
"type": "PREMISES",
"contacts": [
{
"firstName": "John",
"lastName": "Doe",
"phoneNumber": "+15551110001",
"emailAddress": "john.doe@example.com",
"contactType": "PRIMARY",
"preferredLanguage": "en-US",
"order": 1
},
{
"firstName": "Jane",
"lastName": "Doe",
"phoneNumber": "+15551110002",
"emailAddress": "jane.doe@example.com",
"contactType": "EMERGENCY",
"preferredLanguage": "en-US",
"order": 2
}
]
}
See Contact Ordering in the Monitorables concept guide for a full explanation.
Activate the Monitorable
After creating the monitorable, you need to activate it before events can be created. The monitorable must have a status of PENDING_REQUIREMENTS or VERIFIED and meet all pre-activation requirements, including required contacts and — when present — a completed SUBSCRIPTION requirement.
Send a POST request to the /monitorables/:monitorableId/activate endpoint:
Conclusion
You've successfully created and activated a premises monitorable in the Hyperion platform. The premises monitorable can now be used to track events for the physical location.
Next Steps
Now that you have a monitorable, you can start creating events for it. See the Create Events guide to learn how to send events for your monitorable.
Learn More
Related Concepts
- Monitorables - Understanding monitorable types and fields
- Subscriptions - Subscription offerings and the SUBSCRIPTION requirement
- Events - Creating events for monitorables
API Reference
- Create Monitorable - Create a new monitorable
- Get Monitorable - Retrieve monitorable details
- List Monitorables - List all monitorables
- Update Monitorable - Update monitorable details