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
    • Device live broadcast
    • Push configuration
    • Cloud storage service
      • Enable Device Cloud Storage for Network Cameras - Imou Open Platform
      • Unbind Device Cloud Storage - Imou Open Platform
      • Get Device Cloud Storage Information - Imou Open Platform
      • deviceCloudList - Query Cloud Storage Services Under Device Channel - Imou Open Platform
      • setAllStorageStrategy - Set Cloud Storage Service Switch - Imou Open Platform
      • setStorageStrategy - Set Free Cloud Storage Service Switch - Imou Open Platform
      • Query Cloud Record Call Number for Cloud Storage Activation - Imou Open Platform
      • unUsedCloudList - Disabled Cloud Storage Services - Imou Open Platform
      • Cloud Storage Package Introduction - Imou Open Platform
      • queryCloudRecordBitmap
      • queryCloudRecordNum
      • queryCloudRecords
      • getCloudRecords
      • deleteCloudRecords
      • queryCloudRecordByToken
    • Resource pool quota
    • Legacy APIs (deprecated)
  • SDK and tools
  • Solutions
  • Platform and support
On this page
Function details
Request address
Request format
Minimum permissions required for sub-account token request
Incoming parameter description
Sample input
Return data field description
Sample output
Error codes
Related

getCloudRecords (getCloudRecords: Query device cloud video clips in reverse order)

getCloudRecords: getCloudRecords: Query device cloud video clips in reverse order

Function details

Query all video records according to conditions (display in reverse order).

Request address

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

Request format

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

Minimum permissions required for sub-account token request

"Permission":"RecordReplay" "Resource":"cam:serial number:channel number"

Incoming parameter description

Parameter nameParameter typeRequired or notDefault valueLegal valueParameter description
tokenStringYesAdministrator or sub-account accessToken
deviceIdStringYesDevice serial number
channelIdStringYesChannel ID
beginTimeStringYesStart time, yyyy-MM-dd HH:mm:ss
endTimeStringYesEnd time, yyyy-MM-dd HH:mm:ss
countLongYes1–100Number of records per page (max 100).
recordIdStringNo-1Cursor start recording ID; omit on the first page (equivalent to -1).
nextRecordIdStringNoLast recordId from the previous page; use with nextRecordRegionId for cursor paging instead of changing endTime.
nextRecordRegionIdStringNorecordRegionId that pairs with nextRecordId for cursor paging.
cloudTypeStringnovideo: video recording;
snapshot: snapshot recording.
recording type to query. Default value is video

Query Strategy:

Sort the cloud video clips in descending order according to the begin and end time, and return the cloud video clip information of the previous count.

Time-window paging: In the next query, continue forward with the minimum beginTime of the previous batch as the new endTime (or beginTime minus one second).

Cursor paging: Pass recordId (default -1) and the previous page's nextRecordId / nextRecordRegionId to fetch the next page without changing beginTime / endTime.

Example:Traverse and query the video clip information from 10:00:00 of 2021-12-01 to 11:00:00 of 2021-12-01.

step 1: Set beginTime = 2021-12-01 10:00:00, endTime = 2021-12-01 11:00:00, count = 30, call getCloudRecords, and the platform returns 30 video clips.

step 2: Take the minimum beginTime(2021-12-01 10:30:00) of the video clip as the endTime input parameter for the next query, continue to call getCloudRecords, and cycle this operation.

step 3: When the minimum beginTime of video clips is less than or equal to the query begin time, or the number of video clips returned by getCloudRecords is less than the count value, the traversal can be considered to be completed.

Sample input

{
 "id":"d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "system":{
 "ver":"1.0",
 "appId":"lcdxxxxxxxxx",
 "sign": "xjhCQBoJ9hRDsCjyDcHjtDNzRZ3ZJezcawsfWeiaoxU=",
 "time":1599031074,
 "nonce":"8ec8a7bd1d1c95420de20d92422d457d"
 },
 "params":{
 "token":"At_12345678901234567890123456789012",
 "deviceId":"TESTQWERXXXX",
 "channelId":"0",
 "beginTime":"2016-05-19 00:00:00",
 "endTime":"2016-05-19 23:59:59",
 "count":30
 }
}

Return data field description

FieldTypeDescription
records.recordIdStringRecording Id
records.deviceIdStringDevice serial number
records.channelIdStringChannel number
records.beginTimeStringStart time
records.endTimeStringEnd time
records.sizeStringThe size of cloud video (unit byte)
records.thumbUrlStringThumbnail Url
records.encryptModeIntegerEncryption mode (0: default encryption mode; 1: user encryption mode)
records.recordRegionIdStringRecording partition id
records.typeStringRecording type: 1000 event cloud recording, 2000 continuous cloud recording, 10001 humanoid detection cloud recording

Sample output

{
 "id":"d5c287b4-5b2f-4f03-baf5-8032c5c354af",
 "result":{
 "data":{
 "records":[{
 "recordId":"1234567890",
 "deviceId":"TESTQWERXXXX",
 "channelId":"0",
 "beginTime":"2016-05-19 00:30:59",
 "endTime":"2016-05-19 00:31:36",
 "size":"123456",
 "thumbUrl":"http://lechangecloud/20160519",
 "encryptMode":0,
 "recordRegionId":"XXXXXXXXX",
 "type":"2000"
 }]
 },
 "code":"0",
 "msg":"The operation was successful"
 }
}

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.

Cloud storage plans (ST)

CodeMeaningNext step
ST1004Cloud storage not enabledopenCloudRecord
ST1005Cloud storage expiredRenew or change plan
ST1006Plan does not existVerify strategyId
ST1009Paid plan still activeHandle existing plan first
ST1010Device does not support planChoose a supported plan

See Return codes · ST.

Related

  • Development specification
  • API conventions
  • Module index
queryCloudRecords
deleteCloudRecords