device.property.get (Read properties)
device.property.get: Read properties
What it does
Reads the current values of multiple configuration or state properties in one call. The request must target one bound device. Use the full propertyId for each item. Do not mix device-level and channel-level properties in a single request.
Request URL
POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.property.get
Minimum permission
An administrator needs no extra permission on a device they bound. A bound sub-user needs none. For shared devices and sub-accounts, required permission follows each property page’s Minimum permission and Permission codes; the gateway checks internal capability codes—device.capability.list does not return shareAuthCode/subAccountAuthCode. If a property page is stricter, that page wins. Same rules as device.property.get. The device must be bound (DV2013).
Request parameters
| Name | Type | Required | Default | Allowed values | Description |
|---|---|---|---|---|---|
token | String | yes | Administrator, sub-user, or sub-account accessToken | ||
deviceId | String | yes | Device serial number | ||
productId | String | no | Optional. If sent and it does not match the device model → DV2009 | ||
channelId | String | conditional | Channel index; IPCs often "0". Do not pass -1. Single-channel IPCs still use "0" | Required for channel-level reads; omit for device-level. Mixing levels in one request returns DV2008 | |
properties | Array | yes | propertyId strings | Properties to read, e.g. ["storage.local.capacity"] |
Common request fields and signing: Signing and Common request payload.
Request example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1706511734,
"nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
},
"params": {
"token": "<yourAccessToken>",
"deviceId": "TESTIPC000012345",
"channelId": "0",
"properties": ["detection.motion.enabled", "image.night.mode"]
}
}
Response data fields
| Name | Type | Description |
|---|---|---|
properties | Object | Keys match the requested propertyId values |
properties.{key} | per item type | Current value. Switches use 0/1; enums use the configured value |
The response includes one entry per item in the request properties array. The contract does not define partial success—do not parse the payload as partially successful.
Response example
{
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"result": {
"code": "0",
"msg": "Operation is successful",
"data": {
"properties": {
"detection.motion.enabled": 1,
"image.night.mode": 0
}
}
}
}
Error codes
This API may return the codes below.
Gateway and device codes: Global return codes.
