deviceList (deviceList: List devices)
deviceList: deviceList: List devices
Legacy HTTP retained: For existing integrations. New integrations should use the Device APIs overview.
Function details
Page through devices bound to the developer account or Imou app.
Note: Legacy list API; prefer current device query APIs for new integrations. With an administrator accessToken, devices bound via the Imou app are included.
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/deviceList
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 | ||
| queryRange | String | Yes | Range start-end; start≥1, end>start, span≤99 | Inclusive index range (e.g. 1-10) |
Sample input
{
"system":{
"ver":"1.0",
"appId":"lcdxxxxxxxxx",
"sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
"time":1599028453,
"nonce":"e2ab3938-971c-4791-893a-84a6c6a4fa9e"
},
"id":"e606cff7-6161-46b1-a8dd-543f84dd2809",
"params":{
"token":"At_00006ac6e32d123141238f60147de7ec",
"queryRange":"1-10"
}
}
Return data field description
| Field name | Field type | Field description | ||
|---|---|---|---|---|
| count | Integer | Total devices returned in this query | ||
| devices | deviceId | String | Device serial number | |
| channelNum | Integer | Number of channels | ||
| baseline | String | Device baseline type | ||
| version | String | Device firmware version | ||
| encryptMode | Integer | Encryption mode: 0 device default, 1 user-defined | ||
| appId | String | Bound developer appId; empty string when bound only via Imou app | ||
| deviceCatalog | String | Device category (NVR/DVR/HCVR/IPC/SD/IHG/ARC) | ||
| name | String | Device name | ||
| deviceModel | String | Device model | ||
| ability | String | Device capability set | ||
| canBeUpgrade | Boolean | Whether a newer firmware version is available | ||
| brand | String | Brand: lechange (Imou), general (generic) | ||
| platForm | Integer | Platform id: 3 standard access, 4 alternate access (use bindDeviceInfo for latest fields when platForm=4) | ||
| status | Integer | Status: 0 offline, 1 online, 3 upgrading | ||
| channels | channelName | String | Channel name | |
| channelOnline | Boolean | Channel online: true online, false offline | ||
| channelAbility | String | Channel capability set; for single-channel devices use device-level capability set | ||
| channelId | Integer | Channel number | ||
| channelPicUrl | String | Channel cover image; may be missing on new devices (upload or refresh cover via current manage APIs) | ||
| csStatus | Integer | Cloud storage: -1 not activated, 0 expired, 1 active | ||
| alarmStatus | Integer | Alarm arming: 0 disarmed, 1 armed; for platForm=4 use bindDeviceInfo for latest value | ||
| shareStatus | Boolean | Channel shared: true shared to others, false not shared | ||
Sample output
{
"result":{
"msg":"Operation is successful.",
"code":"0",
"data":{
"devices":[
{
"channelNum":1,
"baseline":"ARC",
"deviceId":"TESTQWERXXXX",
"version":"2.145.1000.0.R.20181112",
"channels":[
{
"csStatus":-1,
"alarmStatus":0,
"channelName":"TP1S-1375",
"channelOnline":true,
"channelAbility":"PTZ,MDW,MDS,ChnLocalStorage",
"channelId":0,
"channelPicUrl":"",
"shareStatus":false
}
],
"encryptMode":0,
"appId":"lcdxxxxxxxxx",
"deviceCatalog":"ARC",
"name":"TP1S-1375",
"deviceModel":"TP1S",
"ability":"WLAN,Auth,BreathingLight,CloudStorage,LocalStorage,PlaybackByFilename,MT,AGW,SLAlarm,CK,RD,LocalRecord,XUpgrade,TimeSync,ModifyPassword,LocalStorageEnable,RemoteControl,PTZ,Panorama,FrameReverse,AudioEncode,AudioEncodeControl,AlarmMD,MDW,MDS,AudioTalk,AlarmSound",
"canBeUpgrade":false,
"brand":"lechange",
"platForm":4,
"status":1
}
],
"count":1
}
},
"id":"e606cff7-6161-46b1-a8dd-543f84dd2809"
}
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 binding (DV10xx)
| Code | Meaning | Next step |
|---|---|---|
DV1001 | Bound to another account | Unbind or use another device |
DV1002 | Device does not exist | Verify serial number |
DV1003 | Already bound to current account | No need to bind again |
DV1005 | Verification code error | Check device label code |
DV1008 | Bind count limit exceeded | Unbind extra devices |
DV1011 | Device not bound | Bind first |
DV1029 | Device already bound | Do not bind again |
See Return codes · DV.
