subAccountDeviceInfo (Detailed Info of Authorized Devices for Sub-Accounts - Imou Open Platform)
subAccountDeviceInfo: Detailed Info of Authorized Devices for Sub-Accounts - Imou Open Platform
Note: For sub-account authorized devices, use this HTTP method with a sub-account token. For general device detail by ID, see Batch detail by device ID (
device.detail.list).
Function details
Get the detailed information of the authorized device specified under the sub-account, only sub-account token call
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/subAccountDeviceInfo
Request format
HTTP POST. JSON body layout: Request conventions. Sign with Signature.
Incoming parameter description
| Parameter | Type | Required | Default | Legal value | Description |
|---|---|---|---|---|---|
| token | String | Yes | Subaccount token | ||
| deviceList.deviceId | String | Yes | List of device serial numbers, up to 8 device queries are supported | ||
| deviceList.channelList | String | No | "1,2,3,4,5": Multiple channel numbers are separated by commas. If it is empty, all device channels will be queried. | List of channel numbers | |
| deviceList.apList | String | No | "1,2,3,4,5": multiple part numbers separated by commas | Accessory Id list |
Sample input
{
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time": 1626313585,
"nonce": "93686fc7-153e-41b7-924b-834a901b98b4"
},
"id": "4f1dead2-ff99-49a7-a996-e996d56711b9",
"params": {
"deviceList": [
{
"channelList": "0",
"apList": "0,1",
"deviceId": "TESTQWERXXXX"
}
],
"token": "At_000085fa18f0319046199b2138c04e54"
}
}
Return data field description
| Field | Type | Description |
|---|---|---|
| deviceList.deviceId | String | Device serial number |
| deviceList.status | String | Device status, online: online, offline: offline, sleep: hibernation, upgrading |
| deviceList.deviceModel | String | Device model |
| deviceList.catalog | String | Equipment category [NVR/DVR/HCVR/IPC/SD/IHG/ARC] |
| deviceList.channels.resolutions.aplist.name | String | Device name |
| deviceList.channels.resolutions.aplist.permission | String | Device permissions, if only channel-level permissions are authorized, this field does not return content |
| deviceList.channels.aplist.ability | String | Equipment capability items, separated by commas, see device capability set for details |
| deviceList.channels.aplist.accessType | String | Device access type: (empty) Open Platform program access; Lechange Imou/easy4ip conventional devices; Easy4IP Easy4IP program devices; P2P P2P program devices |
| deviceList.channels.aplist.encryptMode | String | Encryption mode, 0: default encryption mode, 1: user-defined encryption mode |
| deviceList.channels.aplist.channelNum | String | The number of channels that the device can access |
| deviceList.channels.channelId | String | Channel number |
| deviceList.channels.channelName | String | Channel name |
| deviceList.channels.ability | String | Channel capability set, such as AlarmMD, AudioTalk, separated by commas |
| deviceList.channels.status | String | Remote channel status, online: online, offline: offline, close: not configured, sleep: hibernation, upgrading in progress |
| deviceList.channels.permission | String | Channel authority, if only the device level authority is authorized, fill in according to the device level authority |
| deviceList.channels.picUrl | String | Thumbnail URL |
| deviceList.resolutions.channels.name | String | the name of the resolution displayed on the client interface |
| deviceList.resolutions.channels.imageSize | Integer | resolution enumeration |
| deviceList.resolutions.channels.streamType | Integer | stream type, 0: HD main stream, 1: SD secondary stream |
| deviceList.aplist.apId | String | Accessory id |
| deviceList.aplist.apName | String | Accessory name |
| deviceList.aplist.apType | String | Accessories type |
| deviceList.aplist.apModel | String | Model of the accessory |
| deviceList.aplist.ioType | String | The io type of the accessory, in: input, out: output |
| deviceList.aplist.apVersion | String | The version number of the accessory |
| deviceList.aplist.apStatus | String | Online status of accessories, online: online, offline: offline |
| deviceList.aplist.apEnable | String | Enable the accessory, on: enable to open, off: enable to close |
| deviceList.aplist.apCapacity | String | Accessory capability items, separated by commas, such as AudioTalk, PT |
Sample output
{
"result": {
"msg": "The operation was successful.",
"code": "0",
"data": {
"deviceList": [{
"accessType": "",
"catalog": "NVR",
"encryptMode": "0",
"name": "NVR-4993",
"channelNum": "64",
"deviceModel": "DH-NVR5232-I",
"permission": "",
"ability": "Auth,DHP2P,CloudStorage,LocalStorage,RD,LocalRecord",
"deviceId": "TESTQWERXXXX",
"version": "2.145.1000.0.R.20181112",
"status": "offline",
"channels": [{
"picUrl": "",
"channelName": "NVR-4993-4",
"permission": "Alarm,Talk,Ptz,Config,Upgrade",
"ability": "PTZ,MDW,MDS,ChnLocalStorage",
"channelId": "3",
"status": "offline",
"resolutions":[{
"name":"1080P",
"imageSize":18,
"streamType":0
}]
}],
"aplist":[{
"apId":"APXXXXXXXXXXX",
"apName":"cname",
"apType":"ability",
"apModel":"wbs",
"ioType":"auto",
"apVersion":"V1.2.3",
"apStatus":"online",
"apEnable":"on",
"apCapacity":"AudioTalk,PT"
}]
}]
}
},
"id": "733b6b5c-05ce-4734-b407-e30dac44e637"
}
Error codes
This method may return the codes below. See Return codes and Capability errors for the full catalog.
Gateway and auth (SN / TK / OP)
| Code | Meaning | Next step |
|---|---|---|
SN1001 | Signature error | Check sign per Development specification |
TK1002 | Token invalid or expired | Refresh accessToken |
OP1002 | Missing required parameter | Add required fields |
OP1003 | Invalid parameter | Match this page’s parameter table |
OP1009 | Permission denied | Check token and device bind/share grants |
OP1013 | Total call limit exceeded | Reduce call rate |
OP1014 | Daily per-interface limit exceeded | See Interface call limits |
DV1007 | Device offline | Wait until the device is online |
See Return codes · OP/SN/TK for the full catalog.
Sub-accounts (SUB)
| Code | Meaning | Next step |
|---|---|---|
SUB1001–SUB1002 | Sub-account lacks API permission | Update policy via addPolicy |
SUB1005 | Sub-account token expired | Refresh subAccountToken |
SUB1006 | No device grant for sub-account | Check Resource and device serial |
SUB1008 | Sub-account not bound to app | Create and bind the sub-account first |
See Return codes · SUB.
Device access and channels (DV10xx)
| Code | Meaning | Next step |
|---|---|---|
DV1007 | Device offline or timeout | Wait for the device to come online |
DV1009 | Device busy | Retry later |
DV1012 | Insufficient share/grant permission | Check sub-account Permission / Resource |
DV1019 | Capability not supported | Confirm model and capability list |
DV1020 | Channel offline | Check channel status |
DV1026 | Function not supported | Use another API or upgrade firmware |
DV1028 | Not bound or channel missing | Verify deviceId / channelId |
See Return codes · DV.
