| 版本 | 更新日期 | 更新说明 | 修改人 |
|---|---|---|---|
| v1.1.14 | 2026-06-26 | 用户绑定设备接口新增uid字段和部分描述 | 严永龙 |
| v1.1.13 | 2026-06-12 | 修改部分接口url错误问题 | 严永龙 |
| v1.1.12 | 2026-06-12 | 增加初始化设备、用户绑定接口 | 严永龙 |
| v1.1.11 | 2026-06-05 | 新增获取实时设备信息接口 | 严永龙 |
| v1.1.10 | 2026-05-29 | 更新接口文档字段说明 | 李鑫明 |
| v1.0.9 | 2026-05-26 | 增加固件OTA升级接口 | 严永龙 |
| v1.0.8 | 2026-05-15 | 增加下发绑定p2p到设备 | 严永龙 |
| v1.0.7 | 2026-03-26 | 获取p2p信息增加app连接参数 | 严永龙 |
| v1.0.6 | 2026-03-25 | 1. 新增获取p2p信息接口 2. 更新设备类型和型号 |
严永龙 |
| v1.0.5 | 2026-03-24 | 添加宠物双目喂食器型号参数 | 李鑫明 |
| v1.0.4 | 2026-01-16 | 完善接口入参备注 | 李鑫明 |
| v1.0.2 | 2026-01-08 | 1、增加设备类型、型号映射表数据 | 李鑫明 |
| v1.0.1 | 2025-12-12 | 1. 增加设备查询接口 | 严永龙 |
| v1.0.0 | 2025-09-27 | 1. 新增设备类型、型号表 2. 新增设备创建接口 |
严永龙 |
本文档适用于所有设备
| 类型id | 类型名称 | 型号id | 型号名称 (不清楚具体型号可询问相关技术支持) |
|---|---|---|---|
| 10 | 烟火摄像机 | 107 | 烟火摄像机(人工确认) |
| 130 | 云台烟火摄像机(人工确认) | ||
| 131 | 普通烟火摄像机 | ||
| 132 | 普通云台烟火摄像机 | ||
| 170 | 小鹰摄像机 | 16 | QC6(wifi) |
| 120 | QD6-D(wifi+双目) | ||
| 133 | QC6-D(4g) | ||
| 134 | QD6(4g+双目) | ||
| 159 | 拍照烟感探测器 | 106 | 感烟照相机GS2_4 |
| 110 | 感烟照相机GS3 | ||
| 179 | 拉绳拍照报警器 | 112 | 拉绳拍照GE1 |
| 185 | 一键报警器 | 112 | 拉绳拍照GE1 |
| 188 | 新架构摄像机 | 136 | 半低功耗摄像头 |
| 141 | 宠物双目喂食器 | ||
| 16 | QC6(wifi) | ||
| 120 | QD6-D(wifi+双目) | ||
| 133 | QC6-D(4g) | ||
| 134 | QD6(4g+双目) |
通过设备id获取摄像头的播放地址,当摄像头为多目时,会返回多个地址。
https://open.eye4cloud.com/{{open_id}}/open/v1/device/create| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 否 | 设备密码,用于推流、录像等功能 |
| device_type_id | int | 是 | 请参考上方映射表(类型id) |
| model_number | int | 是 | 请参考上方映射表(型号id) |
| device_name | string | 否 | 不传默认试用设备类型名 |
| state | int | 否 | 不传则默认设备为上架状态,值=1。1 上架 2 下架。 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/getWebrtcAddress' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
| data | object |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/updateDeviceInfo| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 否 | 设备密码,用于推流、录像等功能 |
| device_type_id | int | 否 | 请参考上方设备类型型号映射表 类型id |
| model_number | int | 否 | 请参考上方设备类型型号映射表 型号id |
| device_name | string | 否 | 设备名称 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/updateDeviceInfo' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"password": ""
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/downShelve| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/downShelve' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": ""
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/delete| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/delete' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": ""
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/info| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
{
"device_id": "AAC1170954ZGAM",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "" ,
}
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
| data | object | |
| device_id | string | 设备id |
| linkage_device_id_list | array | 关联设备信息 |
{
"error_code": 0,
"error_message": "success",
"data": {
"device_id": "DEMO_DEVICE_001",
"linkage_device_id_list": [
"DEMO_DEVICE_001"
]
}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/list| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
|---|---|---|---|
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| device_name | string | 否 | 设备名称 |
| page_size | int | 是 | 每页页数(默认值10) |
| page_index | int | 是 | 当前分页 |
{
"device_id": "xxx",
"timestamp": 1755685731 ,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
"page_size": 10,
"page_index": 1
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/list' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"page_size": 10,
"page_index": 1
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
| data | object | {} |
| data.page_size | int | 每页页数(默认值10) |
| data.page_index | int | 当前分页 |
| data.total_number | int | 总页数 |
| data.limit | int | |
| data.list | int | 查询结果数组 |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {
"page_size": 10,
"page_index": 1,
"total_number": 1,
"limit": 10,
"list": [
{
"id": 14728,
"device_name": "xxxx",
"device_id": "xxxx",
"position": "",
"created_at": "2026-01-04T14:44:15+08:00"
}
]
}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/getDeviceInfo| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/getDeviceInfo' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": ""
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
| data.password | string | 更新设备的密码 |
| data.device_type_id | int | 设备类型id |
| data.model_number | int | 规格型号 |
| data.device_name | string | 设备名称 |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {
"password": "xxxx",
"device_type_id": 170,
"model_number": 0,
"device_name": "测试修改设备名称"
}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/getP2pInfo| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备唯一id(可以使用 IMEI) |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 是 | 设备密码 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
"password": ""
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/getP2pInfo' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"password": ""
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
| data.p2pid | string | 设备p2pid |
| data.initstring | string | p2p加密字符串 |
| data.type | int | 类型(0自研,1尚云) |
| data.vpType | int | app连接使用 |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {
"p2pid": "xxxx",
"initstring": "skadjh123",
"type": 0
"vpType":0
}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/bindP2p| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备id |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 生成sign时data字段 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 否 | 设备密码 |
| region | int | 否 | 大区:0中国(默认),1东南亚,2中东土耳其,3中东伊朗,4北美,5欧洲 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
"password": "" ,
"region": 0
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/bindP2p' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"password": "",
"region": 0
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
| data.p2pid | string | 设备p2pid |
| data.initstring | string | p2p加密字符串 |
| data.type | int | 类型(0自研) |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {
"p2pid": "xxxx",
"initstring": "skadjh123",
"type": 0
}
}
https://open.eye4cloud.com/{{open_id}}/open/v1/device/firmwareOta| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备id |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串 |
| sign | string | 是 | 签名 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 否 | 设备密码,如果不传则使用开放平台中注册设备的密码 |
| upgrade_host | string | 是 | 升级服务器地址 |
| upgrade_file | string | 是 | 升级包名,需要包含 '/' |
| upgrade_version | string | 否 | 设备版本号(可不传,会自动从upgrade_file中解析) |
| upgrade_force | int | 是 | 校验版本 0->自动校验 1->不校验 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
"upgrade_host": "https://example.com/DEMO_RESOURCE",
"upgrade_file": "/firmware_VP_OTA_22.212.109.7_20260520_160203_1779516167.bin",
"upgrade_version": "1.0.0",
"upgrade_force": 0
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/firmwareOta' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"upgrade_host": "https://example.com/DEMO_RESOURCE",
"upgrade_file": "/firmware_VP_OTA_22.212.109.7_20260520_160203_1779516167.bin",
"upgrade_version": "22.212.109.7",
"upgrade_force": 0
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {}
}
采用实时查询设备信息,必须保证设备在线才能查询成功,且密码必传
https://open.eye4cloud.com/{{open_id}}/open/v1/device/getRealtimeDeviceInfo| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备id |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 是 | 设备密码 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
"password": ""
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/getRealtimeDeviceInfo' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"password": ""
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
| data.iccid | string | 物联网卡号 |
| data.net_mode | int | 网络模式:0x01有线,0x02 wifi,0x03移动,0x10 wifi+移动,0x11有线+wifi,0x12有线+移动,0x13有线+wifi+移动 |
| data.power_mode | int | 0=长电,1=低功耗 |
| data.sys_ver | string | 固件版本号 |
| data.area | int | 大区 |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": "",
"data": {
"iccid": "" ,
"net_mode": 2,
"power_mode": 0,
"sys_ver": "1.0.1.1",
"area": 1
}
}
必须保证设备在线,会实时下发各种配置信息到设备整个链路完成才算初始化完成,密码必传(如果需要下发私有密码,此密码最好保证和私有密码采用同一个,防止后续部分cgi操作不支持问题)
https://open.eye4cloud.com/{{open_id}}/open/v1/device/initDevice| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备id |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 是 | 设置开放平台模式密码 |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
"password": ""
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/initDevice' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"password": ""
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": ""
}
必须保证设备在线,绑定用户并下发私有密码,此接口只在第一次下发生效,重复下发无效。如需再次下发要先复位设备
https://open.eye4cloud.com/{{open_id}}/open/v1/device/bindUser| 字段名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| device_id | string | 是 | 设备id |
| timestamp | int64 | 是 | 时间戳,单位:秒 |
| nonce | string | 是 | 随机字符串,8~20个字符 |
| sign | string | 是 | 具体实现方法,请参考《生成sign的示例代码》 |
| imei | string | 否 | 设备IMEI,可传空字符串 |
| data | string | 否 | 自定义data,可传空字符串 |
| password | string | 是 | 设置开放平台模式密码 |
| uid | string | 是 | 绑定用户id |
| area | int | 是 | 设备区域 0 未知 1 中国 2 东南亚(含港澳台) 3 美国 4 欧洲 |
| offset | int | 是 | UTC加多少秒等于本地时间 |
| timeZone | string | 否 | 时区,不传默认Asia/Shanghai |
{
"device_id": "xxx",
"timestamp": 1755685731,
"nonce": "dask43hfad",
"sign": "xxxxxxx",
"password": "" ,
"uid": "xxx",
"area": 1,
"offset": 28800,
"timeZone": "Asia/Shanghai"
}
curl 'https://open.eye4cloud.com/xxxxx/open/v1/device/initDevice' \
-H 'Content-Type: application/json' \
--data-raw '{
"device_id": "xxx",
"timestamp": 1757472185,
"nonce": "",
"sign": "",
"password": "",
"uid": "xxx",
"area": 1,
"offset": 28800,
"timeZone": "Asia/Shanghai"
}'
| 字段名 | 类型 | 备注 |
|---|---|---|
| error_code | int | 状态码:0正常,其他异常 |
| error_message | string | 错误信息:正常为success |
示例:
{
"error_code": 0,
"error_message": "success",
"error_tips": ""
}