1.业务场景
以下接口以 192.168.1.184 为设备地址。页面截图拍摄于 2026-10-26 17:19(北京时间);画面、告警数量和数据源状态会实时变化。

调用需要鉴权的 HTTP 接口前,先通过 GET http://192.168.1.184:9092/ks/system/time 获取设备时间戳,再用设备安全设置中的 AK/SK 对 AK:时间戳:nonce 计算 HMAC-SHA256 签名,调用 GET http://192.168.1.184:9092/ks/system/user/token(Query:ak、timestamp、nonce、signature)取得 token。后续请求使用 Authorization: Bearer <token>;可通过 GET /ks/system/user/token_by_token 更新 token。AK/SK 与 token 不应写入公开页面。
1.1 播放实时画面以及实时检测结果可视化
视频流播放以及实时检测结果可视化前端示例代码(点击此处跳转)
接口调用顺序: 2.1 -> 2.2 -> 2.3
说明:
2.1:获取视频列表,仅status为1的视频可以播放实时画面
2.2:获取播放链接
2.3:订阅mqtt实时检测消息,获取正在播放的实时画面的实时检测结果
本设备 2026-10-26 实测有 17 路数据源,仅“明火误报1.mp4”(id=6ad9a65833742e0ee14d5aa0)的 status=1。订阅视频流成功,设备返回 WebRTC 地址;页面截图中已显示该路画面。
1.2 实时告警
接口调用顺序:2.4
1.3 最近7日告警趋势
接口调用顺序:2.5
示例:http://192.168.1.184:9092/ks/alert/count?group_by=alert_time_date&start_time=1792425600 (2026-10-20 00:00,北京时间)
1.4 告警类型排行
接口调用顺序:2.5
示例:http://192.168.1.184:9092/ks/alert/count?group_by=alg_display_name
1.5 告警统计
接口调用顺序:2.5
本周告警示例:http://192.168.1.184:9092/ks/alert/count?group_by=alert_time_date&start_time=1792944000 (2026-10-26 00:00,北京时间)
1.6 接入状态
接口调用说明:
分子通过 2.1 查询数据源后统计 status=1 的数量;
分母为max_source,通过以下接口查询最大数据源数量:
http://192.168.1.184:9092/ks/system/license/details
返回参数:
{
"max_source": 32
}
本设备实测 status=1 的数据源 1 路,接入状态为 1/32。
1.7 今日告警统计
接口调用顺序:2.5
示例:http://192.168.1.184:9092/ks/alert/count?start_time=1792944000&group_by=alert_time_date (2026-10-26 00:00,北京时间)
2.原子接口
2.1. 查询数据源
-
接口功能描述:查询数据源,不传参表示查询所有数据源;
-
接口路径:[GET] http://192.168.1.184:9092/ks/source;
-
Header请求参数说明;
参数名称 数据类型 是否必须 说明 Authorization String 是 'Bearer ' + token; token通过获取token接口获取 -
Query请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| id | String | 否 | 数据源ID |
表. 请求参数
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | Object | 是 | 返回数据 |
- 响应示例;
以下为 2026-10-26 该设备的响应节选,仅展示与播放流程有关的字段;实际响应还包含流、算法等配置。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 请求方法 | GET |
| 接口地址 | /ks/source |
| 报文说明 | 摄像头数据源查询响应报文 |
| 报文内容 | {
"error_code": 0,
"message": "查询数据源成功!",
"data": [
{
"id": "6ad9a65833742e0ee14d5aa0",
"desc": "明火误报1.mp4",
"status": 1
}
]
} |
2.2. 订阅实时视频流
- 接口功能描述:订阅实时画面,获取实时画面播放地址;
- 接口路径:[GET] http://192.168.1.184:9092/stream/live/subscribe;
- Header请求参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| Authorization | String | 是 | 'Bearer ' + token; token通过获取token接口获取 |
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| source_id | String | 是 | 数据源ID |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
| source_id | 6ad9a65833742e0ee14d5aa0 |
- 响应参数说明;
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| error_code | Int | 是 | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 是 | 返回响应信息 |
| data | String | 是 | 返回 WebRTC 播放接口地址 |
- 响应示例;
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | {
"error_code": 0,
"message": "订阅实时视频流成功!",
"data": "http://127.0.0.1:1985/index/api/webrtc?app=1fd4b9ad2c19de8a4f6b4dcace86aa41&stream=6ad9a65833742e0ee14d5aa0&type=play"
} |
设备返回的主机为 127.0.0.1;在其他电脑播放时将其改为 192.168.1.184,保留路径与参数。该地址是 WebRTC 信令接口,播放器需按 WebRTC 流程连接;上方截图已显示该数据源的实际画面。
2.3. 实时分析结果
- 接口功能描述:实时订阅实时分析结果(播放流时产生MQTT消息),用于前端播放时实时画框;
- 本设备实测 WebSocket MQTT 地址:
ws://192.168.1.184:8083/mqtt;仅处理data.source.id与正在播放的source_id相同的消息; - topic: ks/video_detection, 用户名:"work", 密码:"Bjhmdys@202010";
- 对应平台位置:【实时画面】
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | {
"msg_id": "uuid",
"msg_type": "video_detection",
"time": "消息发送时间",
"data": {
"time": "检测时间戳",
"hit": false,
"hazard_level": "", //危险等级
"source": {
"id": "摄像头id",
"ipv4": "摄像头ip",
"desc": "摄像头描述"
},
"alg": {
"type": "算法类型",
"name": "算法英文名称",
"ch_name": "算法中文名称",
},
"reserved_data": {
"bbox": {
"rectangles": [{
//左上角、右下角坐标
"xyxy": [680, 198, 1178, 696],
"color": [0, 0, 255], //BGR颜色
"conf": 0.91, //置信度
"label": "未佩戴安全帽", //标签
"ext": {} //扩展字段
}
] //矩形数组
"polygons": {
"xxxxxx": { //多边形id
"name": "离岗检测", //多边形名称
"color": [0, 0, 255], //BGR颜色
"polygon": [ //顶点坐标
[568, 205],
[920, 140],
[843, 471],
[576, 471]
],
"ext": {} //扩展字段
}
} //多边形对象
"lines": {
"xxxxxx": { //线段id
"name": "线段1", //线段名称
//顶点坐标
"line": [[680, 198], [1178, 696]],
"color": [0, 0, 255], //BGR颜色
"ext": {} //扩展字段
}
} //线段对象
}
}
}
} |
2.4. 实时告警信息
- 接口功能描述:实时订阅盒子告警;
- 本设备实测 WebSocket MQTT 地址:
ws://192.168.1.184:8083/mqtt;告警所属数据源见data.source_id; - topic:ks/sink_alert, 用户名:"work", 密码:"Bjhmdys@202010";
- 对应平台位置:【实时画面】右侧【最新告警】模块
- 响应示例。
| 项目 | 详情 |
|---|---|
| 报文格式 | JSON |
| 报文内容 | {
"msg_id": "uuid",
"msg_type": "alert",
"time": "发送时间",
"data": {
"id": "告警id",
"alert_time": "时间戳",
"source_id": "摄像头ID,对应新增摄像头的ID",
"source_desc": "摄像头描述",
"source_ipv4": "摄像头IP",
"source_user_data": "摄像头用户自定义数据",
"alg_name": "算法名称",
"alg_display_name": "算法显示名称",
"reval_task_name": "复审任务名称",
"reval_time": "复审时间",
"hazard_level": "危害等级",
"image": "图片路径,访问需要加上代理http://192.168.1.184:9092/staticdata+图片路径",
"reserved_data": "人脸告警才有数据",
"video": null,
"status": "告警状态, 大模型复审误报:3 大模型复审正报: 2 小模型正报: 1",
"manual_status": "人工审核状态 误报:3 正报: 2 未处理: 1",
"manual_detail": "人工处理详情"
}
} |
| reserved_data | {
group:{
"id": "666825ae5dc58a319bb9c1e8",
"name": "分组名称"
},
face:[{
"id": "6594e027522e4bbbcfe12194(唯一ID)",
"name": "姓名",
"age": "年龄",
"sex": "性别",
"desc": "描述",
"update_time": "时间戳",
"lib_image": "底库人脸图片",
"cap_image": "抓拍人脸图片",
"conf": "比对置信度"
}]
} |
2.5. 告警统计
-
接口功能描述:获取首页告警统计;
-
接口路径:[GET] http://192.168.1.184:9092/ks/alert/count;
-
Header 请求参数说明:
参数名称 数据类型 是否必须 说明 Authorization String 是 'Bearer ' + token; token通过获取token接口获取 -
Query 请求参数说明:
| 参数名称 | 数据类型 | 是否必须 | 说明 |
|---|---|---|---|
| group_by | String | 否 | 对查询结果分组。支持:source_desc、alg_display_name、source_alg、hazard_level、alert_time_hour、alert_time_date、alert_time_week |
| start_time | Int | 否 | 开始时间秒数 |
| end_time | Int | 否 | 结束时间秒数 |
表. 请求参数
- 请求示例;
| 项目 | 详情 |
|---|---|
| 请求格式 | Query String |
| start_time | 1792944000(2026-10-26 00:00,北京时间) |
| group_by | alert_time_date |
- 响应参数说明;
| 参数名称 | 数据类型 | 说明 |
|---|---|---|
| error_code | Int | 返回响应码 0: 成功 -1: 客户端错误 -2: 服务端错误 |
| message | String | 返回响应信息 |
| data | Object或Int | 告警统计数据 |
表. 请求参数
- 响应示例。
2026-10-26 17:19(北京时间)按当天零点查询的实际响应:
{
"error_code": 0,
"message": "查询告警成功!",
"data": {
"2026-10-26": { "1": 2586 }
}
}
1 表示未处理告警数;原接口说明还定义了 2 为已确认、3 为误报。统计值会随时间变化。
回复