listDeviceDetailsByPage (Paging Device Details for Querying - Imou Open Platform)
listDeviceDetailsByPage: Paging Device Details for Querying - Imou Open Platform
listDeviceDetailsByPage: Paging device details for querying
Deprecated: Use Paged device detail (
device.detail.page). This legacy HTTP page is retained for existing integrations.
Function details
Paging to obtain information about device channels under the account.
Request address
https://openapi-[DataCenter].easy4ip.com/openapi/listDeviceDetailsByPage
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 |
|---|---|---|---|---|---|
| pageSize | int | yes | Number of entries per page, range: 1-50 | ||
| page | long | yes | Search page numbers, starting from 1 | ||
| token | String | yes | Administrator or sub-account accessToken | ||
| source | String | bindAndShare | bind: Get bound devices share: Get shared devices bindAndShare: Get bound and shared devices | Relationship type, this parameter does not work when passed to sub accounts |
Sample input
{
"system": {
"ver": "1.0",
"appId": "lcdxxxxxxxxx",
"sign": "xxxxxxxxxxxxxx",
"time": 1603370757,
"nonce": "1a411d5a-e88b-45ee-b590-53da98375edd"
},
"id": "beb24691-d173-473a-8d3d-92db3aee0027",
"params": {
"token": "xxxxxxxxxxxxxxxxxxxxxxxxx",
"page": 1,
"pageSize": 10,
"source": "bindAndShare"
}
}
Return data field description
| Field | Type | Description |
|---|---|---|
| count | Integer | The number of devices found in this query |
| deviceList.upgradeInfo.version | String | Latest version number |
| deviceList.upgradeInfo.attention | String | Upgrade description information |
| deviceList.upgradeInfo.packageUrl | String | Download address |
| deviceList.deviceId | String | Device serial number |
| deviceList.productId | String | unique id of product |
| deviceList.canBeUpgrade | Boolean | Whether the device program can be upgraded |
| deviceList.accessType | String | Device access type: (empty) Open Platform program access; Lechange Imou/easy4ip conventional devices; Easy4IP Easy4IP program devices; P2P P2P program devices |
| deviceList.deviceVersion | String | Device version number |
| deviceList.playToken | String | Device playback code, used by OpenSDK |
| deviceList.brand | String | Device brand information, lechange - imou equipment, general - general equipment |
| deviceList.encryptMode | String | Device encryption mode: 0- Device default encryption 1- User defined encryption |
| deviceList.lastOffLineTime | String | Last offline time of the device |
| deviceList.deviceName | String | Device name |
| deviceList.deviceStatus | String | Device status, online/offline:/sleep/upgrading |
| deviceList.deviceModel | String | Device model |
| deviceList.catalog | String | Device categories, NVR/DVR/HCVR/IPC/SD/IHG/ARC |
| deviceList.deviceAbility | String | Device Capability Set, Comma Separated |
| deviceList.channelNum | Integer | The maximum number of channels supported by the device for access |
| deviceList.source | String | Permission type, bind/share |
| deviceList.isSubDevice | Boolean | Whether it is a sub-device |
| deviceList.parentDeviceId | String | The serial number of the parent device to which the child device belongs |
| deviceList.parentProductId | String | The productId of the parent device to which the child device belongs |
| deviceList.channelList.channelPicUrl | String | Cover image of channel |
| deviceList.channelList.csStatus | String | Cloud storage status, notExist: Package not activated, using: Cloud storage activated but not expired, expired: Package expired |
| deviceList.channelList.shareFunctions | String | Permission strings under shared permissions, separated by commas |
| deviceList.channelList.cameraStatus | String | Mask status, on: open, off: closed |
| deviceList.channelList.channelId | String | channel number |
| deviceList.channelList.channelName | String | Channel name |
| deviceList.channelList.channelAbility | String | Channel capability set, separated by commas |
| deviceList.channelList.channelStatus | String | Channel status, online/offline:/sleep/upgrading |
| deviceList.channelList.lastOffLineTime | String | Last offline time of the channel |
| deviceList.channelList.resolutions.name | String | The resolution name displayed on the client interface |
| deviceList.channelList.resolutions.imageSize | Integer | Resolution enumeration |
| deviceList.channelList.resolutions.streamType | Integer | Stream type, 0: main stream, 1: secondary stream |
| deviceList.subDeviceList.subDeviceProductId | String | Sub device product ID |
| deviceList.subDeviceList.subDeviceId | String | Sub device serial number |
| deviceList.subDeviceList.subDeviceName | String | Sub device name |
| deviceList.subDeviceList.subDeviceModel | String | Sub device model |
| deviceList.subDeviceList.subDeviceStatus | String | Sub device status, online/offline |
| deviceList.aplist.apId | String | Accessory ID |
| deviceList.aplist.apName | String | Accessory Name |
| deviceList.aplist.apType | String | Accessory Type |
Sample output
{
"result": {
"msg": "Operation is successful.",
"code": "0",
"data": {
"count": 1,
"deviceList": [
{
"catalog": "IPC",
"source": "bind",
"deviceId": "TESTQWERXXXX",
"deviceName": "TP7-XXXX",
"wifiTransferMode": "2.4Ghz",
"deviceStatus": "online",
"accessType": "",
"channelList": [
{
"csStatus": "using",
"shareFunctions": "",
"cameraStatus": "off",
"lastOffLineTime": "20230921T212756Z",
"channelName": "TP7-XXXX",
"channelStatus": "online",
"resolutions": [
{
"streamType": 0,
"name": "1080P",
"imageSize": 18
},
{
"streamType": 1,
"name": "480P",
"imageSize": 5
}
],
"channelAbility": "CloseCamera,other,NVM,PT,WideDynamic",
"channelId": 0,
"channelPicUrl": ""
}
],
"encryptMode": "0",
"tlsPrivatePort": "37778",
"brand": "lechange",
"devicePassword": "xxxxxxxxxxxx",
"playToken": "",
"deviceUsername": "xxxxxxxx==",
"salt": "xxxxxxxxxxxx",
"upgradeInfo": {
"packageUrl": "xxxxxxxxxxxxx",
"attention": "Improve device performance and reinforce safety",
"appForced": false,
"isAppForced": false,
"version": "V2.680.0000000.28.R.210911"
},
"httpPort": "80",
"rtspPort": "554",
"channelNum": 1,
"deviceVersion": "xxxxxxxxxxx",
"sdcardStatus": "normal",
"subDeviceList":[],
"aplist": [],
"deviceAbility": "WLAN,Auth,HSEncrypt,BreathingLight,CloudStorage,LocalStorage",
"lastOffLineTime": "20220926T164059Z",
"deviceModel": "TP7",
"canBeUpgrade": true
}
]
}
},
"id": "20tboni0x9z"
}
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.
