listDeviceAbility (listDeviceAbility - Obtain Capabilities of Multiple Devices and Accessories - Imou Open Platform)
listDeviceAbility: listDeviceAbility - Obtain Capabilities of Multiple Devices and Accessories - Imou Open Platform
Legacy HTTP retained: For existing integrations. New integrations should use the Device APIs overview.
Function details
Ability to obtain multiple devices, channels, and accessories in batches
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/listDeviceAbility
Request format
HTTP POST. JSON body layout: Request conventions. Sign with Signature.
Incoming parameter description
deviceListaccepts at most 32deviceIdentries per request; duplicatedeviceIdvalues are not allowed.
| Parameter | Type | Required | Default | Legal value | Description |
|---|---|---|---|---|---|
| token | String | Yes | Administrator accessToken | ||
| deviceList.deviceId | String | Yes | List of device serial numbers | ||
| deviceList.channelList | String | Yes | "1,2,3,4,5": Multiple channel numbers separated by commas | List of channel numbers | |
| deviceList.apList | String | No | "1,2,3,4,5": multiple part numbers separated by commas | Accessory Id list |
Sample input
{
"id":"d5c287b4-5b2f-4f03-baf5-8032c5c354af",
"system":{
"ver":"1.0",
"appId":"lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time":1599031074,
"nonce":"8ec8a7bd1d1c95420de20d92422d457d"
},
"params":{
"token":"At_00006acr3456d12312d3grf60147de7ec",
"deviceList":[{
"deviceId":"TESTQWERXXXX",
"channelList":"0",
"apList":"TESTQWERXXXX"
}]
}
}
Return data field description
| Field | Type | Description |
|---|---|---|
| deviceList.deviceId | String | Device serial number |
| deviceList.ability | String | Equipment capability items, separated by commas, seedevice capability definition |
| deviceList.channels.channelId | String | Channel number |
| deviceList.channels.channelAbility | String | Channel capability set, separated by commas, such as AlarmMD, AudioTalk |
| deviceList.aps.apId | String | Accessory id |
| deviceList.aps.apAbility | String | Accessory capability items, separated by English commas, such as AudioTalk, PT |
Sample output
{
"result": {
"msg": "The operation was successful.",
"code": "0",
"data": {
"deviceList": [
{
"channels": [
{
"channelAbility": "WLAN,MT,HSEncrypt,CloudStorage,LocalStorage,PlaybackByFilename,BreathingLight,RD,LocalRecord,XUpgrade,Auth,ModifyPassword,LocalStorageEnable,RTSV1,PBSV1,ESV1,PlaySound,Reboot,InfraredLight,LinkDevAlarm,AbAlarmSound,SCCode,RDV2,CK,AlarmMD,PT,AudioEncodeControlV2,FrameReverse,RemoteControl,MDW,MDS,HeaderDetect,SmartTrack,CloseCamera,CheckAbDecible,PT1,AudioTalk",
"channelId": "0"
}
],
"aps": [],
"ability": "WLAN,MT,HSEncrypt,CloudStorage,LocalStorage,PlaybackByFilename,BreathingLight,RD,LocalRecord,XUpgrade,Auth,ModifyPassword,LocalStorageEnable,RTSV1,PBSV1,ESV1,PlaySound,Reboot,InfraredLight,LinkDevAlarm,AbAlarmSound,SCCode,RDV2,CK,AlarmMD,PT,AudioEncodeControlV2,FrameReverse,RemoteControl,MDW,MDS,HeaderDetect,SmartTrack,CloseCamera,CheckAbDecible,PT1,AudioTalk",
"deviceId": "TESTQWERXXXX"
}
]
}
},
"id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af"
}
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.
