跳到接口说明
UVP开发者文档
接口参考 v1.0.0
导出文档 ↓
完整接口文档
接口参考 / 设备与通道

设备列表

分页查询客户端部门范围内可见的设备。

GET/openapi/v1/device/list

查询参数

字段类型必填说明
pageinteger否

页码,从 1 开始;省略时默认为 1,显式空值会被拒绝。

默认 1 · int32 · ≥ 1
pageSizeinteger否

每页条数,最大 100;省略时默认为 20,显式空值会被拒绝。

默认 20 · int32 · ≥ 1 · ≤ 100
keywordstring否

搜索关键字,最长 100 个字符;空值合法。

最长 100
statusstring否

状态筛选,可选 online、offline 或 unknown;显式空值会被拒绝。

"online" · "offline" · "unknown"
manufacturerstring否

制造商精确匹配;省略时不按制造商筛选。

最长 100
modelstring否

设备型号精确匹配;省略时不按型号筛选。

最长 100
transportstring否

SIP 信令传输方式,支持 UDP 或 TCP。

"UDP" · "TCP"
protocolVersionstring否

设备当前生效的国标协议版本:2016 或 2022。

"2016" · "2022"
sortstring否

排序字段,仅接受下方枚举中的字段名。

"deviceId" · "name" · "status" · "registerTime" · "keepaliveTime" · "createdAt"
orderstring否

排序方向:asc 为升序,desc 为降序。

"asc" · "desc"
公共认证 HMAC-SHA256 · 5 个签名请求头

签名在服务端计算。时间偏差不超过 300 秒,每次请求使用新的 nonce。查看认证规则 ↗

字段类型必填说明
X-UVP-Sign-Versionstring是

签名版本,当前仅接受 1。

"1"
X-UVP-Access-Keystring是

客户端访问密钥(AK),用于标识调用方;对应密钥(SK)始终保留在服务端。

格式 ^uvp_[0-9a-f]{32}$
X-UVP-Timestampstring是

Unix 秒级时间戳,与服务端时间偏差不得超过 300 秒。

格式 ^(0|[1-9][0-9]{0,18})$
X-UVP-Noncestring是

单次请求随机串,32 位小写十六进制;重复值或逗号拼接的值会被拒绝。

格式 ^[0-9a-f]{32}$
X-UVP-Signaturestring是

对规范请求计算的 HMAC-SHA256 签名,小写十六进制共 64 位。

格式 ^[0-9a-f]{64}$

调用示例

GET /openapi/v1/device/list?page=1&pageSize=20 HTTP/1.1
Host: <你的 API 服务域名>
X-UVP-Sign-Version: 1
X-UVP-Access-Key: <AK>
X-UVP-Timestamp: <Unix 秒级时间戳>
X-UVP-Nonce: <32 位随机十六进制>
X-UVP-Signature: <服务端计算的 HMAC-SHA256>

以上为请求结构。切换语言查看完整的服务端签名与调用代码。

返回结果

设备列表返回结果

字段名中的点号表示对象层级,[] 表示数组中的每一项。

字段类型必返说明
codestring是

业务结果码;成功为 OK。

"OK"
messagestring是

结果说明;成功为 success。

"success"
requestIdstring是

平台生成的请求追踪标识。

dataobject是
不接受额外字段
data.itemsobject[]是

当前页的设备列表。

data.items[].deviceIdstring是

设备国标编码,20 位数字字符串。

格式 ^[0-9]{20}$
data.items[].namestring是

设备上报的名称;未上报时为空字符串。

data.items[].aliasstring是

平台配置的别名;未设置时为空字符串。

data.items[].manufacturerstring是

设备上报的厂商;未上报时为空字符串。

data.items[].modelstring是

设备上报的型号;未上报时为空字符串。

data.items[].statusstring是

平台记录的在线状态:online 在线,offline 离线,unknown 状态未知。

"online" · "offline" · "unknown"
data.items[].firmwarestring是

设备上报的固件版本;未上报时为空字符串。

data.items[].transportstring是

设备 SIP 信令传输方式,通常为 UDP 或 TCP;未知时为空字符串。

data.items[].ipstring是

平台记录的设备 SIP 来源 IP 地址;未知时为空字符串。

data.items[].portinteger是

平台记录的设备 SIP 来源端口;未知时为 0。

int32
data.items[].registerTimestring | null是

最近一次注册成功时间。 未知或尚未发生时返回 null。

date-time
data.items[].registerExpireAtstring | null是

当前注册的到期时间。 未知或尚未发生时返回 null。

date-time
data.items[].keepaliveTimestring | null是

最近一次收到设备心跳的时间。 未知或尚未发生时返回 null。

date-time
data.items[].keepaliveIntervalinteger是

