Get started
  • English
  • 简体中文
Official Site
Get started
  • English
  • 简体中文
Official Site
  • Get started
  • Concepts
  • Guides
  • Device capabilities & events
  • API reference
    • Public conventions
    • Development specification
    • accessToken: Get administrator token
    • API request example
    • Return codes
    • Interface call limits
    • Account docking
    • Device APIs
      • bindDevice: Bind Device
      • unBindDevice: Unbind Device
      • Batch detail by device ID
      • Paged device detail
      • Query online status
      • Pre-bind information
      • Bind state
      • subAccountDeviceInfo
      • subAccountDeviceList
      • setDeviceSnap: Device snapshot
      • setDeviceSnapEnhanced: Device snapshot
      • timeZoneConfigByDay: Set Device Time Zone Daylight Saving Time (by time)
      • timeZoneConfigByWeek: Setting device time zone daylight saving time (per week)
      • timeZoneQueryByDay: Query device time zone daylight saving time (by date)
      • timeZoneQueryByWeek: Obtain device time zone daylight saving time (by week)
    • Device live broadcast
    • Push configuration
    • Cloud storage service
    • Resource pool quota
    • Legacy APIs (deprecated)
  • SDK and tools
  • Solutions
  • Platform and support
On this page
Function details
Request address
Request format
Incoming parameter description
Sample input
Return data field description
Sample output
Error codes
Related

subAccountDeviceList (SubAccountDeviceList - Authorized Device Details by Page - Imou Open Platform)

subAccountDeviceList: SubAccountDeviceList - Authorized Device Details by Page - Imou Open Platform

Note: Call with a sub-account token to page authorized devices. For general paged device detail, see Paged device detail (device.detail.page).

Function details

Get the detailed information of authorized devices under the sub-account by page, only the sub-account token can be called

Request address

https://openapi-[DataCenter].easy4ip.com/openapi/subAccountDeviceList

Request format

HTTP POST. JSON body layout: Request conventions. Sign with Signature.

Incoming parameter description

FieldTypeDescription
tokenStringSub-account accessToken
pageIntegerPage number (starts from 1)
pageSizeIntegerPage size

Sample input

{
 "system": {
 "ver": "1.0",
 "appId": "lcdxxxxxxxxx",
 "sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
 "time": 1623987465,
 "nonce": "39ed36aa-1fac-4e80-83c9-3b457db70ecd"
 },
 "id": "733b6b5c-05ce-4734-b407-e30dac44e637",
 "params": {
 "pageSize": 1,
 "page": 2,
 "token": "St_0000dc28d3ac63bf4cb5ad0e7e2ba731"
 }
}

Return data field description

deviceList[] may also include optional sdCardStatus (String): local storage card status when the platform returns it.

FieldTypeDescription
countIntegerTotal amount of equipment
deviceList.deviceIdStringDevice serial number
deviceList.statusStringDevice status, online: online, offline: offline, sleep: hibernation, upgrading
deviceList.deviceModelStringDevice model
deviceList.catalogStringEquipment category [NVR/DVR/HCVR/IPC/SD/IHG/ARC]
deviceList.channels.resolutions.aplist.nameStringDevice name
deviceList.channels.resolutions.aplist.permissionStringDevice permissions, if only channel-level permissions are authorized, this field does not return content
deviceList.channels.aplist.abilityStringEquipment capability items, separated by commas, see device capability set for details
deviceList.channels.aplist.accessTypeStringDevice access type: (empty) Open Platform program access; Lechange Imou/easy4ip conventional devices; Easy4IP Easy4IP program devices; P2P P2P program devices
deviceList.channels.aplist.encryptModeStringEncryption mode, 0: default encryption mode, 1: user-defined encryption mode
deviceList.channels.aplist.channelNumStringThe number of channels that the device can access
deviceList.channels.channelIdStringChannel number
deviceList.channels.channelNameStringChannel name
deviceList.channels.abilityStringChannel capability set, such as AlarmMD, AudioTalk, separated by commas
deviceList.channels.statusStringRemote channel status, online: online, offline: offline, close: not configured, sleep: hibernation, upgrading in progress
deviceList.channels.permissionStringChannel authority, if only the device level authority is authorized, fill in according to the device level authority
deviceList.channels.picUrlStringThumbnail URL
deviceList.resolutions.channels.nameStringthe name of the resolution displayed on the client interface
deviceList.resolutions.channels.imageSizeIntegerresolution enumeration
deviceList.resolutions.channels.streamTypeIntegerstream type, 0: HD main stream, 1: SD secondary stream
deviceList.aplist.apIdStringAccessory id
deviceList.aplist.apNameStringAccessory name
deviceList.aplist.apTypeStringAccessories type
deviceList.aplist.apModelStringModel of the accessory
deviceList.aplist.ioTypeStringThe io type of the accessory, in: input, out: output
deviceList.aplist.apVersionStringThe version number of the accessory
deviceList.aplist.apStatusStringOnline status of accessories, online: online, offline: offline
deviceList.aplist.apEnableStringEnable the accessory, on: enable to open, off: enable to close
deviceList.aplist.apCapacityStringAccessory capability items, separated by commas, such as AudioTalk, PT

Sample output

{
 "result": {
 "msg": "The operation was successful.",
 "code": "0",
 "data": {
 "count": 2,
 "deviceList": [{
 "accessType": "",
 "catalog": "NVR",
 "encryptMode": "0",
 "name": "NVR-4993",
 "channelNum": "64",
 "deviceModel": "DH-NVR5232-I",
 "permission": "",
 "ability": "Auth,DHP2P,CloudStorage,LocalStorage,PlaybackByFilename",
 "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)

CodeMeaningNext step
SN1001Signature errorCheck sign per Development specification
TK1002Token invalid or expiredRefresh accessToken
OP1002Missing required parameterAdd required fields
OP1003Invalid parameterMatch this page’s parameter table
OP1009Permission deniedCheck token and device bind/share grants
OP1013Total call limit exceededReduce call rate
OP1014Daily per-interface limit exceededSee Interface call limits
DV1007Device offlineWait until the device is online

See Return codes · OP/SN/TK for the full catalog.

Sub-accounts (SUB)

CodeMeaningNext step
SUB1001–SUB1002Sub-account lacks API permissionUpdate policy via addPolicy
SUB1005Sub-account token expiredRefresh subAccountToken
SUB1006No device grant for sub-accountCheck Resource and device serial
SUB1008Sub-account not bound to appCreate and bind the sub-account first

See Return codes · SUB.

Device access and channels (DV10xx)

CodeMeaningNext step
DV1007Device offline or timeoutWait for the device to come online
DV1009Device busyRetry later
DV1012Insufficient share/grant permissionCheck sub-account Permission / Resource
DV1019Capability not supportedConfirm model and capability list
DV1020Channel offlineCheck channel status
DV1026Function not supportedUse another API or upgrade firmware
DV1028Not bound or channel missingVerify deviceId / channelId

See Return codes · DV.

Related

  • Development specification
  • API conventions
  • Paged device detail
  • Module index
subAccountDeviceInfo
setDeviceSnap: Device snapshot