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
What it does
Request URL
Minimum permission
Request parameters
Request example
Response data fields
Response example
Error codes

device.detail.list (Batch detail by device ID)

device.detail.list: Batch detail by device ID

What it does

Batch device detail by serial number. Not in device.capability.list. capabilityIds[] lists capability ids—do not use for get/set/invoke. canBeUpgrade etc. are Boolean; capability switches remain 0/1.

Request URL

POST https://openapi-[DataCenter].easy4ip.com/openapi/v2/device.detail.list

Minimum permission

Administrator: bound or shared devices. Sub-user: own bound devices. Sub-account: authorized devices, filtered by channel permission.

Request parameters

NameTypeRequiredDefaultValid valuesDescription
tokenStringyesaccessToken
deviceListArrayyes1–50 itemsDevices to query
deviceList[].deviceIdStringyesDevice serial number
deviceList[].channelIdString[]noall channelse.g. ["0"] for IPCChannels to include; omit = all
openidStringnoSub-account

Request example

{
 "id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "system": {
 "ver": "1.0",
 "appId": "lcdxxxxxxxxx",
 "sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
 "time": 1706511734,
 "nonce": "f5a1ae2d-c09c-4d39-a744-83a5c2c653c2"
 },
 "params": {
 "token": "<yourAccessToken>",
 "deviceList": [
 {
 "deviceId": "TESTIPC000012345",
 "channelId": ["0"]
 }
 ]
 }
}

Response data fields

NameTypeDescription
countIntBatch count
deviceListArrayDevice detail objects (see below)

deviceList[]

NameTypeDescription
deviceIdStringDevice serial number
productIdStringWhen known
deviceStatusStringonline / offline / sleep / upgrading
deviceModelStringModel
catalogStringCategory
brandStringBrand
accessTypeStringAccess type
deviceVersionStringVersion
deviceNameStringName
canBeUpgradeBooleanUpgrade available
upgradeInfoObjectWhen upgrade available
upgradeInfo.versionStringTarget version
upgradeInfo.attentionStringUpgrade notes
upgradeInfo.packageUrlStringPackage URL
encryptModeString0 / 1
lastOffLineTimeStringLast offline time
bindTimeLongBind time
sourceStringSource
channelNumIntChannel count
playTokenV2StringPlay token
sdcardStatusStringSD status
wifiTransferModeStringBand
isSubDeviceBooleanSub-device flag
parentDeviceIdStringParent serial
parentProductIdStringParent model
capabilityIdsString[]Capability ids—do not use for get/set/invoke
channelListArrayChannels (see below)
subDeviceListArraySub-device summary
httpPortStringOverseas port
rtspPortStringOverseas port
tlsPrivatePortStringOverseas port
deviceUsernameV2StringEncrypted username (overseas)
devicePasswordV2StringEncrypted password (overseas)

channelList[]

NameTypeDescription
channelIdStringChannel id
channelNameStringChannel name
channelStatusStringonline / offline / sleep / upgrading
cameraStatusStringon / off
channelPicUrlStringCover image
alarmStatusStringArming state
csStatusStringCloud storage
aiInsightStatusStringSmart View
shareStatusStringShare state
shareFunctionsStringShared features
lastOffLineTimeStringOffline time
capabilityIdsString[]Channel capability ids
resolutionsArrayResolution list
resolutions[].nameStringResolution name
resolutions[].imageSizeStringImage size
resolutions[].streamTypeStringStream type
productIdStringChannel model (multi-sensor)

Response example

{
 "id": "d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "result": {
 "code": "0",
 "msg": "Operation is successful",
 "data": {
 "count": 1,
 "deviceList": [
 {
 "deviceId": "TESTIPC000012345",
 "productId": "56WGTET2",
 "deviceStatus": "online",
 "deviceModel": "IPC-C22EP",
 "catalog": "IPC",
 "brand": "lechange",
 "deviceVersion": "2.800.0000000.0.R.230101",
 "deviceName": "Living room",
 "canBeUpgrade": false,
 "encryptMode": "0",
 "lastOffLineTime": "",
 "bindTime": 1599031074,
 "source": "bind",
 "channelNum": 1,
 "playTokenV2": "pt_xxx",
 "sdcardStatus": "empty",
 "wifiTransferMode": "5G",
 "isSubDevice": false,
 "capabilityIds": ["detection.motion", "ptz.aim"],
 "channelList": [
 {
 "channelId": "0",
 "channelName": "Channel 1",
 "channelStatus": "online",
 "cameraStatus": "on",
 "channelPicUrl": "https://example.imou.com/pic/cover.jpg",
 "alarmStatus": "on",
 "csStatus": "off",
 "aiInsightStatus": "off",
 "shareStatus": "",
 "shareFunctions": "",
 "lastOffLineTime": "",
 "capabilityIds": ["detection.motion", "ptz.aim"],
 "resolutions": [
 {
 "name": "1080P",
 "imageSize": "1920x1080",
 "streamType": "main"
 }
 ]
 }
 ],
 "subDeviceList": []
 }
 ]
 }
 }
}

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 query (DV20xx)

CodeMeaningNext step
DV2004Invalid property valueCheck parameter range
:---:---:---
DV2007Missing channelIdAdd channelId
:---:---:---
LIMIT_DEVICE_NUMDevice count limitReduce page size or scope
:---:---:---
PARAM_ILLEGAL_VALUEInvalid parameterFix request body
:---:---:---
PERMISSION_DENIEDPermission deniedCheck token and share policy

See Return codes · catalog.

unBindDevice: Unbind Device
Paged device detail