设备期望心跳周期,单位秒;0 表示尚无有效记录。

int32
data.items[].expiresinteger是

设备注册有效期,单位秒;0 表示尚无有效记录。

int32
data.items[].offlineAtstring | null是

最近一次被平台判定离线的时间。 未知或尚未发生时返回 null。

date-time
data.items[].channelCountinteger是

当前设备下对本客户端可见的通道总数;仅统计与设备同归属部门、未删除且设备与通道编码链唯一的通道。

int64 · ≥ 0
data.items[].onlineChannelCountinteger是

可见通道中在线的数量;统计口径与 channelCount 一致,在线状态为 online。

int64 · ≥ 0
data.items[].reportedVersionstring是

设备最近一次上报的原始协议版本声明,通常为 2016 或 2022;尚未声明时为空字符串。

data.items[].effectiveVersionstring是

平台当前实际采用的协议版本,通常为 2016 或 2022;历史记录缺失时可能为空字符串。

data.items[].effectiveVersionSourcestring是

当前协议版本的来源:register 注册声明、override 人工覆盖、history 历史事实、default 平台默认;未记录时为空字符串。

data.items[].effectiveVersionAtstring | null是

当前生效协议版本最近一次确认或更新时间。 未知或尚未发生时返回 null。

date-time
data.items[].protocolOverridestring是

平台配置的协议版本覆盖策略:auto 自动、2016 或 2022 固定版本;历史记录缺失时可能为空字符串。

data.items[].subscribeCapabilitystring是

目录订阅状态:unknown 尚未确认、subscribed 已订阅、fallback 已降级为轮询;历史记录缺失时可能为空字符串。

"" · "unknown" · "subscribed" · "fallback"
data.items[].subscribeLastTeststring | null是

最近一次尝试发送目录订阅的时间。 未知或尚未发生时返回 null。

date-time
data.items[].subscribeExpiresAtstring | null是

当前目录订阅的到期时间。 未知或尚未发生时返回 null。

date-time
data.items[].reportedCharsetstring是

设备最近一次 XML 报文声明的原始字符集;未声明或尚无报文时为空字符串。

data.items[].wireCharsetstring是

平台实际判定用于解码设备报文的字符集;尚无报文时为空字符串。

data.items[].reportedCharsetAtstring | null是

最近一次字符集事实确认时间。 未知或尚未发生时返回 null。

date-time
data.items[].createdAtstring | null是

平台设备记录创建时间。 未知或尚未发生时返回 null。

date-time
data.items[].updatedAtstring | null是

平台设备记录最近更新时间。 未知或尚未发生时返回 null。

date-time
data.pageinteger是

当前页码。

≥ 1
data.pageSizeinteger是

每页条数。

≥ 1 · ≤ 100
data.totalinteger是

满足条件的设备总数。

int64 · ≥ 0
响应头
字段类型必填说明
Cache-Controlstring是
"no-store"

响应示例

JSON · 200
{
  "code": "OK",
  "message": "success",
  "requestId": "req_20261109_001",
  "data": {
    "items": [
      {
        "deviceId": "34020000002000000001",
        "name": "门店视频设备",
        "alias": "一楼门店",
        "manufacturer": "示例厂商",
        "model": "IPC-28181",
        "status": "online",
        "firmware": "V1.0.0",
        "transport": "TCP",
        "ip": "192.0.2.10",
        "port": 5060,
        "registerTime": "2026-11-09T08:00:00Z",
        "registerExpireAt": "2026-11-09T09:00:00Z",
        "keepaliveTime": "2026-11-09T08:05:00Z",
        "keepaliveInterval": 60,
        "expires": 3600,
        "offlineAt": null,
        "channelCount": 2,
        "onlineChannelCount": 1,
        "reportedVersion": "2022",
        "effectiveVersion": "2022",
        "effectiveVersionSource": "register",
        "effectiveVersionAt": "2026-11-09T08:00:00Z",
        "protocolOverride": "auto",
        "subscribeCapability": "subscribed",
        "subscribeLastTest": "2026-11-09T08:00:00Z",
        "subscribeExpiresAt": "2026-11-09T09:00:00Z",
        "reportedCharset": "GB18030",
        "wireCharset": "GB18030",
        "reportedCharsetAt": "2026-11-09T08:00:00Z",
        "createdAt": "2026-11-01T08:00:00Z",
        "updatedAt": "2026-11-09T08:05:00Z"
      }
    ],
    "page": 1,
    "pageSize": 20,
    "total": 1
  }
}

示例用于说明字段结构,实际结果以接口返回为准。

状态与错误

错误处理与重试约定 ↗
listDevicesOpenAPI 3.0.3 · v1.0.0