Download OpenAPI specification:
This specification defines the HTTP APIs provided by Silver Shield for third-party system integration.
To access these APIs, partners must obtain a valid API access key through the Silver Shield Developer Portal. All API requests require authentication via HMAC-SHA256 signature in the Authorization header.
Throughout this document:
APIs for managing sensor firmware, including version queries and upgrade operations
Retrieves a list of available firmware versions for supported sensor models. Use this endpoint to determine if newer firmware versions are available for upgrade.
Response Structure: The response is organized by sensor model, listing all available firmware versions including release notes and compatibility information.
[- {
- "model": 2,
- "firmwareList": [
- {
- "id": 1,
- "changelog": "string",
- "uploadTime": "2024-01-01T12:00:00Z",
- "releaseTime": "2024-01-01T12:00:00Z",
- "fileName": "string",
- "version": "1.2.0"
}
]
}
]APIs for sensor lifecycle management, including registration, configuration, monitoring, and maintenance
Provisions security certificates required for the sensor to establish secure connections with the MQTT broker.
This endpoint should be called during the initial sensor onboarding process. The Integrator's system retrieves the certificates and transmits them securely to the sensor via the App, enabling authenticated and encrypted MQTT communication.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
| version required | string (Version) ^(\d+)\.(\d+)\.(\d+)$ Version number following semantic versioning format (X.Y.Z). |
| model required | integer <int32> (Model) Enum: 2 4 Sensor hardware model identification Supported Models:
Model information is embedded in the sensor serial number and determines firmware compatibility and feature support. |
| timeZone required | string <time-zone> Time zone of the sensor. |
| name | string [ 1 .. 64 ] characters Name of the sensor. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "version": "1.2.0",
- "model": 2,
- "timeZone": "string",
- "name": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "thingName": "string",
- "certPem": "string",
- "publicKey": "string",
- "privateKey": "string",
- "orgId": 4001,
- "sensorId": 6001
}Retrieves a paginated list of sensors with advanced filtering capabilities for comprehensive device inventory management.
Supports multi-parameter filtering for precise sensor discovery:
10: Online - Sensor actively connected and operational20: Offline - Sensor disconnected or unreachable0: Normal - Radar functioning correctly21: Abnormal - Radar error detected22: Mount angle skewed - Installation angle out of optimal range0: Up-to-date - Running latest firmware10: New firmware available - Update pending20: Upgrading - Currently performing firmware update30: Upgrade failed - Previous upgrade attempt unsuccessfulRequires pageNo and pageSize parameters. Maximum 100 records per page.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| pageNo required | integer >= 1 Example: pageNo=1 Page number for pagination (starts from 1) |
| pageSize required | integer [ 1 .. 100 ] Number of items per page (maximum 100) |
| sn | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: sn=ATR_GN_P4-250120-09527 Sensor serial number for filtering (partial match supported) |
| model | integer <int32> (Model) Enum: 2 4 Example: model=2 Sensor model |
| version | string (Version) ^(\d+)\.(\d+)\.(\d+)$ Example: version=1.2.0 Firmware version |
| state | integer <int32> (SensorState) Enum: 10 20 Sensor connection status |
| radarState | integer <int32> (RadarWorkState) Enum: 0 21 22 Radar work status |
| upgradeState | integer <int32> (UpgradeState) Enum: 0 10 20 30 Upgrade status |
| metaKey | string Metadata key for filtering (must be used together with |
| metaValue | string Metadata value for filtering (must be used together with |
{- "countId": "string",
- "current": 1,
- "maxLimit": 0,
- "optimizeCountSql": true,
- "pages": 0,
- "searchCount": true,
- "size": 100,
- "total": 0,
- "records": [
- {
- "id": 6001,
- "sn": "ATR_GN_P4-250120-09527",
- "model": 2,
- "tenantName": "Pontosense",
- "state": 10,
- "radarState": 0,
- "upgradeState": 0,
- "activationTime": "2024-01-01T12:00:00Z",
- "currentVersion": "1.2.0",
- "availableVersion": "1.2.0",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
]
}Retrieves comprehensive information about a specific sensor, including:
This endpoint is typically used for diagnostic purposes or to display sensor status in management interfaces.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
{- "sn": "ATR_GN_P4-250120-09527",
- "version": "1.2.0",
- "model": 2,
- "configs": {
- "scanArea": {
- "left": 150,
- "right": 150,
- "height": 200
}, - "fall": {
- "threshold": 0
}
}, - "defaults": {
- "scanArea": {
- "left": 150,
- "right": 150,
- "height": 200
}, - "fall": {
- "threshold": 0
}
}, - "angle": {
- "roll": -0.47,
- "pitch": -0.9
}
}Updates modifiable attributes of an existing sensor.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
| name required | string [ 1 .. 64 ] characters Name of the sensor. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Permanently removes a sensor from the tenant's system.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}Configures monitoring space (scan area) for optimal sensor performance.
All measurements are relative to the sensor's facing direction:

| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
| left required | integer [ 150 .. 600 ] Left-side detection distance in centimeters (horizontal) |
| right required | integer [ 150 .. 600 ] Right-side detection distance in centimeters (horizontal) |
| height required | integer [ 200 .. 220 ] Sensor mounting height from floor in centimeters (vertical) |
{- "left": 150,
- "right": 150,
- "height": 200
}{- "code": 100101,
- "message": "Not authenticated."
}Defines spatial zones within the sensor's scan area to enable location-specific activity monitoring and event generation.
cm) cm) bed_in, door_in)| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
| id required | integer <int64> (Id) >= 1 Unique identifier for an entity in the system. This is a base type used by all entity identifiers ( |
| type required | integer <int32> Enum: 10 20 30 40 50 Zone type
|
required | Array of objects (Coordinate) = 2 items Zone boundaries (rectangle) in centimeters, given as the top-left and bottom-right corner points. |
| height | integer <int32> [ 0 .. 500 ] Zone height in centimeters (integer ≥ 0 and ≤ 500). |
| angle | integer <int32> Enum: 0 90 180 270 Zone orientation in degrees (clockwise from top).
|
[- {
- "id": 1,
- "type": 10,
- "coordinates": [
- {
- "x": 0,
- "y": 0
}, - {
- "x": 0,
- "y": 0
}
], - "height": 500,
- "angle": 0
}
]{- "code": 100101,
- "message": "Not authenticated."
}Retrieves the complete list of configured zones for a specific sensor.
Returns all zone configurations including:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
[- {
- "id": 1,
- "type": 10,
- "coordinates": [
- {
- "x": 0,
- "y": 0
}, - {
- "x": 0,
- "y": 0
}
], - "height": 500,
- "angle": 0
}
]Configures the fall detection delay threshold to balance sensitivity and false positive rates.
Lower Threshold:
Higher Threshold:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
| threshold required | integer Enum: 0 30 60 90 Fall detection confirmation delay in seconds Threshold Options:
|
{- "threshold": 0
}{- "code": 100101,
- "message": "Not authenticated."
}Activates continuous real-time location data transmission to the configured MQTT channel.
/sensors/{sn}/actions/location/stop to terminate reporting before timeout| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}Immediately terminates active real-time location data transmission.
/start endpoint again| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}Initiates a remote power cycle of the specified sensor.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}Triggers an over-the-air (OTA) firmware upgrade for the specified sensor.
0: Manual upgrade (initiated by user)1: Automatic upgrade (system-initiated)| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
| firmwareId required | integer <int64> (Id) >= 1 Unique identifier for an entity in the system. This is a base type used by all entity identifiers ( |
| otaType | integer <int32> (OtaType) Enum: 0 1 (optional): Upgrade type.
|
{- "firmwareId": 1,
- "otaType": 0
}{- "code": 100101,
- "message": "Not authenticated."
}Associates a sensor with a specific room within a home, enabling room-level organization and analytics. Currently, only one room can be assigned per sensor.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
| roomId required | integer <int64> (RoomId) >= 1 Unique identifier for a room in the system. This ID is automatically generated when a room is created and remains constant
throughout the room's lifecycle. A room represents a physical space within a home
where a sensor is deployed (e.g., |
{- "roomId": 3001
}{- "code": 100101,
- "message": "Not authenticated."
}Marks the completion of the physical sensor installation (mounting and calibration) process.
This endpoint should be called after:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| sn required | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: ATR_GN_P4-250120-09527 Unique sensor serial number as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}APIs for user account management, including creation, updates, and binding/unbinding operations
Retrieves a paginated list of user accounts with comprehensive filtering capabilities.
Requires pageNo and pageSize parameters. Maximum 100 records per page.
Returns user details including:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| pageNo required | integer >= 1 Example: pageNo=1 Page number for pagination (starts from 1) |
| pageSize required | integer [ 1 .. 100 ] Number of items per page (maximum 100) |
| name | string Filter by name (partial match, case-insensitive) |
string Filter by email address (partial match, case-insensitive) | |
| id | integer <int64> (Id) >= 1 Example: id=1 Unique identifier |
| homeId | integer <int64> (HomeId) >= 1 Example: homeId=1 Home unique identifier for filtering |
| labelId | integer <int64> (LabelId) >= 1 Example: labelId=1 Label unique identifier for filtering |
| metaKey | string Metadata key for filtering (must be used together with |
| metaValue | string Metadata value for filtering (must be used together with |
{- "countId": "string",
- "current": 1,
- "maxLimit": 0,
- "optimizeCountSql": true,
- "pages": 0,
- "searchCount": true,
- "size": 100,
- "total": 0,
- "records": [
- {
- "id": 1001,
- "name": "string",
- "email": "user@example.com",
- "createTime": "2024-01-01T12:00:00Z",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
]
}Creates a new user account within the tenant.
Returns the newly created user's ID for reference in subsequent operations.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| name required | string [ 1 .. 64 ] characters The username of the new user. |
| email required | string <email> A real mailbox that accepts mail for user login. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "email": "user@example.com",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "userId": 1
}Modifies existing user account information.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| userId required | integer <int64> (Id) >= 1 Example: 1 Unique user identifier as a path parameter |
| name required | string [ 1 .. 64 ] characters The username of the new user. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Permanently removes a user account from the tenant.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| userId required | integer <int64> (Id) >= 1 Example: 1 Unique user identifier as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}Establishes associations between a user and multiple homes. After association, the user will receive events and data from the specified homes.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| userId required | integer <int64> (Id) >= 1 Example: 1 Unique user identifier as a path parameter |
| homes required | Array of integers <int64> (HomeId) [ items <int64 > >= 1 ] List of home IDs to bind to the user. |
{- "homes": [
- 2001
]
}{- "code": 100101,
- "message": "Not authenticated."
}Removes associations between a user and specified homes.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| userId required | integer <int64> (Id) >= 1 Example: 1 Unique user identifier as a path parameter |
| homes required | Array of integers <int64> (HomeId) [ items <int64 > >= 1 ] List of home IDs to unbind from the user. |
{- "homes": [
- 2001
]
}{- "code": 100101,
- "message": "Not authenticated."
}Establishes associations between a user and multiple labels. After association, the user will be able to manage the homes belonging to those labels.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| userId required | integer <int64> (Id) >= 1 Example: 1 Unique user identifier as a path parameter |
| labels required | Array of integers <int64> (LabelId) [ items <int64 > >= 1 ] List of label IDs to bind to the user. |
{- "labels": [
- 5001
]
}{- "code": 100101,
- "message": "Not authenticated."
}Removes associations between a user and specified labels. After disassociation, the user will no longer be linked to the homes under those labels.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| userId required | integer <int64> (Id) >= 1 Example: 1 Unique user identifier as a path parameter |
| labels required | Array of integers <int64> (LabelId) [ items <int64 > >= 1 ] List of label IDs to unbind from the user. |
{- "labels": [
- 5001
]
}{- "code": 100101,
- "message": "Not authenticated."
}APIs for home entity management, including creation, modification, and user-label associations
Retrieves a paginated list of homes with comprehensive filtering capabilities.
Requires pageNo and pageSize parameters. Maximum 100 records per page.
Returns home details including:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| pageNo required | integer >= 1 Example: pageNo=1 Page number for pagination (starts from 1) |
| pageSize required | integer [ 1 .. 100 ] Number of items per page (maximum 100) |
| name | string Filter by name (partial match, case-insensitive) |
| id | integer <int64> (Id) >= 1 Example: id=1 Unique identifier |
| userId | integer <int64> (Id) >= 1 Example: userId=1 User unique identifier for filtering |
| labelId | integer <int64> (LabelId) >= 1 Example: labelId=1 Label unique identifier for filtering |
| metaKey | string Metadata key for filtering (must be used together with |
| metaValue | string Metadata value for filtering (must be used together with |
{- "countId": "string",
- "current": 1,
- "maxLimit": 0,
- "optimizeCountSql": true,
- "pages": 0,
- "searchCount": true,
- "size": 100,
- "total": 0,
- "records": [
- {
- "id": 2001,
- "name": "string",
- "tenantId": 4001,
- "createTime": "2024-01-01T12:00:00Z",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
]
}Creates a new home entity for the tenant.
Returns the newly created home's ID for reference in subsequent operations.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| name required | string [ 1 .. 64 ] characters The name of the new home. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "homeId": 2001
}Modifies existing home entity details.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
| name required | string [ 1 .. 64 ] characters The name of the home. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Permanently removes a home from the tenant.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}Establishes associations between a home and multiple users. After association, the specified users will receive events and data from the home.
It is equal to /tenants/{tenantId}/users/{userId}/homes endpoint in terms of functionality.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
| users required | Array of integers <int64> (UserId) [ items <int64 > >= 1 ] List of user IDs to bind to the home. |
{- "users": [
- 1001
]
}{- "code": 100101,
- "message": "Not authenticated."
}Removes associations between a home and specified users.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
| users required | Array of integers <int64> (UserId) [ items <int64 > >= 1 ] List of user IDs to unbind from the home. |
{- "users": [
- 1001
]
}{- "code": 100101,
- "message": "Not authenticated."
}Establishes associations between a home and multiple labels, grouping homes with labels.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
| labels required | Array of integers <int64> (LabelId) [ items <int64 > >= 1 ] List of label IDs to bind to the home. |
{- "labels": [
- 5001
]
}{- "code": 100101,
- "message": "Not authenticated."
}Removes associations between a home and specified labels.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
| labels required | Array of integers <int64> (LabelId) [ items <int64 > >= 1 ] List of label IDs to unbind from the home. |
{- "labels": [
- 5001
]
}{- "code": 100101,
- "message": "Not authenticated."
}Retrieves a paginated list of rooms belonging to a specific home with filtering capabilities.
Requires pageNo and pageSize parameters. Maximum 100 records per page.
Returns room details including:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
| pageNo required | integer >= 1 Example: pageNo=1 Page number for pagination (starts from 1) |
| pageSize required | integer [ 1 .. 100 ] Number of items per page (maximum 100) |
| id | integer <int64> (Id) >= 1 Example: id=1 Unique identifier |
| name | string Filter by name (partial match, case-insensitive) |
| metaKey | string Metadata key for filtering (must be used together with |
| metaValue | string Metadata value for filtering (must be used together with |
{- "countId": "string",
- "current": 1,
- "maxLimit": 0,
- "optimizeCountSql": true,
- "pages": 0,
- "searchCount": true,
- "size": 100,
- "total": 0,
- "records": [
- {
- "id": 3001,
- "name": "string",
- "type": 0,
- "createTime": "2024-01-01T12:00:00Z",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
]
}Creates a new room within a specific home.
0: Other1: Bedroom2: Living room3: Bathroom4: Kitchen5: Office6: HallwayReturns the newly created room's ID for reference in subsequent operations.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| homeId required | integer <int64> (HomeId) >= 1 Example: 1 Unique home identifier as a path parameter |
| name required | string [ 1 .. 64 ] characters The name of the new room. |
| type required | any <int32> (RoomType) Enum: 0 1 2 3 4 5 6 Room functional classification Room Types:
|
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "type": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "roomId": 3001
}Modifies existing room entity details.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| roomId required | integer <int64> (RoomId) >= 1 Example: 1 The unique identifier of the room |
| name required | string [ 1 .. 64 ] characters The name of the room. |
| type | any <int32> (RoomType) Enum: 0 1 2 3 4 5 6 Room functional classification Room Types:
|
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "type": 0,
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Permanently removes a room from the home's structure.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| roomId required | integer <int64> (RoomId) >= 1 Example: 1 The unique identifier of the room |
{- "code": 100101,
- "message": "Not authenticated."
}Retrieves comprehensive weekly activity reports for monitored users in a specific room.
The response includes:
room, period, timezone, state)Reports may contain multiple analysis sections covering:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| roomId required | integer <int64> (RoomId) >= 1 Example: 1 The unique identifier of the room |
| startTime required | string <date-time> (Time) Example: startTime=2024-01-01T12:00:00Z Event window start time (ISO 8601 date-time format). Maximum time window with endTime is 7 days. |
| endTime required | string <date-time> (Time) Example: endTime=2024-01-01T12:00:00Z Event window end time (ISO 8601 date-time format). Maximum time window with startTime is 7 days. |
{- "roomId": 3001,
- "roomType": 0,
- "scale": 1,
- "startDate": "2025-07-08",
- "contentStartDate": "2025-07-07",
- "contentEndDate": "2025-07-13",
- "timezone": "America/New_York",
- "state": 1,
- "summary": {
- "sections": [
- {
- "subtitle": "subtitle",
- "content": "analysis description..."
}
]
}, - "tips": [
- {
- "category": "Fall Risk Assessment",
- "sections": [
- {
- "subtitle": "subtitle",
- "content": "analysis description..."
}
]
}
]
}Retrieves a paginated list of labels with comprehensive filtering capabilities.
Requires pageNo and pageSize parameters. Maximum 100 records per page.
Returns label details including:
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| pageNo required | integer >= 1 Example: pageNo=1 Page number for pagination (starts from 1) |
| pageSize required | integer [ 1 .. 100 ] Number of items per page (maximum 100) |
| id | integer <int64> (Id) >= 1 Example: id=1 Unique identifier |
| name | string Filter by name (partial match, case-insensitive) |
| userId | integer <int64> (Id) >= 1 Example: userId=1 User unique identifier for filtering |
| homeId | integer <int64> (HomeId) >= 1 Example: homeId=1 Home unique identifier for filtering |
| metaKey | string Metadata key for filtering (must be used together with |
| metaValue | string Metadata value for filtering (must be used together with |
{- "countId": "string",
- "current": 1,
- "maxLimit": 0,
- "optimizeCountSql": true,
- "pages": 0,
- "searchCount": true,
- "size": 100,
- "total": 0,
- "records": [
- {
- "id": 5001,
- "name": "string",
- "description": "string",
- "createTime": "2024-01-01T12:00:00Z",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
]
}Creates a new label for categorizing homes and users.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| name required | string [ 1 .. 64 ] characters The name of the new label. |
| description | string [ 0 .. 500 ] The description of the label. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "description": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Modifies existing label details.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| labelId required | integer <int64> (LabelId) >= 1 Example: 1 Unique label identifier as a path parameter |
| name required | string [ 1 .. 64 ] characters The name of the label. |
| description | string The description of the label. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "description": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Permanently removes a label for the tenant.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| labelId required | integer <int64> (LabelId) >= 1 Example: 1 Unique label identifier as a path parameter |
{- "code": 100101,
- "message": "Not authenticated."
}Establishes associations between a label and multiple homes.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| labelId required | integer <int64> (LabelId) >= 1 Example: 1 Unique label identifier as a path parameter |
| homes required | Array of integers <int64> (HomeId) [ items <int64 > >= 1 ] List of home IDs to bind to the label. |
{- "homes": [
- 2001
]
}{- "tenantId": 1
}Removes associations between a label and specified homes.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| labelId required | integer <int64> (LabelId) >= 1 Example: 1 Unique label identifier as a path parameter |
| homes required | Array of integers <int64> (HomeId) [ items <int64 > >= 1 ] List of home IDs to unbind from the label. |
{- "homes": [
- 2001
]
}{- "tenantId": 1
}Establishes direct associations between a label and multiple users.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| labelId required | integer <int64> (LabelId) >= 1 Example: 1 Unique label identifier as a path parameter |
| users required | Array of integers <int64> (UserId) [ items <int64 > >= 1 ] List of user IDs to bind to the label. |
{- "users": [
- 1001
]
}{- "tenantId": 1
}Removes direct associations between a label and specified users.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| labelId required | integer <int64> (LabelId) >= 1 Example: 1 Unique label identifier as a path parameter |
| users required | Array of integers <int64> (UserId) [ items <int64 > >= 1 ] List of user IDs to unbind from the label. |
{- "users": [
- 1001
]
}{- "tenantId": 1
}Retrieves a paginated list of tenants with filtering capabilities.
Requires pageNo and pageSize parameters. Maximum 100 records per page.
Returns tenant details including:
| pageNo required | integer >= 1 Example: pageNo=1 Page number for pagination (starts from 1) |
| pageSize required | integer [ 1 .. 100 ] Number of items per page (maximum 100) |
| name | string Filter by name (partial match, case-insensitive) |
| id | integer <int64> (Id) >= 1 Example: id=1 Unique identifier |
string Filter by email address (partial match, case-insensitive) | |
| metaKey | string Metadata key for filtering (must be used together with |
| metaValue | string Metadata value for filtering (must be used together with |
{- "countId": "string",
- "current": 1,
- "maxLimit": 0,
- "optimizeCountSql": true,
- "pages": 0,
- "searchCount": true,
- "size": 100,
- "total": 0,
- "records": [
- {
- "id": 1,
- "name": "string",
- "email": "user@example.com",
- "createTime": "2024-01-01T12:00:00Z",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}
]
}Creates a new tenant organization in the system.
| name required | string (Name) [ 1 .. 64 ] characters Human-readable name of an entity. This field represents the display name for users, homes, rooms, labels, tenants, etc. The name should be descriptive and meaningful for end users. Must be between 1 and 64 characters in length. |
| email required | string <email> (Email) Email address for user or tenant communication. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "email": "user@example.com",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Modifies existing tenant organization details.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| name required | string (Name) [ 1 .. 64 ] characters Human-readable name of an entity. This field represents the display name for users, homes, rooms, labels, tenants, etc. The name should be descriptive and meaningful for end users. Must be between 1 and 64 characters in length. |
object (Metadata) Metadata represented as key-value pairs for extensibility. This field allows clients to attach custom data to entities (users, homes, rooms, etc.) for their own purposes. Key-value pairs are flexible and can store any string values. Reserved for future extensibility and integrations. Use cases include:
|
{- "name": "string",
- "metadata": {
- "property1": "string",
- "property2": "string"
}
}{- "code": 100101,
- "message": "Not authenticated."
}Permanently removes a tenant organization and all associated resources.
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
{- "code": 100101,
- "message": "Not authenticated."
}Retrieves historical events generated by sensors with comprehensive filtering and pagination. Events can be queried for a maximum of 7 days after trigger and are cleared on a rolling basis.
| Type | Description |
|---|---|
online |
Sensor came online |
offline |
Sensor went offline |
occupied |
Room occupancy detected |
vacant |
Room became vacant |
bed_in |
User entered bed |
bed_out |
User exited bed |
couch_in |
User sat on couch/sofa |
couch_out |
User left couch/sofa |
door_in |
User entered through door |
door_out |
User exited through door |
mount_angle_skewed |
Sensor mounting angle abnormal |
sensor_recovered |
Sensor issue resolved |
sensor_malfunctioning |
Sensor malfunction detected |
upgrade_started |
Firmware upgrade initiated |
upgrade_succeeded |
Firmware upgrade completed successfully |
upgrade_failed |
Firmware upgrade failed |
fall_detected |
Fall event detected |
fall_recovered |
User recovered from fall |
| tenantId required | integer <int64> (TenantId) >= 1 Example: 1 The unique identifier of the tenant |
| pageNo required | integer >= 1 Example: pageNo=1 Page number for pagination (starts from 1) |
| pageSize required | integer [ 1 .. 100 ] Number of items per page (maximum 100) |
| id | integer <int64> (Id) >= 1 Example: id=1 Unique identifier |
| sn | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Example: sn=ATR_GN_P4-250120-09527 Sensor serial number for filtering (partial match supported) |
| type | string (EventType) Enum: "online" "offline" "occupied" "vacant" "bed_in" "bed_out" "couch_in" "couch_out" "door_in" "door_out" "fall_detected" "fall_recovered" "mount_angle_skewed" "sensor_recovered" "sensor_malfunctioning" "upgrade_started" "upgrade_succeeded" "upgrade_failed" Filter by event type code Available event types:
|
| startTime required | string <date-time> (Time) Example: startTime=2024-01-01T12:00:00Z Event window start time (ISO 8601 date-time format). Maximum time window with endTime is 7 days. |
| endTime required | string <date-time> (Time) Example: endTime=2024-01-01T12:00:00Z Event window end time (ISO 8601 date-time format). Maximum time window with startTime is 7 days. |
{- "countId": "string",
- "current": 1,
- "maxLimit": 0,
- "optimizeCountSql": true,
- "pages": 0,
- "searchCount": true,
- "size": 100,
- "total": 0,
- "records": [
- {
- "id": 1,
- "sn": "ATR_GN_P4-250120-09527",
- "type": "online",
- "happenedTime": "2024-01-01T12:00:00Z"
}
]
}Get iot token, which is used for iot device authentication.
| sn | string (Sn) ^ATR_GN_P[24]-[0-9]{6}-[0-9]{5}$ Sensor serial number (SN). |
{- "sn": "ATR_GN_P4-250120-09527"
}{- "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6MTY0MjE5NjQzNywiZXhwIjoxNjQyMjAwMzM3fQ.y5ZY5ZY5ZY5ZY5ZY5ZY5ZY5ZY5ZY5ZY5Z",
- "expireTime": "2023-01-15T08:13:57Z",
- "host": "dev-iot.pontosense.net",
- "data": {
- "scanArea": {
- "left": 150,
- "right": 150,
- "height": 200
}, - "zones": [
- {
- "id": 1,
- "type": 10,
- "coordinates": [
- {
- "x": 0,
- "y": 0
}, - {
- "x": 0,
- "y": 0
}
], - "height": 500,
- "angle": 0
}
], - "preference": 0
}
}