Query Sub-Account Device Permissions - Imou Open Platform
listSubAccountDevice: Query the list of devices with permissions for the sub-account
Function details
Query the list of devices with permissions for the current sub-account by page
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/listSubAccountDevice
Request format
HTTP POST. JSON body layout: Request conventions. Sign with Signature.
Incoming parameter description
| Parameter name | Parameter type | Required or not | Default value | Legal value | Parameter description |
|---|---|---|---|---|---|
| token | String | Yes | Administrator accessToken | ||
| pageNo | Integer | No | 1 | Pagination start page, starting from 1 | |
| pageSize | Integer | No | 10 | 1–50 | Page size, the default is 10, the maximum is 50 |
| openid | String | Yes | Subaccount ID |
Sample input
{
"system":{
"ver":"1.0",
"appId":"lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time":1603350473,
"nonce":"a4d59add-0f04-4b7e-9355-d1fb4e9dc22b"
},
"id":"d82a7fa7-655f-4bb8-ab75-72bb3dfa3a94",
"params":{
"token": "At_0000cc8b90811e774a10816d75c27998",
"pageNo": 1,
"pageSize": 10,
"openid":"5dd2fe5bc11240a9b5d4fd4474c857c5"
}
}
Return data field description
| Field name | Field type | Field description |
|---|---|---|
| pageNo | String | Current page number (JSON string) |
| pageSize | String | Page size (JSON string) |
| total | Integer | Total number of devices with permissions |
| policy | Array | Device permission list |
| policy[].deviceId | String | Device serial number |
| policy[].permission | String | Device-level permission codes (comma-separated), for example Real, Config |
| policy[].channelIdPermissions | Array | Channel-level permissions |
| policy[].channelIdPermissions[].channelId | Integer | Channel number |
| policy[].channelIdPermissions[].permission | String | Channel permission codes (comma-separated) |
Sample output
{
"id": "123456",
"result": {
"code": "0",
"msg": "Successful operation",
"data": {
"policy": [
{
"deviceId": "TESTQWERXXXX",
"permission": "Real,Config",
"channelIdPermissions": [
{
"channelId": 0,
"permission": "RecordReplay"
},
{
"channelId": 1,
"permission": "Talk"
}
]
},
{
"deviceId": "TESTQWERYYYY",
"permission": "Real,RecordReplay,Talk",
"channelIdPermissions": []
}
],
"pageNo": "1",
"pageSize": "10",
"total": 2
}
}
}
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.
