简介
本文档为您提供具体的 API 描述、语法、参数说明等,您可以调用 API 管理云手机服务资源。
接口概览
实例管理
资源管理
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/infos | 实例列表信息 | 查询所有已订购实例列表信息 |
应用管理
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/uninstallApp | 应用卸载 | 应用卸载 |
| /vcpcloud/api/padApi/startApp | 应用启动 | 应用启动 |
| /vcpcloud/api/padApi/stopApp | 应用停止 | 应用停止 |
| /vcpcloud/api/padApi/restartApp | 应用重启 | 应用重启 |
| /vcpcloud/api/padApi/listInstalledApp | 实例安装应用列表查询 | 实例安装应用列表查询 |
| /vcpcloud/api/padApi/uploadFileV3 | 文件通过链接直接上传接口 | 文件通过链接直接上传接口 |
| /vcpcloud/api/padApi/getListInstalledApp | 获取指定云机列表中所有安装的应用信息 | 获取指定云机列表中所有安装的应用信息 |
| /vcpcloud/api/padApi/uploadFile | 上传文件到云空间 | 上传文件到云空间 |
| /vcpcloud/api/padApi/deleteOssFiles | 删除云空间文件 | 删除云空间文件 |
| /vcpcloud/api/padApi/selectFiles | 查询用户的文件列表 | 查询用户的文件列表 |
任务管理
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/padTaskDetail | 实例操作任务详情 | 查询指定实例操作任务的执行结果详细信息 |
| /vcpcloud/api/padApi/fileTaskDetail | 文件任务详情 | 查询指定文件任务的执行结果详细信息 |
云手机管理
邮箱接码服务
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/getEmailServiceList | 获取邮箱服务列表 | 获取邮箱服务列表 |
| /vcpcloud/api/padApi/getEmailTypeList | 获取邮箱类型及剩余库存 | 获取邮箱类型及剩余库存 |
| /vcpcloud/api/padApi/createEmailOrder | 创建购买邮箱订单 | 创建购买邮箱订单 |
| /vcpcloud/api/padApi/getEmailOrder | 查询购买的邮箱列表 | 查询购买的邮箱列表 |
| /vcpcloud/api/padApi/getEmailOrder | 刷新获取邮箱验证码 | 刷新获取邮箱验证码 |
动态代理服务
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/getDynamicGoodService | 查询动态代理商品列表 | 查询动态代理商品列表 |
| /vcpcloud/api/padApi/getDynamicProxyRegion | 查询动态代理地区列表 | 查询动态代理地区列表 |
| /vcpcloud/api/padApi/queryCurrentTrafficBalance | 获取动态代理当前余量 | 获取动态代理当前余量 |
| /vcpcloud/api/padApi/getDynamicProxyHost | 查询支持的服务器地区 | 查询支持的服务器地区 |
| /vcpcloud/api/padApi/buyDynamicProxy | 购买动态代理流量包 | 购买动态代理流量包 |
| /vcpcloud/api/padApi/createProxy | 创建动态代理 | 创建动态代理 |
| /vcpcloud/api/padApi/getProxys | 查询动态代理列表(支持分页) | 查询动态代理列表(支持分页) |
| /vcpcloud/api/padApi/getDynamicProxyOrders | 查询动态代理订单列表(支持分页) | 查询动态代理订单列表(支持分页) |
| /vcpcloud/api/padApi/batchPadConfigProxy | 云机配置动态代理 | 云机配置动态代理 |
| /vcpcloud/api/padApi/selectBatchPadProxyTask | 查询批量云机设置代理任务 | 查询批量云机设置代理任务 |
| /vcpcloud/api/padApi/getDynamicProxyAutomaticRenewal | 查询动态代理自动续费信息 | 查询动态代理自动续费信息 |
| /vcpcloud/api/padApi/setAutoRenewSwitch | 设置动态代理自动续费开关 | 设置动态代理自动续费开关 |
| /vcpcloud/api/padApi/delProxyByIds | 删除动态代理 | 删除动态代理 |
静态住宅代理服务
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/proxyGoodList | 获取静态住宅商品列表 | 获取静态住宅商品列表 |
| /vcpcloud/api/padApi/getProxyRegion | 获取静态住宅商品支持的国家城市信息 | 获取静态住宅商品支持的国家城市信息 |
| /vcpcloud/api/padApi/createProxyOrder | 静态住宅商品购买 | 静态住宅商品购买 |
| /vcpcloud/api/padApi/selectProxyOrderList | 静态住宅代理订单明细 | 静态住宅代理订单明细 |
| /vcpcloud/api/padApi/createRenewProxyOrder | 静态住宅代理续费 | 静态住宅代理续费 |
| /vcpcloud/api/padApi/queryProxyList | 查询静态住宅代理列表 | 查询静态住宅代理列表 |
TK自动化
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/autoTaskList | 自动化任务列表查询 | 自动化任务列表查询 |
| /vcpcloud/api/padApi/addAutoTask | 创建自动化任务 | 创建自动化任务 |
| /vcpcloud/api/padApi/reExecutionAutoTask | 自动化任务重试 | 自动化任务重试 |
| /vcpcloud/api/padApi/cancelAutoTask | 自动化任务取消 | 自动化任务取消 |
SDK Token
| 接口 | 接口名 | 接口说明 |
|---|---|---|
| /vcpcloud/api/padApi/stsToken | 获取SDK临时token | 签发sdk临时token,用于对接入云手机服务的用户进行鉴权 |
| /vcpcloud/api/padApi/stsTokenByPadCode | 根据padcode获取sdk临时token | 签发sdk临时token,用于对接入云手机服务的用户进行鉴权 |
| /vcpcloud/api/padApi/clearStsToken | 清除SDK授权Token | 清除SDK授权Token |
OpenAPI 接口列表
实例管理
修改实例WIFI属性
修改指定实例的WIFI列表属性(此接口与一建新机设置WIFI二选一,否则会出现覆盖问题)
接口地址
/vcpcloud/api/padApi/setWifiList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | 实例编号 | |
| wifiJsonList | String[] | 是 | wifi属性列表 | |
| ├─SSID | 110101 | String | 是 | wifi名称 (不支持中文) |
| ├─BSSID | 02:31:00:00:00:01 | String | 是 | 接入点mac地址 |
| ├─MAC | 02:00:10:00:00:00 | String | 是 | wifi网卡mac地址 |
| ├─IP | 02:00:10:00:00:00 | String | 是 | wifi网络IP |
| ├─MAC | 02:00:10:00:00:00 | String | 是 | wifi网卡mac地址 |
| ├─gateway | 192.168.120.1 | String | 是 | wifi网关 |
| ├─DNS1 | 1.1.1.1 | String | 是 | DNS1 |
| ├─DNS2 | 8.8.8.8 | String | 是 | DNS2 |
| ├─hessid | 0 | Integer | 否 | 网络标识符 |
| ├─anqpDomainId | 0 | Integer | 否 | ANQP(Access Network Query Protocol)域ID |
| ├─capabilities | "" | String | 否 | WPA/WPA2等信息 |
| ├─level | 0 | Integer | 否 | 信号强度(RSSI) |
| ├─linkSpeed | 500 | Integer | 否 | 当前Wi-Fi连接速率 |
| ├─txLinkSpeed | 600 | Integer | 否 | 上传链路速度 |
| ├─rxLinkSpeed | 700 | Integer | 否 | 下载链路速度 |
| ├─frequency | 2134 | Integer | 否 | Wi-Fi信道频率 |
| ├─distance | -1 | Integer | 否 | 估算的AP距离 |
| ├─distanceSd | -1 | Integer | 否 | 估算距离的标准差 |
| ├─channelWidth | 0 | Integer | 否 | 信道带宽 |
| ├─centerFreq0 | 0 | Integer | 否 | 中心频率0 |
| ├─centerFreq1 | -1 | Integer | 否 | 中心频率1 |
| ├─is80211McRTTResponder | false | Boolean | 否 | 是否支持 802.11mc(Wi-Fi RTT,测距技术 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object | ||
| ├─ taskId | 1 | Integer | 任务ID |
| ├─ padCode | AC2025030770R | String | 实例编号 |
| ├─ vmStatus | 1 | Integer | 实例在线状态:0-离线,1-在线 |
请求示例
{
"padCodes":["AC2025030770R92X"],
"wifiJsonList":[
{
"SSID": "110101",
"BSSID": "02:31:00:00:00:01",
"MAC": "02:00:10:00:00:00",
"IP": "192.168.120.15",
"gateway": "192.168.120.1",
"DNS1": "1.1.1.1",
"DNS2": "8.8.8.8",
"hessid": 0,
"anqpDomainId": 0,
"capabilities": "",
"level": 0,
"linkSpeed": 500,
"txLinkSpeed": 600,
"rxLinkSpeed": 700,
"frequency": 2413,
"distance": -1,
"distanceSd": -1,
"channelWidth": 0,
"centerFreq0": -1,
"centerFreq1": -1,
"is80211McRTTResponder": true
}
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1741676855566,
"data": [
{
"taskId": 14904,
"padCode": "AC2025030770R92X",
"vmStatus": 0
}
]
}
实例详情
(待上线)
查询指定实例的属性信息,包括系统属性信息和设置信息。
接口地址
/vcpcloud/api/padApi/padDetails
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC21020010391 | String | 是 | 实例编号 |
| padIps | String[] | 否 | ||
| ├─ | 192.168.1.1 | String | 否 | 实例ip |
| vmStatus | 1 | String | 否 | 实例在线状态:0-离线,1-在线 |
| controlStatus | 1 | String | 否 | 受控状态(推流状态):1-非受控,2-受控 |
| faultStatus | 14 | String | 否 | 实例运行状态 14-异常 其他-正常 |
| deviceStatus | 0 | String | 否 | 物理机在线状态:0-离线,1-在线 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756360093771 | Long | 时间戳 |
| traceId | ewc83bwudvr4 | String | 链路追踪ID |
| data | Object | 响应数据 | |
| ├─ page | 1 | Integer | 当前页 |
| ├─ rows | 10 | Integer | 每页记录数 |
| ├─ size | 10 | Integer | 当前页的数量 |
| ├─ total | 13398 | Integer | 总记录数 |
| ├─ totalPage | 1340 | Integer | 总页数 |
| ├─ pageData | object[] | 列表 | |
| ├─ ├─ padId | 552 | Long | 实例ID |
| ├─ ├─ padCode | ACP250331GLMP7YX | String | 云机编号 |
| ├─ ├─ customerId | null | Long | 客户ID |
| ├─ ├─ imageId | img-25032628136 | String | 镜像ID |
| ├─ ├─ deviceLevel | m2-6 | String | 实例规格 |
| ├─ ├─ dcInfo | Object | 机房信息 | |
| ├─ ├─ ├─ id | 1 | Long | 机房ID |
| ├─ ├─ ├─ dcName | 小算测试-机房 | String | 机房名称 |
| ├─ ├─ ├─ dcCode | 001 | String | 机房编码 |
| ├─ ├─ ├─ area | changsha | String | 地区 |
| ├─ ├─ ├─ ossEndpoint | null | String | OSS公网接口地址 |
| ├─ ├─ ├─ ossEndpointInternal | null | String | OSS内网接口地址 |
| ├─ ├─ ├─ ossFileEndpoint | null | String | 文件访问地址 |
| ├─ ├─ ├─ ossScreenshotEndpoint | null | String | 截图访问地址 |
| ├─ ├─ padStatus | 15 | Integer | 实例状态(10-运行中,11-重启中,12-重置中,13-升级中,14-异常,15-未就绪,16-备份中,17-恢复数据中,18-关机,19-关机中,20-开机中,21-关机失败,22-开机失败,23-删除中,24-删除失败,25-已删除,26-克隆中) |
| ├─ ├─ deviceStatus | 1 | Integer | 物理机状态(0-离线,1-在线) |
| ├─ ├─ online | 0 | Integer | 实例在线状态(0-离线,1-在线) |
| ├─ ├─ streamStatus | 0 | Integer | 实例推流状态(0-空闲,1-推流中) |
| ├─ ├─ dataSize | null | Long | 存储总容量(字节) |
| ├─ ├─ dataSizeUsed | null | Long | 存储已使用容量(字节) |
| ├─ ├─ adbOpenStatus | null | String | adb 开关状态(1 开启;为空/0 关闭) |
| ├─ ├─ deviceIp | 172.31.1.4 | String | 板卡 IP |
| ├─ ├─ screenLayoutCode | multiple-portrait-basic | String | 屏幕布局编码 |
| ├─ ├─ mac | "" | String | MAC 地址 |
| ├─ ├─ netStorageResId | null | String | 网存ID |
| ├─ ├─ dns | 192.168.50.15 | String | 实例 DNS |
| ├─ ├─ memory | null | Integer | 内存大小 |
| ├─ ├─ cpu | -1 | Integer | CPU 大小 |
| ├─ ├─ socModel | MACS2080 | String | SoC 型号 |
| ├─ ├─ netStorageResFlag | 0 | Integer | 网存标记(1 网存实例;0 本地实例) |
| ├─ ├─ netStorageResSize | null | Long | 网存实例大小(GB) |
| ├─ ├─ realPhoneTemplateId | 389 | Long | 真实机型模板ID |
| ├─ ├─ clusterCode | ZEG3650947 | String | 集群编码 |
| ├─ ├─ padIp | null | String | 实例 IP |
| ├─ ├─ updateNetStorageResFlag | false | Boolean | 是否指定网存ID开机 |
| ├─ ├─ targetStorageResId | null | String | 指定的网存ID |
| ├─ ├─ armIp | 192.168.200.50 | String | ARM 服务器 IP |
| ├─ ├─ countryCode | null | String | 国家代码 |
| ├─ ├─ type | virtual | String | 实例类型(virtual-虚拟机 / real-云真机) |
| ├─ ├─ armServerId | 179 | Long | 服务器ID |
| ├─ ├─ lastComputeUnitCode | null | String | 最后开机使用的算力编号 |
| ├─ ├─ lastDeviceCode | null | String | 最后开机使用的板卡编号 |
| ├─ ├─ lastDeviceIp | null | String | 最后开机使用的板卡IP |
| ├─ ├─ cloneFlag | null | String | 克隆标志(0-否,1-是) |
| ├─ ├─ baseResUnitCode | null | String | 克隆实例的基础存储code |
| ├─ ├─ cbsInfo | 2.0.14 | String | CBS 信息 |
| ├─ ├─ firstBoot | true | Boolean | 是否首次开机 |
请求示例
{
"page": 1,
"rows": 10,
"padCodes": ["AC21020010391"],
"padIps":["192.168.1.1"],
"vmStatus":"1",
"controlStatus":"1",
"faultStatus":"14",
"deviceStatus":"0"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756360093771,
"data": {
"page": 1,
"rows": 10,
"size": 10,
"total": 13398,
"totalPage": 1340,
"pageData": [
{
"padId": 552,
"padCode": "ACP250331GLMP7YX",
"customerId": null,
"imageId": "img-25032628136",
"deviceLevel": "m2-6",
"dcInfo": {
"id": 1,
"dcName": "小算测试-机房",
"dcCode": "001",
"area": "changsha",
"ossEndpoint": null,
"ossEndpointInternal": null,
"ossFileEndpoint": null,
"ossScreenshotEndpoint": null
},
"padStatus": 15,
"deviceStatus": 1,
"online": 0,
"streamStatus": 0,
"dataSize": null,
"dataSizeUsed": null,
"adbOpenStatus": null,
"deviceIp": "172.31.1.4",
"screenLayoutCode": "multiple-portrait-basic",
"mac": "",
"netStorageResId": null,
"dns": "192.168.50.15",
"memory": null,
"cpu": -1,
"socModel": "MACS2080",
"netStorageResFlag": 0,
"netStorageResSize": null,
"realPhoneTemplateId": 389,
"clusterCode": "ZEG3650947",
"padIp": null,
"updateNetStorageResFlag": false,
"targetStorageResId": null,
"armIp": "192.168.200.50",
"countryCode": null,
"type": "virtual",
"armServerId": 179,
"lastComputeUnitCode": null,
"lastDeviceCode": null,
"lastDeviceIp": null,
"cloneFlag": null,
"baseResUnitCode": null,
"cbsInfo": "2.0.14",
"firstBoot": true
}
]
},
"traceId": "ewc83bwudvr4"
}
实例重启
对指定实例执行重启操作,用以解决系统无响应、卡死等问题。
接口地址
/vcpcloud/api/padApi/restart
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC21020010001 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─ taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"AC22030022693"
]
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313806284,
"data": [
{
"taskId": 4844869,
"padCode": "ATP250818261XVMO",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab9x88fkzk"
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 10001 | 重启失败 | 联系管理员 |
| 110004 | 执行重启命令失败 | 稍后再次重启 |
| 110028 | 实例不存在 | 请检查实例是否存在 |
实例重置
注意:实例重置清除系统所有数据。请谨慎使用,每次重置之后会将公网IP恢复到默认值
对实例执行重置操作,将会清理云机所有数据
接口地址
/vcpcloud/api/padApi/reset
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC21020010001 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─ taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"AC21020010001"
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313781715,
"data": [
{
"taskId": 760459892,
"padCode": "ATP250817PIJLWRP",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab8lv65yio"
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 10002 | 重置失败 | 联系管理员 |
| 110005 | 执行重置命令失败 | 稍后再次重置 |
查询实例属性
查询指定实例的属性信息,包括系统属性信息和设置信息。
接口地址
/vcpcloud/api/padApi/padProperties
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | AC21020010001 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object | ||
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─modemPropertiesList | Object[] | Modem-属性列表 | |
| ├─├─propertiesName | IMEI | String | 属性名称 |
| ├─├─propertiesValue | 412327621057784 | String | 属性值 |
| ├─systemPropertiesList | Object[] | 系统-属性列表 | |
| ├─├─propertiesName | ro.build.id | String | 属性名称 |
| ├─├─propertiesValue | QQ3A.200805.001 | String | 属性值 |
| ├─settingPropertiesList | Object[] | setting-属性列表 | |
| ├─├─propertiesName | ro.build.tags | String | 属性名称 |
| ├─├─propertiesValue | release-keys | String | 属性值 |
| ├─oaidPropertiesList | Object[] | oaid-属性列表 | |
| ├─├─propertiesName | oaid | String | 属性名称 |
| ├─├─propertiesValue | 001 | String | 属性值 |
请求示例
{
"padCode": "AC21020010001"
}
响应示例
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"padCode": "AC21020010001",
"modemPropertiesList": [
{
"propertiesName": "IMEI",
"propertiesValue": "412327621057784"
}
],
"systemPropertiesList": [
{
"propertiesName": "ro.build.id",
"propertiesValue": "QQ3A.200805.001"
}
],
"settingPropertiesList": [
{
"propertiesName": "ro.build.tags",
"propertiesValue": "release-keys"
}
],
"oaidPropertiesList": [
{
"propertiesName": "oaid",
"propertiesValue": "001"
}
]
}
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110028 | 实例不存在 | 请检查实例是否正确 |
批量查询实例属性
批量查询指定实例的属性信息,包括系统属性信息和设置信息。
接口地址
/vcpcloud/api/padApi/batchPadProperties
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | 实例数量不多余200个 | |
| ├─ | AC21020010001 | String | 是 | 实例编号 |
| ├─ | AC21020010002 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─modemPropertiesList | Object[] | Modem-属性列表 | |
| ├─├─propertiesName | IMEI | String | 属性名称 |
| ├─├─propertiesValue | 412327621057784 | String | 属性值 |
| ├─systemPropertiesList | Object[] | 系统-属性列表 | |
| ├─├─propertiesName | ro.build.id | String | 属性名称 |
| ├─├─propertiesValue | QQ3A.200805.001 | String | 属性值 |
| ├─settingPropertiesList | Object[] | setting-属性列表 | |
| ├─├─propertiesName | ro.build.tags | String | 属性名称 |
| ├─├─propertiesValue | release-keys | String | 属性值 |
| ├─oaidPropertiesList | Object[] | oaid-属性列表 | |
| ├─├─propertiesName | oaid | String | 属性名称 |
| ├─├─propertiesValue | 001 | String | 属性值 |
请求示例
{
"padCodes": [
"AC21020010001",
"AC21020010002"
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": [
{
"padCode": "AC21020010001",
"modemPropertiesList": [
{
"propertiesName": "IMEI",
"propertiesValue": "412327621057784"
}
],
"systemPropertiesList": [
{
"propertiesName": "ro.build.id",
"propertiesValue": "QQ3A.200805.001"
}
],
"settingPropertiesList": [
{
"propertiesName": "ro.build.tags",
"propertiesValue": "release-keys"
}
],
"oaidPropertiesList": [
{
"propertiesName": "oaid",
"propertiesValue": "001"
}
]
},
{
"padCode": "AC21020010002",
"modemPropertiesList": [
{
"propertiesName": "IMEI",
"propertiesValue": "412327621057784"
}
],
"systemPropertiesList": [
{
"propertiesName": "ro.build.id",
"propertiesValue": "QQ3A.200805.001"
}
],
"settingPropertiesList": [
{
"propertiesName": "ro.build.tags",
"propertiesValue": "release-keys"
}
],
"oaidPropertiesList": [
{
"propertiesName": "oaid",
"propertiesValue": "001"
}
]
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110028 | 实例不存在 | 请检查实例是否正确 |
修改实例属性
动态修改实例的属性信息,包括系统属性和设置
实例需要处于开机状态,该接口为即时生效
参考 实例属性列表
接口地址
/vcpcloud/api/padApi/updatePadProperties
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC21020010001 | String | 是 | 实例编号 |
| modemPersistPropertiesList | Object[] | 否 | Modem-持久化-属性列表 | |
| ├─propertiesName | IMEI | String | 否 | 属性名称 |
| ├─propertiesValue | 412327621057784 | String | 否 | 属性值 |
| modemPropertiesList | Object[] | 否 | Modem-非持久化-属性列表 | |
| ├─propertiesName | IMEI | String | 否 | 属性名称 |
| ├─propertiesValue | 412327621057784 | String | 否 | 属性值 |
| systemPersistPropertiesList | Object[] | 否 | 系统-持久化-属性列表 | |
| ├─propertiesName | ro.build.id | String | 否 | 属性名称 |
| ├─propertiesValue | QQ3A.200805.001 | String | 否 | 属性值 |
| systemPropertiesList | Object[] | 否 | 系统-非持久化-属性列表 | |
| ├─propertiesName | ro.build.id | String | 否 | 属性名称 |
| ├─propertiesValue | QQ3A.200805.001 | String | 否 | 属性值 |
| settingPropertiesList | Object[] | 否 | setting-属性列表 | |
| ├─propertiesName | ro.build.tags | String | 否 | 属性名称 |
| ├─propertiesValue | release-keys | String | 否 | 属性值 |
| oaidPropertiesList | Object[] | 否 | oaid-属性列表 | |
| ├─propertiesName | oaid | String | 否 | 属性名称 |
| ├─propertiesValue | 001 | String | 否 | 属性值 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"AC21020010001"
],
"modemPersistPropertiesList": [
{
"propertiesName": "IMEI",
"propertiesValue": "412327621057784"
}
],
"modemPropertiesList": [
{
"propertiesName": "IMEI",
"propertiesValue": "412327621057784"
}
],
"systemPersistPropertiesList": [
{
"propertiesName": "ro.build.id",
"propertiesValue": "QQ3A.200805.001"
}
],
"systemPropertiesList": [
{
"propertiesName": "ro.build.id",
"propertiesValue": "QQ3A.200805.001"
}
],
"settingPropertiesList": [
{
"propertiesName": "ro.build.tags",
"propertiesValue": "release-keys"
}
],
"oaidPropertiesList": [
{
"propertiesName": "oaid",
"propertiesValue": "001"
}
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570916196,
"data": [
{
"taskId": 36,
"padCode": "AC22030010001",
"vmStatus": 1
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110011 | 执行修改属性命令失败 | 请稍后重试 |
| 110028 | 实例不存在 | 请检查实例是否正确 |
| 110027 | 实例编号集合存在重复项 | 请检查实例是否存在重复的 |
修改实例安卓改机属性
静态设置安卓改机属性,需要重启实例才能够生效,一般用于修改设备信息
该接口与修改实例属性接口的区别在于生效时机,该接口生效时间为每次开机初始化
设置实例属性后,属性数据会持久化存储,重启或重置实例无需再调用该接口
参考 安卓改机属性列表
使用该接口需要对安卓系统有一定的理解,部分属性可能会影响实例正常启动,如果改机后,导致实例异常,可以通过调用实例重置接口恢复正常
接口地址
/vcpcloud/api/padApi/updatePadAndroidProp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | AC32010210001 | String | 否 | 实例id |
| restart | false | Boolean | 否 | 设置完成后自动重启(默认false) |
| props | {} | Object | 是 | 系统属性(此字段为key-value定义) |
| ├─ro.product.vendor.name | OP52D1L1 | String | 是 | 属性设置 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object | ||
| ├─taskId | 24 | Long | 任务id |
| ├─padCode | AC32010210001 | String | 实例id |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCode": "AC32010210001",
"props": {
"ro.product.vendor.name": "OP52D1L1"
},
"restart": false
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313781338,
"data": {
"taskId": 760459884,
"padCode": "AC32010160134",
"vmStatus": 0,
"taskStatus": 1
},
"traceId": "ewab8l4lqu4g"
}
根据国家Code修改SIM卡信息
静态设置安卓改机属性,需要重启实例才能够生效,一般用于修改设备信息
该接口与修改实例安卓改机属性接口具有相同功能.区别在于该接口会随机生成SIM卡信息,并且每次都会重启
设置实例属性后,属性数据会持久化存储,重启或重置实例无需再调用该接口
接口地址
/vcpcloud/api/padApi/updateSIM
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | AC32010210001 | String | 是 | 实例id |
| countryCode | US | String | 否 | 国家code |
| props | {} | Object | 否 | 系统属性(此字段为key-value定义) |
| ├─ro.product.vendor.name | OP52D1L1 | String | 否 | 属性设置 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756360113813 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object | 响应数据 | |
| ├─taskId | 10002486 | Long | 任务ID |
| ├─padCode | ACN342712020172800 | String | 实例编号 |
| ├─vmStatus | 0 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCode": "AC32010250001",
"props": {
"persist.sys.cloud.phonenum": "1234578998"
},
"countryCode": "US"
}
响应示例1
{
"code": 200,
"msg": "success",
"ts": 1756360113813,
"data": {
"taskId": 10002486,
"padCode": "ACN342712020172800",
"vmStatus": 0,
"taskStatus": 1
},
"traceId": "ewc84g8si0oy"
}
响应示例2
{
"code": 500,
"msg": "目前不支持国家编码: XX",
"ts": 1753521350163,
"data": null
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110065 | 参数请求不合规,请参考接口文档 | 检查参数,参考接口文档 |
| 110028 | 实例不存在 | 请检查实例编号是否正确 |
停止推流
停止指定实例推流,断开实例连接。
接口地址
/vcpcloud/api/padApi/dissolveRoom
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC11010000031 | String | 是 | 实例编号 |
| ├─ | AC22020020700 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object[] | ||
| ├─successList | Object[] | 成功集合 | |
| ├─├─padCode | AC11010000031 | String | 实例编号 |
| ├─failList | Object[] | 失败集合 | |
| ├─├─padCode | AC22020020700 | String | 实例编号 |
| ├─├─errorCode | 120005 | Integer | 错误码 |
| ├─├─errorMsg | 实例不存在 | String | 失败的原因 |
请求示例
{
"padCodes": ["AC11010000031","AC22020020700"]
}
响应示例
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"successList": [
{
"padCode": "AC11010000031"
}
],
"failList": [
{
"padCode": "AC22020020700",
"errorCode": 120005,
"errorMsg": "实例不存在"
}
]
},
"traceId": "ewab9njt3gn4"
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 120005 | 实例不存在 | 请检查实例编号是否正确 |
| 120004 | 中止推流错误,指令服务异常 | 请稍后重试 |
智能IP代理检测
检测代理IP是否可用,归属地信息是否正确
接口地址
/vcpcloud/api/padApi/checkIP
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| host | 127.0.0.1 | String | 是 | 代理信息 (ip或host) |
| port | 8080 | Integer | 是 | 代理端口 (数字类型) |
| account | xxxx | String | 是 | 代理用户名 |
| password | xxxx | String | 是 | 代理密码 |
| type | Socks5 | String | 是 | 代理协议类型 Socks5、 http、https |
| country | US | String | 否 | 国家-强行指定时必填 - 参数请参考:curl -x http://用户名:密码@ip:端口 https://ipinfo.io?token=注册就有的token 当使用了强行指定后,系统会直接使用指定的信息,不会检测代理 |
| ip | 156.228.84.62 | String | 否 | ip-强行指定时必填 |
| loc | 39.0438,-77.4874 | String | 否 | 经,纬度-强行指定时必填 |
| city | Ashburn | String | 否 | 城市-强行指定时必填 |
| region | Virginia | String | 否 | 地区-强行指定时必填 |
| timezone | America/New_York | String | 否 | 时区-强行指定时必填 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| data | Object[] | ||
| ├─proxyLocation | US-Los Angeles | String | 归属地 |
| ├─publicIp | 62.112.132.92 | String | 出口IP |
| ├─proxyWorking | true | Boolean | 检测成功-true 检测失败-false |
请求示例
{
"host": "62.112.132.92",
"port": 45001,
"account": "xxxxxxxxxx",
"password": "xxxxxxxx",
"type": "Socks5"
// "country": "US",
// "ip": "156.228.84.62",
// "loc": "39.0438,-77.4874",
// "city": "Ashburn",
// "region": "Virginia",
// "timezone": "America/New_York"
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"proxyLocation": "US-Los Angeles",
"publicIp": "62.112.132.92",
"proxyWorking": true
},
"ts": 1737601218580
}
设置智能IP
给云机设备设置智能IP,云机内的出口ip,SIM卡信息,gps坐标,时区等信息自动变更到代理的归属国家(设置完设备会重启,重启完毕后1分钟内生效, 同时设备状态变更为119-初始化中, 任务成功、失败、超时后会变更到100-正常状态 任务超时时间为5分钟 )
(设置的智能IP信息必须先经过检测接口的检测)直接设置会出现国家对应不上
接口地址
/vcpcloud/api/padApi/smartIp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22030010182 | String | 是 | 实例编号 |
| host | 127.0.0.1 | String | 是 | 代理信息 (ip或host) |
| port | 8080 | Integer | 是 | 代理端口 (数字类型) |
| account | xxxx | String | 是 | 代理用户名 |
| password | xxxx | String | 是 | 代理密码 |
| type | Socks5 | String | 是 | 代理协议类型 Socks5、 http、https |
| mode | vpn | String | 是 | 设置代理的模式 vpn / proxy |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| data | TASK-278784482960609280 | String | 任务编号 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
请求示例
{
"padCodes": [
"AC32010160334"
],
"host": "62.112.132.92",
"port": 45001,
"account": "xxxxxx",
"password": "xxxxxxx",
"type": "Socks5",
"mode": "vpn"
}
响应示例
{
"msg": "success",
"code": 200,
"data": "TASK-278784482960609280",
"ts": 1737604726812
}
取消智能IP
取消智能IP,还原云机内的出口ip,SIM卡信息,gps坐标,时区等信息(设置完设备会重启,重启完毕后1分钟内生效, 同时设备状态变更为119-初始化中, 任务成功、失败、超时后会变更到100-正常状态 任务超时时间为5分钟 )
接口地址
/vcpcloud/api/padApi/notSmartIp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22030010182 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| data | TASK-278784482960609280 | String | 任务编号 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
请求示例
{
"padCodes": [
"AC32010160334"
]
}
响应示例
{
"msg": "success",
"code": 200,
"data": "TASK-278784482960609280",
"ts": 1737604726812
}
设备任务执行结果查询
使用任务编号查询任务的执行结果(智能IP使用)
接口地址
/vcpcloud/api/padApi/getTaskStatus
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskId | TASK-278784482960609280 | String | 是 | 任务ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| data | Object[] | 任务结果 | |
| ├─padCode | AC32010150162 | String | 实例编号 |
| ├─taskStatus | Successfully | String | 任务状态:Executing-执行中 Successfully-已成功 Failed-已失败 Timedout-已超时 |
| ├─taskType | 10010 | Integer | 任务类型:10010-设置智能IP 10011-取消智能IP |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
请求示例
{
"taskId": "TASK-278784482960609280"
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "AC32010150162",
"taskStatus": "Successfully",
"taskType": 10010
}
],
"ts": 1738999472135
}
获取指定云机列表中所有安装的应用信息
接口地址
/vcpcloud/api/padApi/getListInstalledApp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodeList | String[] | 是 | ||
| ├─ | AC22020020793 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| data | Object[] | ||
| ├─appName | VMOSCloud | String | APP名称 |
| ├─packageName | com.geniuscloud.overseas | String | APP包名 |
请求示例
{
"padCodeList": ["AC32010601132"]
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"appName": "VMOSCloud",
"packageName": "com.geniuscloud.overseas"
},
{
"appName": "快手极速版",
"packageName": "com.kuaishou.nebula"
}
],
"ts": 1746694111364
}
文件通过链接直接上传接口
从文件管理中心推送文件到云手机实例(异步任务) 如果能通过md5值或者文件ID找到对应的文件,会直接通过OSS的路径下发给实例下载 如果OSS没有对应的文件,会直接将URL下发给实例下载,并且将该URL内容上传到OSS 如果选择安装应用,会检验包名是否有值,如果没值,会抛出异常.(安装应用默认会授权所有权限,通过isAuthorization字段可以选择不授权) 请求方式
接口地址
/vcpcloud/api/padApi/uploadFileV3
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─padCode | AC32010250011 | String | 否 | 实例编号 |
| autoInstall | 1 | Integer | 否 | 是否需要⾃动安装 1需要、0不需要。不填默认不需要。仅对apk类型的⽂件⽣效 |
| fileUniqueId | 1e5d3bf00576ee8f3d094908c0456722 | String | 否 | 系文件id唯一标识 |
| customizeFilePath | /Documents/ | String | 否 | ⾃定义路径。非必传,需以/开头。(示例:"/DCIM/", "/Documents/", "/Download/", "/Movies/", "/Music/", "/Pictures/") |
| fileName | threads | String | 否 | 文件名称 |
| packageName | com.zhiliaoapp.musically | String | 否 | 文件包名 |
| url | https://file.vmoscloud.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.apk | String | 否 | 文件安装路径 |
| md5 | 1e5d3bf00576ee8f3d094908c0456722 | String | 否 | 系文件唯一标识 |
| isAuthorization | false | Boolean | 否 | 是否授权(默认全授权) |
| iconPath | https://file.vmoscloud.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.png | String | 否 | 安装时的图标展示 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200userRomPage | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC22010020062 | String | 实例编号 |
| ├─taskId | 1 | Integer | 任务ID |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"AC32010250022"
],
"customizeFilePath": "/DCIM/",
"md5": "d97fb05b3a07d8werw2341f10212sdfs3sdfs24",
"url": "https://file.vmoscloud.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.apk",
"autoInstall": 1,
"packageName": "com.zhiliaoapp.musically",
"fileName": "market",
"isAuthorization": false
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1737431505379,
"data": [
{
"taskId": 13469,
"padCode": "AC32010250022",
"vmStatus": 0
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110065 | 参数请求不合规,请参考接口文档 | 检查参数,参考接口文档 |
| 120005 | 实例不存在 | 请检查实例编号是否正确 |
修改实例时区
接口地址
/vcpcloud/api/padApi/updateTimeZone
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| timeZone | Asia/Shanghai | String | 是 | UTC标准时间 |
| padCodes | Array | 是 | 实例列表 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object | ||
| ├─taskId | 24 | Long | 任务ID |
| ├─padCode | AC22030010001 | String | 房间号 |
| ├─vmStatus | 实例状态 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"AC32010140003"
],
"timeZone": "Asia/Shanghai"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313802157,
"data": [
{
"taskId": 760460229,
"padCode": "ACP250417QAGGQ3S",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab9p712ww0"
}
修改实例语言
接口地址
/vcpcloud/api/padApi/updateLanguage
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| language | zh | String | 是 | 语言 |
| country | CN | String | 否 | 国家 |
| padCodes | Array | 是 | 实例列表 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object | ||
| ├─taskId | 24 | Long | 任务ID |
| ├─padCode | AC22030010001 | String | 房间号 |
| ├─vmStatus | 实例状态 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─ taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"AC32010140026"
],
"language": "zh",
"country": ""
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"traceId": "ewab9p712ww0",
"data": [
{
"taskId": 24,
"padCode": "AC32010140026",
"vmStatus": 1,
"taskStatus": 1
}
]
}
设置实例经纬度
接口地址
/vcpcloud/api/padApi/gpsInjectInfo
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| longitude | 116.397455 | Float | 是 | 经度 |
| latitude | 39.909187 | Float | 是 | 纬度 |
| altitude | 8 | Float | 否 | 海拔 (需要更新到最新镜像) |
| speed | 8 | Float | 否 | 速度,m/s (20251024之后的镜像) |
| bearing | 0 | Float | 否 | 速度方向,° (20251024之后的镜像) |
| horizontalAccuracyMeters | 0.1 | Float | 否 | 水平精度 (20251024之后的镜像) |
| padCodes | Array | 是 | 实例列表 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Boolean |
请求示例
{
"padCodes": [
"AC32010030001"
],
"longitude": 116.397455,
"latitude": 39.909187,
"altitude": 8
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"traceId": "ewab9p712ww0",
"data": true
}
查询实例代理信息
(待上线)接口地址
/vcpcloud/open/network/proxy/info
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | Array | 是 | 实例列表 | |
| ├─padCode | AC32010250011 | String | 否 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object | ||
| ├─taskId | 24 | Long | 任务ID |
| ├─padCode | AC22030010001 | String | 房间号 |
| ├─vmStatus | 实例状态 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─ taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"AC32010140012"
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756348835040,
"data": [
{
"taskId": 14294,
"padCode": "ACP250820SBM4NEU",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewbrcry0frb4"
}
一键新机 ⭐
注意:一键新机会清除系统所有数据。请谨慎使用!
一键新机功能,将当前实例数据全部清空,并重新设置安卓属性
- 虚拟机直接设置安卓属性,然后清空所有数据
- 云真机直接清空所有数据(等同于重置),并且添加SIM信息,如果有传入模板id,会替换adi模板.如果没有传入模板,并且replacementRealAdiFlag为true.会随机挑选一个模板Id
- 注意:如果不传国家信息,或者传入的国家信息服务找不到,会默认设置上新加坡的SIM信息
- 如果传入的国家不支持,会返回错误500,提示:目前不支持国家编码XX
接口地址
/vcpcloud/api/padApi/replacePad
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | [] | Array | 是 | 实例id列表 |
| countryCode | SG | String | 否 | 国家编码(具体查看:https://chahuo.com/country-code-lookup.html) |
| realPhoneTemplateId | 65 | Long | 否 | 模板id参考 分页获取真机模板 |
| androidProp | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | 否 | 参考 安卓改机属性列表 |
| replacementRealAdiFlag | false | Boolean | 否 | 真机是否随机adi模板(false 不随机 true 随机) |
| excludeRealPhoneTemplateIds | [101,102] | Long[] | 否 | 随机ADI模板时需排除的模板ID列表 |
| certificate | 参考手机根证书 | String | 否 | 手机根证书 |
| wipeData | true | Boolean | 否 | 是否清除用户数据,默认true(CBS2.4.4以上版本支持) |
| wipeSpecificData | ["/fonts","/media"] | String[] | 否 | wipeData为false该参数生效;需要清除哪些数据 |
| enableCpuCoreConfig | true | Boolean | 否 | 是否启用CPU大小核配置,本功能基于 Android cpuset 机制,为云手机物理机上的多个容器提供静态错峰的 CPU 资源分配方案。通过精细化划分大小核(Little/Big Cores)资源,显著提升单容器的性能稳定性与用户体验。 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object | ||
| ├─taskId | 12818 | Long | 任务ID |
| ├─padCode | AC22030010124 | String | 实例编号 |
| ├─vmStatus | 实例状态 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": ["AC32010250031"],
"countryCode": "SG",
"realPhoneTemplateId": 210,
"androidProp": {
"persist.sys.cloud.battery.level": "67",
"persist.sys.cloud.gps.lat": "1.3657",
"persist.sys.cloud.gps.lon": "103.6464",
"persist.sys.cloud.imsinum": "525050095718767"
},
"replacementRealAdiFlag": true,
"excludeRealPhoneTemplateIds": [101, 102],
"certificate": "手机根证书",
"wipeData": false,
"wipeSpecificData": ["/fonts", "/media"]
}
响应示例1
{
"code": 200,
"msg": "success",
"ts": 1732270378320,
"data": {
"taskId": 8405,
"padCode": "AC32010250031",
"vmStatus": 2,
"taskStatus": 1
},
"traceId": "ewab8qjqbaio"
}
响应示例2
{
"code": 500,
"msg": "目前不支持国家编码: xx",
"ts": 1753521350163,
"data": null,
"traceId": "ewab8qjqbaio"
}
查询一键新机支持国家列表
接口地址
/vcpcloud/api/padApi/country
请求方式
GET
请求数据类型
application/json
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object[] | ||
| ├─code | AD | String | 国家编码 |
| ├─name | Andorra | String | 国家名称(英文) |
响应示例
{
"code": 200,
"msg": "success",
"ts": 1730192434383,
"traceId": "ewab8qjqbaio",
"data": [{
"code": "AD",
"name": "Andorra"
}]
}
换机
接口地址
/vcpcloud/api/padApi/replacement
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | AC22030010001 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| data | Object[] | ||
| ├─equipmentId | 358504 | Long | 设备编号 |
| ├─padCode | AC32011030092 | String | 实例编号 |
请求示例
{
"padCode": "AC32010030001"
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"padCode": "AC32011030092",
"equipmentId": 358504
},
"ts": 1741078432830
}
获取实例实时预览图片
获取指定的实例,当前时间下的屏幕截图。 调用此接口,会给实例返回一个url和到期时间,在有效期内,通过访问这个url,可以获取实时的云机屏幕截图。 可以批量传多个实例编号,批量获取预览图url。
接口地址
/vcpcloud/api/padApi/getLongGenerateUrl
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ["AC22030010001"] | Array | 是 | 实例列表 |
| format | png / jpg | String | 否 | 图片格式,枚举值:png、jpg,默认png, png格式不支持压缩 |
| height | 800 | String | 否 | 缩放高度(像素,不传则保持原始比例) 不填默认使用云机分辨率 |
| width | 1280 | String | 否 | 缩放宽度(像素,不传则保持原始比例) 不填默认使用云机分辨率 |
| quality | 60 | Integer | 否 | 图片质量(百分比:0~100,不传则为50%) 经测试低于60会图片模糊 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC32011030092 | String | 实例编号 |
| ├─url | http://xxx.png | String | 访问地址 |
| ├─expireAt | 1756024767163 | Long | URL到期时间(毫秒时间戳) |
| ├─success | true | Boolean | 是否成功生成URL |
| ├─reason | 实例状态异常 | String | 失败原因(成功时为空) |
请求示例
{
"padCodes": [
"AC11010000031",
"AC11010000032"
],
"format": "png"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756021167163,
"data": [
{
"padCode": "AC11010000031",
"url": "http://xxx.png",
"expireAt": 1756024767163,
"success": true,
"reason": ""
},
{
"padCode": "AC11010000032",
"url": "",
"expireAt": null,
"success": false,
"reason": "实例状态异常"
}
]
}
更新通讯录
fileUniqueId和info必填一个
接口地址
/vcpcloud/api/padApi/updateContacts
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | [] | Array | 是 | 实例id列表 |
| fileUniqueId | cfca25a2c62b00e065b417491b0cf07ffc | String | 否 | 通讯录文件ID |
| operateType | -1 | Interger | 否 | -1 新增联系人 0 删除联系人 1 覆盖联系人 ,默认为-1 |
| info | Object[] | 否 | 通讯录信息 | |
| ├─firstName | tom | String | 否 | 姓名 |
| ├─phone | 13111111111 | String | 否 | 手机号 |
| tom@gmail.com | String | 否 | 邮箱 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object | ||
| ├─taskId | 12818 | Long | 任务ID |
| ├─padCode | AC22030010124 | String | 实例编号 |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
| ├─vmStatus | 实例状态 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"fileUniqueId": "cfca25a2c62b00e065b417491b0cf07ffc",
"info": [{
"firstName": "tom",
"phone": "13111111111",
"email": "xxxxx@gmail.com"
}],
"padCodes": [
"AC32010180326"
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756373645105,
"data": [
{
"taskId": 392077,
"padCode": "ATP250822LBOD8V7",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewcs8ow5u328"
}
实例设置代理
接口地址
/vcpcloud/api/padApi/setProxy
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| account | 2222 | String | 否 | 账号 |
| password | 2222 | String | 否 | 密码 |
| ip | 47.76.241.5 | String | 否 | IP |
| port | 2222 | Integer | 否 | 端口 |
| enable | true | Boolean | 是 | 启用 |
| padCodes | Array | 是 | 实例列表 | |
| proxyType | vpn | String | 否 | 支持参数:proxy、vpn |
| proxyName | socks5 | String | 否 | 支持参数:socks5、http-relay(包含http、https) |
| bypassPackageList | Array | 否 | 包名 设置该包名不走代理 | |
| bypassIpList | Array | 否 | ip 设置该ip不走代理 | |
| bypassDomainList | Array | 否 | 域名 设置该域名不走代理 | |
| sUoT | true | Boolean | 否 | 是否开启udp连接 默认为false |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object | ||
| ├─taskId | 24 | Long | 任务ID |
| ├─padCode | AC22030010001 | String | 房间号 |
| ├─vmStatus | 实例状态 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"AC32010140023"
],
"account": "2222",
"password": "2222",
"ip": "47.76.241.5",
"port": 2222,
"enable": true,
"bypassPackageList":[],
"bypassIpList":[],
"bypassDomainList":[],
"sUoT":true
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313787216,
"data": [
{
"taskId": 22323879,
"padCode": "ACN250828ED53YMG",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab8whwonb4"
}
实时查询已安装的应用列表
接口地址
/vcpcloud/api/padApi/listInstalledApp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | 是 | 实例编号 |
| appName | String | 否 | 应用名称 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object | ||
| ├─padCode | AC32010250001 | String | 实例编号 |
| ├─apps | Object[] | 应用集合 | |
| ├─├─appName | 测试app | String | 应用名称 |
| ├─├─packageName | com.xxx.xxx | String | 包名 |
| ├─├─versionCode | 150600 | String | 版本号 |
| ├─├─versionName | 15.6.0 | String | 版本名称 |
| ├─├─appState | 0 | Integer | 0 已完成 1安装中 2下载中 |
请求示例
{
"padCodes": ["AC32010250001"],
"appName": ""
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313784076,
"data": [
{
"padCode": "ACP250417KYBOAXK",
"apps": [
{
"appName": "WeChat",
"packageName": "com.tencent.mm",
"versionCode": "2900",
"versionName": "8.0.62",
"appState": 0
}
]
}
],
"traceId": "ewab8qh6vwg1"
}
设置应用保活
目前只支持安卓13、14、15
接口地址
/vcpcloud/api/padApi/setKeepAliveApp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | 否 | 实例编号 |
| applyAllInstances | false | Boolean | 是 | 是否应用所有实例模式 |
| appInfos | Object[] | 否 | ||
| ├─serverName | com.example/com.example.service.TaskService | String | 是 | com.xxx.xxx(包名)/com.xxx.xxx.service.DomeService (需要启动的服务完整路径) |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | null |
请求示例
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"serverName": "com.example/com.example.service.TaskService"
}
],
"applyAllInstances": false
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null
}]
}
上传用户镜像
接口地址
/vcpcloud/api/padApi/addUserRom
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| name | CloudROM-13 | String | 是 | ROM名称 |
| updateLog | 更新 | String | 是 | 更新日志 |
| androidVersion | 13 | String | 是 | 安卓版本 |
| version | v1.0.0 | String | 是 | 版本 |
| downloadUrl | https://file.vmoscloud.com/userFile/userRom/d281d848eff49adee2dda2475235b80b2.tar | String | 是 | 地址 |
| packageSize | 236978175 | String | 是 | 大小(单位:Byte) |
响应参数
| 字段名 | 示例值 | 类型 | 说明 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736326542985 | Long | 时间戳 |
| data | img-2505287582886572 | String | 镜像id |
请求示例
{
"name": "CloudROM-13-11",
"updateLog": "更新日志",
"androidVersion": "13",
"version": "v1.0.0",
"downloadUrl": "https://file.vmoscloud.com/userFile/userRom/d281d848eff49adee2dda2475235b80b2.tar",
"packageSize": 236978175,
}
响应示例
{
"msg": "success",
"code": 200,
"data": "img-2505287582886572",
"ts": 1748425758327
}
设置应用隐藏
(待上线) 下发隐藏包名列表到指定实例,允许包名列表为空(为空则清空隐藏列表并下发空列表)。需要注意:当应用未安装时,设置不会生效,需在安装后进行重启才可生效。
接口地址
vcpcloud/api/padApi/setHideAppList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | 是 | 实例编号(最多500个) |
| appInfos | Object[] | 是 | 隐藏应用列表,空数组表示清空(0-500个) | |
| ├─packageName | com.tencent.mm | String | 否 | 应用包名,留空或空数组表示清空 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | null |
请求示例
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"packageName": "com.tencent.mm"
}]
}
清空隐藏列表示例
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": []
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": null
}
修改真机ADI模板
修改实例云真机ADI模版, 传入云真机模版ID
必要条件:
- 实例创建时,需要创建为云真机类型
- 实例创建时的安卓版本,需要和目标的ADI安卓版本一致
接口地址
/vcpcloud/api/padApi/replaceRealAdiTemplate
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC21020010001 | String | 是 | 实例编号 |
| wipeData | false | Boolean | 是 | 是否清除数据 |
| realPhoneTemplateId | 186 | Long | 是 | 云真机模板id |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": ["AC32010250011"],
"wipeData": true,
"realPhoneTemplateId": 186
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null,
"taskStatus": 1
}]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110028 | 实例不存在 | 联系管理员 |
| 110064 | 当前实例中有不满足升级真机条件,请检查实例 | 检查实例是否是真机 |
| 110099 | ADI模板不存在,请检查参数 | 检查ADI模板信息 |
异步执行ADB命令
在一个或多个云手机实例中异步执行命令
接口地址
/vcpcloud/api/padApi/asyncCmd
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22020020793 | String | 是 | 实例编号 |
| scriptContent | cd /root;ls | String | 是 | ADB命令,多条命令使用分号隔开 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC22020020793 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"AC22020020793"
],
"scriptContent": "cd /root;ls"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570297639,
"traceId": "ewab8whwonb4",
"data": [
{
"taskId": 14,
"padCode": "AC22030010001",
"vmStatus": 1
},
{
"taskId": 15,
"padCode": "AC22030010002",
"vmStatus": 0
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110003 | 执行ADB命令失败 | 联系管理员 |
| 110012 | 命令执行超时 | 请稍后重试 |
开关Root权限
在一个或多个云手机实例中开关root权限。 开个单个应用root,需要指定包名,否则会抛出异常.(云真机产品,在调用此接口时,不建议设置全局root权限,会有被风控检测到的可能。)
接口地址
/vcpcloud/api/padApi/switchRoot
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22020020793 | String | 是 | 实例编号 |
| globalRoot | false | Boolean | 否 | 是否开启全局root权限,默认不开启 |
| packageName | com.example | String | 否 | 应用包名(非全局root必传)多个包名通过,连接 |
| rootStatus | root开启状态 | Integer | 是 | root状态,0:关闭 1:开启 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC22020020793 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"AC32010250002"
],
"globalRoot": false,
"packageName": "com.android.ftpeasys",
"rootStatus": 0
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570297639,
"data": [
{
"taskId": 14,
"padCode": "AC32010250002",
"vmStatus": 1
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110003 | 执行ADB命令失败 | 联系管理员 |
| 110089 | 开启单个root包名不能为空 | 开启单个应用root时,包名不能为空 |
本地截图
实例截图。
接口URL
/vcpcloud/api/padApi/screenshot
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC21020010231 | String | 是 | 实例编号 |
| rotation | 0 | Integer | 是 | 截图画面横竖屏旋:0:截图方向不做处理,默认;1:截图画面旋转为竖屏时:a:手机竖屏的截图,不做处理。b:手机横屏的截图,截图顺时针旋转90度。 |
| broadcast | false | Boolean | 否 | 事件是否广播(默认false) |
| definition | false | Integer | 否 | 清晰度 取值范围0-100 |
| resolutionHeight | false | Integer | 否 | 分辨率 - 高 大于1 |
| resolutionWidth | false | Integer | 否 | 分辨率 - 宽 大于1 |
响应参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| code | 200 | Integer | 是 | 状态码 |
| msg | success | String | 是 | 响应消息 |
| ts | 1756021167163 | Long | 是 | 时间戳 |
| data | Object[] | |||
| ├─taskId | 1 | Integer | 否 | 任务ID |
| ├─padCode | AC21020010231 | String | 否 | 实例编号 |
| ├─vmStatus | 1 | Integer | 是 | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"AC21020010231"
],
"rotation": 0,
"broadcast": false,
"definition": 50,
"resolutionHeight": 1920,
"resolutionWidth": 1080
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570337023,
"data": [
{
"taskId": 16,
"padCode": "AC22030010001",
"vmStatus": 1
},
{
"taskId": 17,
"padCode": "AC22030010002",
"vmStatus": 0
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110001 | 截图失败 | 请重试 |
| 110004 | 执行重启命令失败 | 稍后再次重启 |
| 110028 | 实例不存在 | 请检查实例是否存在 |
生成预览图
指定的实例获取预览图
接口地址
/vcpcloud/api/padApi/generatePreview
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC11010000031 | String | 是 | 实例编号 |
| rotation | 0 | Integer | 是 | 截图画面横竖屏旋:0:截图方向不做处理,默认;1:截图画面旋转为竖屏时:a:手机竖屏的截图,不做处理。b:手机横屏的截图,截图顺时针旋转90度。 |
| broadcast | false | Boolean | 否 | 事件是否广播(默认false) |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC11010000031 | String | 实例编号 |
| ├─url | http://xxx.armcloud.png | String | 访问地址 |
| ├─expireAt | 1756024767163 | Long | URL到期时间(毫秒时间戳) |
| ├─success | true | Boolean | 是否成功生成URL |
| ├─reason | 实例状态异常 | String | 失败原因(成功时为空) |
请求示例
{
"padCodes": [
"AC11010000031",
"AC11010000032"
],
"format": "png"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756021167163,
"data": [
{
"padCode": "AC11010000031",
"url": "http://xxx.armcloud.png",
"expireAt": 1756024767163,
"success": true,
"reason": ""
},
{
"padCode": "AC11010000032",
"url": "",
"expireAt": null,
"success": false,
"reason": "实例状态异常"
}
]
}
升级镜像
批量实例镜像升级
接口地址
/vcpcloud/api/padApi/upgradeImage
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22030010182 | String | 是 | 实例编号 |
| imageId | mg-24061124017 | String | 是 | 镜像ID |
| wipeData | false | Boolean | 是 | 是否清除实例数据(data分区), true清除,false不清除 |
| enableCpuCoreConfig | true | Boolean | 否 | 是否启用CPU大小核配置,本功能基于 Android cpuset 机制,为云手机物理机上的多个容器提供静态错峰的 CPU 资源分配方案。通过精细化划分大小核(Little/Big Cores)资源,显著提升单容器的性能稳定性与用户体验。 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object[] | ||
| ├─padCode | AC22030010182 | String | 实例编号 |
| ├─taskId | 1 | Integer | 任务ID |
| ├─errorMsg | “” | String | 错误信息 |
请求示例
{
"padCodes": [
"AC22030010182"
],
"wipeData": false,
"imageId": "mg-24061124017"
}
响应示例
{
"code": 200,
"traceId": "ewab8whwonb4",
"msg": "success",
"ts": 1718594881432,
"data": [
{
"taskId": 63,
"padCode": "AC22030010182",
"errorMsg": null
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110041 | 镜像不存在 | 镜像id传参有误 |
| 110037 | 执行升级镜像指令失败 | 实例状态有误,联系管理员 |
| 110038 | 执行升级镜像命令失败 | 实例状态有误,联系管理员 |
升级真机镜像
批量实例真机镜像升级
接口地址
/vcpcloud/api/padApi/virtualRealSwitch
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22030010182 | String | 是 | 实例编号 |
| imageId | mg-24061124017 | String | 是 | 镜像ID |
| wipeData | false | Boolean | 是 | 是否清除实例数据(data分区), true清除,false不清除 |
| realPhoneTemplateId | 178 | Integer | 否 | 真机模板ID upgradeImageConvertType=real时必填 |
| upgradeImageConvertType | virtual | String | 是 | 转换镜像类型 virtual:虚拟机 real:云真机 |
| screenLayoutId | 14 | Integer | 否 | 屏幕布局ID upgradeImageConvertType=virtual时必填 |
| certificate | 参考手机根证书 | String | 否 | 自定义手机根证书 |
| deviceAndroidProps | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | 否 | 安卓属性配置,参考 安卓改机属性列表(注意:CBS版本2.4.4以下不支持 ) |
| enableCpuCoreConfig | true | Boolean | 否 | 是否启用CPU大小核配置,本功能基于 Android cpuset 机制,为云手机物理机上的多个容器提供静态错峰的 CPU 资源分配方案。通过精细化划分大小核(Little/Big Cores)资源,显著提升单容器的性能稳定性与用户体验。 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object[] | ||
| ├─padCode | AC22030010182 | String | 实例编号 |
| ├─taskId | 1 | Integer | 任务ID |
| ├─errorMsg | “” | String | 错误信息 |
请求示例
{
"padCodes": [
"AC32010210023"
],
"imageId": "img-24112653977",
"wipeData": true,
"realPhoneTemplateId": 178,
"upgradeImageConvertType": "virtual",
"screenLayoutId": 14
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1718594881432,
"traceId": "ewab8whwonb4",
"data": [
{
"taskId": 63,
"padCode": "AC22030010182",
"errorMsg": null
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110041 | 镜像不存在 | 镜像id传参有误 |
| 110037 | 执行升级镜像指令失败 | 实例状态有误,联系管理员 |
| 110038 | 执行升级镜像命令失败 | 实例状态有误,联系管理员 |
| 110064 | 当前实例中有不满足升级真机条件,请检查实例 | 当前实例中有不满足升级真机条件,请检查实例 |
分页获取真机模板
分页获取真机模板
接口地址
/vcpcloud/api/padApi/templateList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| pageIndex | 1 | Integer | 否 | 页码 默认1 |
| pageSize | 10 | Integer | 否 | 每页显示数量 默认10 取值范围为1-100 |
| androidImageVersion | 14 | String | 否 | 安卓镜像版本 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| data | Object[] | 响应数据列表 | |
| ├─id | 178 | Long | 账号ID |
| ├─brand | String | 品牌 | |
| ├─model | Pixel 7 Pro(12G) | String | 型号 |
| ├─fingerprintMd5 | f5da7b97678ac19309f0cf0203e072d7 | String | 安卓md5(ro.build.fingerprint) |
| ├─fingerprint | google/cheetah/cheetah:13/TQ3A.230901.001/10750268:user/release-keys | String | 安卓ro.build.fingerprint |
| ├─resourceSpecificationCode | m2-3 | String | 规格编号 |
| ├─screenLayoutCode | realdevice_1440x3120x560 | String | 屏幕布局编码 |
| ├─adiTemplateDownloadUrl | https://example.com/file.zip | String | adi模板文件下载路径 |
| ├─adiTemplatePwd | 123456 | String | adi模板文件密码 |
| ├─propertyJson | {"test": "testa"} | JSON | 实例属性 |
| ├─androidImageVersion | 13 | Integer | 安卓镜像版本 |
| ├─deleteFlag | 0 | Integer | 是否删除(1:已删除;0:未删除) |
| ├─createBy | admin | String | 创建人 |
| ├─createTime | 2024-08-28 12:00:00 | Timestamp | 创建时间 |
| ├─updateBy | admin | String | 修改人 |
| ├─updateTime | 2024-08-28 12:30:00 | Timestamp | 修改时间 |
| ├─deviceName | Pixel Pro | String | 机型名称(别名/展示用) |
| ├─isOfficial | 1 | Integer | 是否正式版(0:测试版 1:正式版) |
| ├─status | 1 | Integer | 是否启用(0:禁用 1:启用) |
| ├─adiTemplateVersion | v1.0.2 | String | adi模板版本号 |
| ├─modelCode | cheetah | String | 机型标识 |
| ├─isPublic | 1 | Integer | 模板使用类型(1=公共 0=私有) |
| ├─aospVersion | 13.0.1 | String | aosp版本 |
| ├─testCasesDownloadUrl | https://example.com/cases.zip | String | 测试用例文件下载路径 |
请求示例
{
"pageIndex": 1,
"pageSize": 10
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313820061,
"data": [
{
"id": 202,
"createTime": "2025-03-12T02:29:43.000+00:00",
"createBy": "",
"updateTime": "2025-04-29T09:44:28.000+00:00",
"updateBy": "",
"brand": "HONOR(FIX)",
"model": "ELZ-AN10(8G)",
"fingerprint": "HONOR/ELZ-AN10/HNELZ:14/HONORELZ-AN10/8.0.0.185CHNC00E185R4P6:user/release-keys",
"fingerprintMd5": "9bf2de4b6aa70466a6f76f66539c4613",
"resourceSpecificationCode": "m2-4",
"screenLayoutCode": "realdevice_1344x2772x476",
"adiTemplateDownloadUrl": "https://oss-hk.armcloud.net/adi/35fdc068d6fdc32a691554989008160b_fix2.zip",
"adiTemplatePwd": "XMDoxJgoKIZKoWbWlnmY",
"propertyJSON": "{}",
"androidImageVersion": 14,
"deleteFlag": false,
"deviceName": "ELZ-AN10(8G)",
"isOfficial": 1,
"status": 1,
"adiTemplateVersion": null,
"modelCode": null,
"isPublic": 1,
"testCasesDownloadUrl": null,
"aospVersion": "android14"
}
],
"traceId": "ewabantnnwn4"
}
批量获取实例机型信息
(待上线) 根据实例编号批量获取对应的实例的机型信息。
接口地址
/vcpcloud/api/padApi/modelInfo
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22030010182 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC22030010182 | String | 实例编号 |
| ├─imei | 524803173613682 | String | IMEI |
| ├─serialno | 01NM5ON34M4O | String | 序列号 |
| ├─wifimac | 04:3a:6c:e5:e9:8d:62:d6:4a | String | Wi-Fi的mac地址 |
| ├─androidid | aa6bcedf1426546c | String | Android实例唯一标识 |
| ├─model | Mi 10 Pro | String | 型号 |
| ├─brand | Xiaomi | String | 品牌 |
| ├─manufacturer | Xiaomi | String | 厂商 |
| ├─isRoot | 1 | String | 是否是ROOT权限 |
| ├─width | 720 | Integer | 云手机的宽 最大不超过1080 |
| ├─height | 1280 | Integer | 云手机的高 最大不超过1920 |
| ├─memoryLimit | 1024 | Integer | 内存限额 |
| ├─bluetoothaddr | 3A:1F:4B:9C:2D:8E | String | 蓝牙地址 |
| ├─phonenum | 1112341234 | String | 手机号码 |
| ├─romVersion | android13 | String | 安卓版本 |
| ├─dataSize | 2367381504 | Integer | 内存大小(b) |
| ├─dataSizeAvailable | 365830144 | Integer | 剩余可用(b) |
| ├─dataSizeUsed | 1024 | 2001551360 | 已使用(b) |
| ├─romVersion | android14 | String | rom版本 |
请求示例
{
"padCodes": [
"AC22030010182"
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1752845766596,
"data": [
{
"padCode": "ACN250718J6ZLUYS",
"imei": "237150320344334",
"serialno": null,
"wifimac": "44:5a:56:fb:6a:ec",
"androidid": "ecb978a3cafff13",
"model": "SM-A057F",
"brand": "samsung",
"manufacturer": "samsung",
"isRoot": null,
"width": 1080,
"height": 2400,
"memoryLimit": null,
"bluetoothaddr": null,
"phonenum": null,
"dataSize": null,
"dataSizeAvailable": null,
"dataSizeUsed": null,
"romVersion": "android14"
}
],
"traceId": "esb357am18n4"
}
设置实例带宽
(待上线) 根据实例编号设置实例带宽。
接口地址
/vcpcloud/api/padApi/setSpeed
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22030010124 | String | 是 | 实例编号 |
| upBandwidth | 10.00 | float | 是 | 上行带宽 Mbps (0:不限制;-1:限制上网) |
| downBandwidth | 10.00 | float | 是 | 下行带宽 Mbps (0:不限制;-1:限制上网) |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| data | Object[] | ||
| ├─taskId | 679 | Integer | 任务ID |
| ├─padCode | AC32010140011 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"AC32010140011"
],
"upBandwidth": 10.00,
"downBandwidth": 10.00
}
响应示例
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1721640654237,
"data": [
{
"taskId": 679,
"padCode": "AC32010140011",
"vmStatus": 1,
"taskStatus": 1
}
]
}
开启关闭ADB
根据实例编号打开或关闭实例adb
接口地址
/vcpcloud/api/padApi/openOnlineAdb
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | 实例列表(传入实例数量1-200个) | |
| ├─ | AC32010250032 | String | 是 | 实例编号 |
| openStatus | 1 | Integer | 是 | 开启关闭ADB状态(1开启 0或者不传默认关闭) |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1721739857317 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 16147 | Integer | 任务id |
| ├─padCode | AC32010250032 | String | 实例编号 |
| ├─taskStatus | 3 | Integer | 任务状态(-1全失败,-2部分失败,-3取消,-4超时,-5异常,1,等待执行,2执行中,3完成) |
| ├─taskResult | success | String | 任务结果 |
请求示例
{
"padCodes":[
"AC32010250032"
],
"openStatus": 1
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1736920929306,
"data": [
{
"taskId": 16147,
"padCode": "AC32010250032",
"taskStatus": 3,
"taskResult": "success"
}
]
}
获取ADB连接信息
根据实例编号获取adb连接信息 响应数据(key,adb)不全情况时,请调用开启关闭ADB开启adb。
接口地址
/vcpcloud/api/padApi/adb
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | AC32010250032 | String | 是 | 实例编号 |
| enable | true | Boolean | 是 | ADB 状态 true:开启 false:关闭 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| ts | 1736922808949 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC32010250032 | String | 实例编号 |
| ├─command | ssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -Nf | String | SSH 连接指令 |
| ├─expireTime | 2025-01-16 14:32:00 | String | adb 链接有效期 |
| ├─enable | true | Boolean | ADB 状态 true:开启 false:关闭 |
| ├─key | 3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== | String | 连接密钥 |
| ├─adb | adb connect localhost:8577 | String | adb连接信息 |
请求示例
{
"padCode": "AC32010250032",
"enable": true
}
响应示例
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1736922808949,
"data": {
"padCode": "AC32010250032",
"command": "ssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -Nf",
"expireTime": "2025-01-16 14:32:00",
"enable": true,
"key": "3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==",
"adb": "adb connect localhost:8577"
}
}
批量获取ADB连接信息
(待上线) 根据实例编号列表批量获取或关闭adb连接信息。执行开启操作时若成功返回的连接信息不全,请先调用开启关闭ADB接口重新开启ADB后再重试。本接口单次最多支持10个实例。
接口地址
/vcpcloud/api/padApi/batch/adb
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ["AC32010250032","AC32010250033"] | String[] | 是 | 实例编号列表,数量上限10个 |
| enable | true | Boolean | 是 | 是否开启ADB,true为开启并返回连接信息,false为关闭ADB |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| ts | 1736922808949 | Long | 时间戳 |
| data | Object | ||
| ├─successList | Object[] | 批量执行成功的结果列表 | |
| │ ├─padCode | AC32010250032 | String | 实例编号 |
| │ ├─command | ssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -Nf | String | SSH连接指令 |
| │ ├─expireTime | 2025-01-16 14:32:00 | String | adb链接有效期 |
| │ ├─enable | true | Boolean | ADB状态 true:开启 false:关闭 |
| │ ├─key | 3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== | String | 连接密钥 |
| │ ├─adb | adb connect localhost:8577 | String | adb连接信息 |
| ├─failedList | Object[] | 批量执行失败的结果列表 | |
| │ ├─padCode | AC32010250034 | String | 实例编号 |
| │ ├─errorMsg | 实例未运行 | String | 失败原因 |
| │ ├─errorCode | PAD_NOT_RUNNING | String | 错误码 |
请求示例
{
"padCodes": [
"AC32010250032",
"AC32010250033"
],
"enable": true
}
响应示例
{
"code": 200,
"msg": "success",
"traceId": "ewbssur1jbwg",
"ts": 1736922808949,
"data": {
"successList": [
{
"padCode": "AC32010250032",
"command": "ssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -Nf",
"expireTime": "2025-01-16 14:32:00",
"enable": true,
"key": "3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==",
"adb": "adb connect localhost:8577"
}
],
"failedList": [
{
"padCode": "AC32010250034",
"errorMsg": "实例未运行",
"errorCode": "PAD_NOT_RUNNING"
}
]
}
}
云机转移
将指定云手机实例转移到另一个账户(通过接收方账户邮箱)。
接口地址
/vcpcloud/api/padApi/confirmTransfer
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ["ACXXXXXXXXX"] | String[] | 是 | 要转移的实例编号列表 |
| makeOverMobilePhone | "XXXX.gmail.com" | String | 是 | 接收转移设备的账户邮箱 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1731055053049 | Long | 时间戳 |
| data | true | Boolean | 转移是否成功(true/false) |
请求示例
{
"padCodes": [
"ACXXXXXXXXX"
],
"makeOverMobilePhone": "XXXX.gmail.com"
}
响应示例
{
"msg": "success",
"code": 200,
"data": true,
"ts": 1731055053049
}
模拟触控
通过传入xy坐标,模拟在实例中的触控事件(按下、抬起、触摸中)
异常检查:如果2s内有重复请求,报错提示内容:请勿频繁操作
接口地址
/vcpcloud/api/padApi/simulateTouch
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| padCodes | 2200 | String[] | 需要触发点击的实例编码 |
| width | 120 | Integer | 容器宽度 |
| height | 120 | Integer | 容器高度 |
| pointCount | 1 | Integer | 多点触控(多个手指点击云机屏幕效果),默认1,范围1-10,传其他数字均使用默认值 |
| positions | [{"actionType":0,"x":100,"y":100,"nextPositionWaitTime":20}] | Object[] | 点击坐标组 |
| ├─ actionType | 1 | Integer | 操作类型(0:按下;1:抬起;2:触摸中) |
| ├─ x | 100 | float | 点击的x坐标 |
| ├─ y | 100 | float | 点击的y坐标 |
| ├─ nextPositionWaitTime | 100 | Integer | 多组坐标时,触发下一组点击坐标的等待间隔时间ms毫秒值 |
| ├─ swipe | -1 | float | 滚动距离 -1 下划 1 上划 |
| ├─ touchType | gestureSwipe | String | gestureSwipe划动事件 gesture触控事件 keystroke按键事件(默认是按下抬起) |
| ├─ keyCode | 1 | Integer | 用于标识用户按下或释放的具体按键 |
| ├─ pressure | 0.5 | float | 触点压力 |
| ├─ size | 0.5 | float | 触点占屏幕面积比例 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736922808949 | Long | 时间戳 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| data | Object[] | ||
| ├─padCode | AC32032 | String | 实例编号 |
| ├─taskId | 10004759 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
| ├─taskStatus | 1 | Integer | 任务状态(-1:任务已存在,请勿重复提交;1:任务已添加) |
请求示例
{
"padCodes": [
"实例编号"
],
"width": 1080,
"height": 1920,
"pointCount":1,
"positions": [
{
"actionType": 0,
"x": 100,
"y": 100,
"nextPositionWaitTime": 20,
"swipe":-1,
"touchType":"gestureSwipe",
"keyCode":1,
"pressure":0.5,
"size":0.5
},
{
"actionType": 2,
"x": 110,
"y": 110,
"nextPositionWaitTime": 22
},
{
"actionType": 2,
"x": 120,
"y": 120,
"nextPositionWaitTime": 23
},
{
"actionType": 1,
"x": 120,
"y": 120
}
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"traceId": "ewab8qjqbaio",
"data": [
{
"taskId": 100059,
"padCode": "ACP00001",
"vmStatus": 0,
"taskStatus": 1
},
{
"taskId": 100060,
"padCode": "ACP00001",
"vmStatus": 0,
"taskStatus": 1
}
]
}
实例操作任务详情
查询指定实例操作任务的执行结果详细信息。
接口地址
/vcpcloud/api/padApi/padTaskDetail
请求方式
POST
请求数据类型
application/json
请求Query参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Integer[] | 是 | ||
| ├─taskId | 1 | Integer | 是 | 任务ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| data | Object [] | 子任务列表详情 | |
| ├─ taskId | 1 | Integer | 子任务ID |
| ├─ padCode | VP22020020793 | String | 实例标识 |
| ├─ taskStatus | 2 | String TODO类型使用错误 | 任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成;9:排队中) |
| ├─ endTime | 1713429401000 | Long | 子任务结束时间戳 |
| ├─ taskContent | “” | String | 任务内容 |
| ├─ taskResult | “” | String | 任务结果 |
| ├─ errorMsg | “” | String | 错误信息 |
请求示例
{
"taskIds":[1,2]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1756313781081,
"data": [
{
"taskId": 22323794,
"padCode": "ACN250828DYJE95Z",
"taskStatus": 2,
"endTime": null,
"taskContent": null,
"taskResult": null,
"errorMsg": null
}
],
"traceId": "ewab8kpxb7k0"
}
获取实例执行脚本结果
通过执行脚本任务ID来获取实例执行脚本结果。
接口地址
/vcpcloud/api/padApi/executeScriptInfo
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Integer [] | 是 | 数组长度为1-100 | |
| ├─ | 1 | Integer | 否 | 任务ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewc84g8si0oy | String | 链路追踪ID |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC22020020793 | String | 实例编号 |
| ├─taskStatus | 3 | Integer | 任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| ├─endTime | 1756021166163 | Long | 任务执行结束时间 |
| ├─taskContent | Success | String | 任务内容 |
| ├─taskResult | Success | String | 任务结果 |
| ├─errorMsg | 实例不存在 | String | 失败的原因 |
请求示例
{
"taskIds": [1]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1752214432301,
"data": [
{
"taskId": 49884,
"padCode": "ATP250707FNSVRMC",
"taskStatus": 3,
"endTime": 1752214271000,
"taskContent": null,
"taskResult": null,
"errorMsg": "调用Adb命令成功"
}
],
"traceId": "erl0i57h6v40"
}
获取实例截图结果
(待上线) 通过截图任务 ID 来获取实例的截图结果。
接口URL
/vcpcloud/api/padApi/screenshotInfo
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Integer [] | 是 | ||
| ├─ | 1 | Integer | 否 | 任务ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| ts | 1756021167163 | Long | 时间戳 |
| data | - | Object[] | 任务列表详情 |
| ├─ taskId | 1 | Integer | 任务ID |
| ├─ taskStatus | 3 | Integer | 任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| ├─ padCode | AC22020020793 | String | 实例编号 |
| ├─ taskContent | Success | String | 任务内容 |
| ├─ taskResult | Success | String | 任务结果 |
| ├─ endTime | 1756121167163 | String | 任务执行结束时间 |
请求示例
{
"taskIds": [1]
}
响应示例
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts":1713773577581,
"data":[
{
"taskId": 1,
"taskStatus": 3,
"padCode": "AC22020020793",
"taskContent": "Success",
"taskResult": "Success",
"endTime": 1756121167163
}
]
}
实例重启重置执行结果
(待上线) 通过任务ID来获取实例重启重置执行结果。
接口地址
/vcpcloud/api/padApi/padExecuteTaskInfo
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Integer [] | 是 | ||
| ├─ | 1 | Integer | 是 | 任务ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| traceId | ewbssur1jbwg | String | 链路追踪ID |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─taskStatus | 3 | Integer | 任务状态:(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| ├─ endTime | 1756021166163 | Long | 任务执行结束时间 |
| ├─ taskContent | “” | String | 任务内容 |
| ├─ taskResult | Success | String | 任务结果 |
请求示例
{
"taskIds": [1]
}
响应示例
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1756021167163
"data":[
{
"taskId": 1,
"padCode": "AC22030022911",
"taskStatus": 3,
"endTime": 1756021166163,
"taskContent": null,
"taskResult": "Success"
}
]
}
实例列表信息
根据查询条件分页获取实例列表信息。
接口地址
/vcpcloud/api/padApi/infos
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| page | 1 | Integer | 是 | 页码 |
| rows | 10 | Integer | 是 | 条数 |
| padType | real | String | 否 | 实例类型(virtual:虚拟机;real:真机) |
| padCodes | String[] | 否 | ||
| ├─ | AC22010020062 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | Object | ||
| ├─page | 1 | Integer | 当前页 |
| ├─rows | 10 | Integer | 每页的数量 |
| ├─size | 1 | Integer | 当前页的数量 |
| ├─total | 1 | Integer | 总记录数 |
| ├─totalPage | 1 | Integer | 总页数 |
| ├─pageData | object[] | 列表 | |
| ├─├─padCode | VP21020010391 | String | 实例编号 |
| ├─├─padGrade | q1-2 | String | 实例开数(q1-6六开,q1-2二开) |
| ├─├─padStatus | 10 | String | 实例状态 (10-运行中 11-重启中 12-重置中 13-升级中 14-异常 15-未就绪) |
| ├─├─deviceIp | 192.168.0.0 | String | 云机ip |
| ├─├─padIp | 192.168.0.0 | String | 实例ip |
| ├─├─apps | String[] | 安装的应用列表 | |
| ├─├─├─ | armcloud001 | String | 安装的应用 |
请求示例
{
"page": 1,
"rows": 10,
"padCodes": [
"AC21020010391"
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"page": 1,
"rows": 1,
"size": 1,
"total": 1,
"totalPage": 1,
"pageData": [
{
{
"padCode": "AC21020010391",
"padGrade": "q2-4",
"padStatus": 10,
"idcCode": "8e61ad284bc105b877611e6fef7bdd17",
"deviceIp": "172.31.2.34",
"padIp": "10.255.1.19",
"apps": [
"armcloud001"
]
}
]
}
}
导入通话记录
此接口允许将通话记录数据导入至云手机中。接口在导入过程中,会自动检测云手机通讯录中已保存的联系人,并将这些联系人对应的名称显示在通话记录中,便于用户快速识别联系人。
接口地址
/vcpcloud/api/padApi/addPhoneRecord
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | 是 | 需要编辑通话记录的实例编码 |
| callRecords | [{"number":"18009781201","inputType":1,"duration":30,"timeString":"2025-05-06 14:00:09"}] | Object[] | 是 | 通话记录 |
| ├─ number | 13900000000 | String | 是 | 电话号码 |
| ├─ inputType | 1 | int | 是 | 通话类型(1:拨出;2:接听;3:未接) |
| ├─ duration | 60 | int | 是 | 通话时长;单位是秒,未接电话是0秒 |
| ├─ timeString | 2025-05-08 12:30:00 | String | 否 | 通话时长 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736922808949 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC32032 | String | 实例编号 |
| ├─taskId | 10004759 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
请求示例
{
"padCodes": [
"实例编号"
],
"callRecords": [
{
"number": "18009781201",
"inputType": 1,
"duration": 30,
"timeString": "2025-05-06 14:00:09"
},
{
"number": "18009781202",
"inputType": 2,
"duration": 60,
"timeString": "2025-05-07 14:00:09"
},
{
"number": "18009781203",
"inputType": 3,
"duration": 0
}
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"taskId": 100059,
"padCode": "ACP00001",
"vmStatus": 0
},
{
"taskId": 100060,
"padCode": "ACP00001",
"vmStatus": 0
}
]
}
云机文本信息输入
在云机中预先聚焦好输入框,调用该接口传入指定的文本信息内容后,文本展示在云机指定位置。
接口地址
/vcpcloud/api/padApi/inputText
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | 是 | 实例编码 |
| text | hello123 | String | 是 | 输入文本 |
| 响应参数 |
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736922808949 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC32032 | String | 实例编号 |
| ├─taskId | 10004759 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
| ├─taskStatus | 1 | String | 任务当前状态 |
请求示例
{
"padCodes": [
"ACP250509FECQN33",
"ACP250509T1VME44",
"ACP25050917AYX11"
],
"text": "12345678"
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACP250509FECQN33",
"vmStatus": 0,
"taskId": 10013014,
"taskStatus": 1
},
{
"padCode": "ACP250509T1VME44",
"vmStatus": 0,
"taskId": 10013015,
"taskStatus": 1
},
{
"padCode": "ACP25050917AYX11",
"vmStatus": 0,
"taskId": 10013016,
"taskStatus": 1
}
],
"ts": 1746797852244
}
模拟发送短信
向实例内模拟下发一条短信,支持批量实例。(暂时限定AOSP13、14)
接口地址
/vcpcloud/api/padApi/simulateSendSms
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ["ACN2505060777"] | String[] | 是 | 实例编码列表,数量1-100个 |
| senderNumber | 13800000000 | String | 是 | 发送方号码,不支持大陆号码。(格式:长度限制16位,允许数字、英文、空格、+-号) |
| smsContent | 这是一条测试短信。 | String | 是 | 短信内容(长度限制127位) |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736922808949 | Long | 时间戳 |
| traceId | ewb123abc | String | 追踪ID |
| data | true | Boolean | 是否调用成功 |
请求示例
{
"padCodes": ["ACN2505060777"],
"senderNumber": "13800000000",
"smsContent": "这是一条测试短信。"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1736922808949,
"traceId": "ewb123abc",
"data": true
}
重置GAID
调用该接口传入指定实例编号或者实例分组,将重置云机中的 advertising ID(Reset advertising ID)
接口地址
/vcpcloud/api/padApi/resetGAID
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC21020010001 | String | 是 | 实例编号 |
| resetGmsType | GAID | String | 是 | 重置gms类型, 可选:GAID |
| oprBy | zhangsan | String | 否 | 操作人 |
| taskSource | OPEN_PLATFORM | String | 是 | 任务来源,可选:OPEN_PLATFORM |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"ACPXXXXXXXXXXXXXXX"
],
"taskSource": "OPEN_PLATFORM",
"oprBy": "admin",
"resetGmsType": "GAID"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717559681604,
"data": [
{
"taskId": 88,
"padCode": "AC22030010001",
"vmStatus": 1
},
{
"taskId": 89,
"padCode": "AC22030010002",
"vmStatus": 0
}
]
}
注入音频到实例麦克风
将一个音频文件注入到实例的麦克风,代替麦克风收音的接口 备注:目前仅支持注入pcm格式的音频文件,请处理转好格式后再进行上传
接口地址
/vcpcloud/api/padApi/injectAudioToMic
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | 是 | 实例编码 |
| url | http://localhost/abc | String | 否 | 音频文件下载地址 (此字段和fileUniqueId 2选1传值) |
| fileUniqueId | 8fc73d05371740008ea27a2707496a82 | String | 否 | 文件id唯一标识(此字段和url 2选1传值) |
| enable | true | Boolean | 是 | 注入开关 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736922808949 | Long | 时间戳 |
| data | Object[] | ||
| ├─padCode | AC32032 | String | 实例编号 |
| ├─taskId | 10004759 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
| ├─taskStatus | 1 | String | 任务当前状态 |
请求示例
{
"padCodes": [
"ACP250509FECQN33","ACP250509T1VME44","ACP25050917AYX11
],
"url":"http://localhost/abc ",
"fileUniqueId":"8a6d0df189ef4b0e83858fd9eeb7620c",
"enable":true
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACP250509FECQN33",
"vmStatus": 0,
"taskId": 10013014,
"taskStatus": 1
},
{
"padCode": "ACP250509T1VME44",
"vmStatus": 0,
"taskId": 10013015,
"taskStatus": 1
},
{
"padCode": "ACP25050917AYX11",
"vmStatus": 0,
"taskId": 10013016,
"taskStatus": 1
}
],
"ts": 1746797852244
}
创建本地实例备份
(待上线) 用于创建本地实例备份接口。
接口地址
/vcpcloud/api/padApi/localPodBackup
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | PAD_001 | String | 是 | 实例编号,不能为空,最大64字符 |
| backupName | backnameinfo | String | 否 | 备份名称,最大128字符 |
| backupPath | backup/db | String | 否 | 不要/开头,备份数据保存路径,不传则默认保存在根目录 /{备份ID}/ 下,最大256字符 |
| ossConfig | {...} | Object | 是 | 对象存储配置,需要支持 S3 协议,不能为空且永久授权 |
| ├─ endpoint | oss-cn-shanghai.aliyuncs.com | String | 是 | 对象存储 endpoint,最大128字符 |
| ├─ bucket | pad-backup | String | 是 | 对象存储 bucket 名称,最大128字符 |
| ├─ accessKey | AKIA123456 | String | 是 | 对象存储 accessKey,最大128字符 |
| ├─ secretKey | xxxxxxx | String | 是 | 对象存储 secretKey,最大128字符 |
| ├─ protocol | https | String | 是 | 对象存储访问协议:http 或 https,最大16字符 |
| ├─ region | cn-shanghai | String | 是 | OSS 地域,最大32字符 |
| ├─ securityToken | xxxxxxxxx | String | credentialType=2-是 | 临时凭证token |
| ├─ expiration | 2025-12-01T21:38:49z | String | credentialType=2-是 | 过期时间 |
| credentialType | 1 | Integer | 否 | 凭证类型:1-永久凭证,2-临时凭证 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码(200表示成功) |
| msg | success | String | 接口请求状态信息 |
| ts | 1758271736814 | Long | 时间戳 |
| data | {...} | Object | 返回的任务信息对象 |
| ├─ taskId | 59 | Long | 任务ID |
| ├─ padCode | ACP250919HTTMIBQ | String | 实例编号 |
| ├─ vmStatus | 0 | Integer | 实例在线状态:0=离线,1=在线 |
| ├─ taskStatus | 1 | Integer | 任务状态:-1=任务已存在(请勿重复提交),1=任务已添加 |
| ├─ errMsg | null | String | 描述或错误信息 |
| ├─ backupName | backupName | String | 备份名称 |
| ├─ backupId | bkp-ACP250919HTTMIBQ-1758271735910 | String | 备份ID |
| traceId | eyj68nk6dnuo | String | 请求链路追踪ID,用于问题排查 |
请求示例
{
"padCode": "ACP25091XXXXXX15",
"backupName": "backnameinfo",
"backupPath": "backup/data/",
"credentialType": 1,
"ossConfig": {
"endpoint": "oss-cn-xxxxx.xxxxx.com",
"bucket": "armcloud-cn",
"accessKey": "LTAI5txxxxxxxYC",
"secretKey": "kjgvYxxxxxxxxxxx8URWU",
"protocol": "httpxxxx",
"region": "cn-xxxxx"
}
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1758271736814,
"data": {
"taskId": 59,
"padCode": "ACP25091XXXXXX15",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null,
"backupName": "backnameinfo",
"backupId": "bkp-ACP25091XXXXXX15-1758271735910"
},
"traceId": "eyj68nk6dnuo"
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 220025 | 当前本地实例存在其他正在执行或待执行的任务,请等待任务执行完毕后再试! | 等待任务执行完成后再尝试 |
| 220026 | 仅支持本地实例备份! | 确认操作实例为本地实例 |
| 220029 | 当前实例状态不在运行中 | 确认实例处于运行中 |
| 220033 | 当前实例CBS版本过低,不支持备份或者还原 | 联系客户经理升级板卡系统到最新版本后再尝试 |
创建本地实例还原
(待上线) 用于创建本地实例备份文件还原接口。
接口地址
/vcpcloud/api/padApi/localPodRestore
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| backupId | bkp-ACP250917XSYESH3-1758097064458 | String | 是 | 备份Id 最大128字符 |
| padCode | ACP250917CLAQJ15 | String | 是 | 实例编号,不能为空,最大64字符 |
| ossConfig | {...} | Object | 是 | 对象存储配置,需要支持 S3 协议,不能为空且永久授权 |
| ├─ endpoint | oss-cn-shanghai.aliyuncs.com | String | 是 | 对象存储 endpoint,最大128字符 |
| ├─ bucket | pad-backup | String | 是 | 对象存储 bucket 名称,最大128字符 |
| ├─ accessKey | AKIA123456 | String | 是 | 对象存储 accessKey,最大128字符 |
| ├─ secretKey | xxxxxxx | String | 是 | 对象存储 secretKey,最大128字符 |
| ├─ protocol | https | String | 是 | 对象存储访问协议:http 或 https,最大16字符 |
| ├─ region | cn-shanghai | String | 是 | OSS 地域,最大32字符 |
| ├─ securityToken | xxxxxxxxx | String | credentialType=2-是 | 临时凭证token |
| ├─ expiration | 2025-12-01T21:38:49z | String | credentialType=2-是 | 过期时间 |
| credentialType | 1 | Integer | 否 | 凭证类型:1-永久凭证,2-临时凭证 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码(200表示成功) |
| msg | success | String | 接口请求状态信息 |
| ts | 1758271736814 | Long | 时间戳 |
| data | {...} | Object | 返回的任务信息对象 |
| ├─ taskId | 59 | Long | 任务ID |
| ├─ padCode | ACP250919HTTMIBQ | String | 实例编号 |
| ├─ vmStatus | 0 | Integer | 实例在线状态:0=离线,1=在线 |
| ├─ taskStatus | 1 | Integer | 任务状态:-1=任务已存在(请勿重复提交),1=任务已添加 |
| ├─ errMsg | null | String | 描述或错误信息 |
| traceId | eyj68nk6dnuo | String | 请求链路追踪ID,用于问题排查 |
请求示例
{
"padCode": "ACP25091XXXXXJ15",
"backupId": "bkp-ACP25091XXXXXJ15-1758097064458",
"credentialType": 1
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1758271736814,
"data": {
"taskId": 59,
"padCode": "ACP25091XXXXXX15",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null
},
"traceId": "eyj68nk6dnuo"
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 220025 | 当前本地实例存在其他正在执行或待执行的任务,请等待任务执行完毕后再试! | 等待任务执行完成后再尝试 |
| 220027 | 当前本地实例备份文件不存在,请检查文件后再试! | 检查备份文件是否存在 |
| 220030 | 当前实例状态不在运行中或者异常中 | 确认实例处于运行或异常状态 |
| 220031 | 备份的文件不属于当前用户 | 确认备份实例归属权限 |
| 220032 | 当前备份ID实例信息不存在,无法辨别当前备份文件是否属于当前用户 | 检查备份ID是否正确 |
| 220033 | 当前实例CBS版本过低,不支持备份或者还原 | 升级实例CBS版本后再尝试 |
本地实例备份结果查询
(待上线) 根据实例编号获取本地实例可用备份。
接口地址
/vcpcloud/api/padApi/localPodBackupSelectPage
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| page | 1 | Integer | 否 | 当前页 |
| rows | 10 | Integer | 否 | 每页的数量 |
| padCodes | String[] | 是 | ||
| ├─padCode | ACP5C24S9G6xxxxx | String | 是 | 实例编号,最大支持传入100条实例 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object | 返回的数据对象 | |
| ├─ page | 1 | Integer | 当前页 |
| ├─ rows | 10 | Integer | 每页的数量 |
| ├─ size | 1 | Integer | 当前页的数量 |
| ├─ total | 1 | Integer | 总记录数 |
| ├─ totalPage | 1 | Integer | 总页数 |
| ├─ pageData | Object[] | 列表 | |
| ├─├─ padCode | ACP5C24S9G6xxxxx | String | 实例编号 |
| ├─├─ backupId | bkp-xxxxxS4QBMGEW1ZX-1764728535556 | String | 备份ID |
| ├─├─ backupName | backupName | String | 备份名称 |
| ├─├─ backupPath | backup/db | String | 备份数据保存路径 |
| ├─├─ endpoint | backupName | String | 备份名称(endpoint) |
| ├─├─ bucket | pad-backup | String | 对象存储 bucket 名称,最大128字符 |
| ├─├─ protocol | https | String | 对象存储访问协议:http 或 https,最大16字符 |
| ├─├─ region | cn-shanghai | String | OSS 地域,最大32字符 |
| traceId | eyj68nk6dnuo | String | 请求链路追踪ID,用于问题排查 |
请求示例
{
"padCodes":["ACP5C24S9G6xxxxx"],
"page":1,
"rows":10
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1764819200220,
"data": {
"page": 1,
"rows": 10,
"size": 1,
"total": 1,
"totalPage": 1,
"pageData": [
{
"padCode": "ACP5C24S9G6xxxxx",
"backupId": "bkp-xxxxxS4QBMGEW1ZX-1764728535556",
"backupName": "android13-xxxx-虚拟机-img-25112665572-王者荣耀+抖音",
"backupPath": "backup/data/",
"endpoint": "oss-cn-xxxxxx.xxxxxxx.com",
"bucket": "armcloud-xx",
"protocol": "https",
"region": "cn-hongkong"
}
]
},
"traceId": "f61kq5vu5ts0"
}
清除进程并返回桌面
(待上线) 清除手机系统进程以外的所有进程,并返回桌面
接口地址
/vcpcloud/api/padApi/cleanAppHome
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ATP250814USYXXXX | String[] | 是 | 实例编码 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736922808949 | Long | 时间戳 |
| traceId | euz60azzc7i8 | String | 追踪ID |
| data | Object[] | ||
| ├─padCode | AC32032 | String | 实例编号 |
| ├─taskId | 10004759 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
| ├─taskStatus | 1 | String | 任务当前状态 |
请求示例
{
"padCodes": [
"ATP250814USYXXXX"
]
}
响应示例
{
"msg": "success",
"traceId": "euz60azzc7i8",
"code": 200,
"data": [
{
"padCode": "ATP250814USYXXXX",
"vmStatus": 0,
"taskId": 68951,
"taskStatus": 1
}
],
"ts": 1755172215886
}
无人直播
(待上线) 实例注入视频接口( 注意:目前只有img-25092692759 这个镜像版本可以使用,后续会更新其他哪些版本可以使用 )。支持通过单个视频地址injectUrl或地址列表injectUrls注入,二者至少传入一项且不能同时传入,injectUrls最多支持传入5个地址。
接口地址
/vcpcloud/api/padApi/unmannedLive
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ACN384345141346304 | String[] | 是 | 实例编码(1-100个) |
| injectSwitch | true | Boolean | 否 | 是否开启注入视频(true:开启 false:取消) 默认是false |
| injectLoop | false | Boolean | 否 | 是否循环播放(true:是 false:否) 默认是false |
| injectUrl | https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4 | String | 否 | 单个视频注入地址,支持 http/https/rtmp:// 以及本地路径,与injectUrls至少传一项 |
| injectUrls | ["https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4","rtmp://example.com/live"] | String[] | 否 | 视频注入地址列表(最多5个),支持 http/https/rtmp:// 以及本地路径,与injectUrl至少传一项 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1759134336311 | Long | 时间戳 |
| traceId | ezispr1m30n4 | String | 追踪ID |
| data | Object[] | ||
| ├─padCode | ACN384345141346304 | String | 实例编号 |
| ├─taskId | 20503 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
| ├─taskStatus | 1 | String | 任务当前状态 |
| ├─errMsg | null | String | 错误提示 |
请求示例
{
"padCodes": ["ACN384345141346304"],
"injectSwitch": true,
"injectLoop": false,
"injectUrl": "https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4",
"injectUrls": [
"https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4",
"rtmp://example.com/live/unmanned01"
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 20503,
"padCode": "ACN384345141346304",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null
}
],
"traceId": "ezispr1m30n4"
}
图片注入
(待上线) 实例注入图片接口
接口地址
/vcpcloud/api/padApi/injectPicture
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | ACN2510166WZUPCJ | String[] | 是 | 实例编码(1-100个) |
| injectSwitch | true | Boolean | 否 | 是否开启注入图片(true:开启 false:取消) 默认是false |
| injectLoop | false | Boolean | 否 | 是否循环播放(true:是 false:否) 默认是false |
| injectUrl | https://file.vmoscloud.com/userFile/ac4e112d72f9ed724101f510e774001f.JPG | String | 是 | 图片注入地址,支持 http https rtmp:// |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1759134336311 | Long | 时间戳 |
| traceId | ezispr1m30n4 | String | 追踪ID |
| data | Object[] | ||
| ├─padCode | ACN384345141346304 | String | 实例编号 |
| ├─taskId | 20503 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
| ├─taskStatus | 1 | String | 任务当前状态 |
| ├─errMsg | null | String | 错误提示 |
请求示例
{
"padCodes": ["ACN2510166WZUPCJ"],
"injectSwitch": true,
"injectLoop": false,
"injectUrl": "https://file.vmoscloud.com/userFile/ac4e112d72f9ed724101f510e774001f.JPG"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 28247,
"padCode": "ACN2510166WZUPCJ",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null
}
],
"traceId": "ezispr1m30n4"
}
{
"code" : 200,
"data" : 2,
"msg" : "success",
"ts" : 1734502541732
}
用户镜像分页
(待上线)接口地址
/vcpcloud/api/padApi/userRomPage
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| name | CloudROM-13 | String | 否 | ROM名称 |
| androidVersion | 13 | String | 否 | 更新日志 |
| current | 1 | int | 是 | 当前页 |
| size | 10 | int | 是 | 分页大小 |
响应参数
| 字段名 | 示例值 | 类型 | 说明 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736326542985 | Long | 时间戳 |
| data | Object | ||
| ├─records | Object[] | 镜像列表 | |
| ├─├─id | 1 | int | 记录id |
| ├─├─name | CloudROM-13-01 | String | 镜像名称 |
| ├─├─androidVersion | 13 | String | 安卓版本 |
| ├─├─downloadUrl | 13 | String | 地址 |
| ├─├─imageId | 13 | String | 镜像id |
| ├─├─packageSize | 236978175 | int | 大小(单位:Byte) |
| ├─├─version | v1.0.0 | String | 版本 |
| ├─├─imageFailedRemark | String | 原因 | |
| ├─total | 1 | int | 总数 |
| ├─size | 10 | int | 每页大小 |
| ├─current | 1 | int | 当前页 |
| ├─pages | 1 | int | 总页数 |
请求示例
{
"name": "cloud",
"androidVersion": 13,
"current": 1,
"size": 10
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"records": [
{
"id": 27,
"name": "CloudROM-13-01",
"androidVersion": "13",
"downloadUrl": "https://file.vmoscloud.com/userFile/userRom/d281d848eff49adee2dda2475235b80b2.tar",
"imageId": "img-250
### 应用管理
#### **应用启动**
根据实例编号和应用包名对实例进行应用启动的操作。
**接口地址**
> /vcpcloud/api/padApi/startApp
**请求方式**
> POST
**请求数据类型**
> application/json
**请求Body参数**
参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述
--- | --- | --- | --- | ---
├─pkgName | xxx.test.com | String | 是 | 包名
├─padCodes | | String[] | 是 |
├─├─ | AC22010020062 | String | 是 | 实例编号
**响应参数**
参数名 | 示例值 | 参数类型 | 参数描述
--- | --- | --- | ---
code | 200 | Integer | 状态码
msg | success | String | 响应消息
ts | 1756021167163 | Long | 时间戳
data | | Object[] |
├─taskId | 1 | Integer | 任务ID
├─padCode | AC22010020062 | String |实例编号
├─vmStatus | 1 | Integer |实例在线状态(0:离线;1:在线)
**请求示例**
```javascript
{
"padCodes": [
"AC22010020062"
],
"pkgName": "xxx.test.com"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC22010020062",
"vmStatus": 1
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110008 | 启动应用失败 | 重启云机后再启动应用 |
应用卸载
根据实例编号和应用包名批量对实例进行应用卸载的操作。
接口地址
/vcpcloud/api/padApi/uninstallApp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| apkPackageList | String[] | 是 | 包名集合 | |
| ├─ | com.geniuscloud.overseas | String | 是 | 应用包名 |
| padCodeList | String[] | 是 | ||
| ├─ | AC22010020062 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
请求示例
{
"padCodeList": ["AC32010601132"],
"apkPackageList": ["com.geniuscloud.overseas"]
}
响应示例
{
"msg:: "success",
"code": 200,
"ts": 1746694236404
}
应用停止
根据实例编号和应用包名对实例进行应用停止的操作。
接口地址
/vcpcloud/api/padApi/stopApp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| ├─pkgName | xxx.test.com | String | 是 | 包名 |
| ├─padCodes | String[] | 是 | ||
| ├─├─ | AC22010020062 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC22010020062 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"AC22010020062"
],
"pkgName": "xxx.test.com"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC22010020062",
"vmStatus": 1
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110010 | 停止应用失败 | 重启云机关闭应用 |
应用重启
根据实例编号和应用包名对实例进行应用重启的操作。
接口地址
/vcpcloud/api/padApi/restartApp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| ├─pkgName | xxx.test.com | String | 是 | 包名 |
| ├─padCodes | String[] | 是 | ||
| ├─├─ | AC22010020062 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | ||
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC22010020062 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"AC22010020062"
],
"pkgName": xxx.test.com
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC22010020062",
"vmStatus": 1
}
]
}
错误码
| 错误码 | 错误说明 | 操作建议 |
|---|---|---|
| 110009 | 重启应用失败 | 重启云机后再启动应用 |
实例安装应用列表查询
查询实例安装应用列表信息。
接口地址
/vcpcloud/api/padApi/listInstalledApp
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22010020062 | String | 是 | 实例编号 |
| appName | String | 否 | 应用名称 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1713773577581 | Long | 时间戳 |
| data | Object[] | ||
| ├─ padCode | AC22010020062 | String | 实例编号 |
| ├─ apps | Object[] | 应用列表 | |
| │ ├─ appName | TapTap | String | 应用名称 |
| │ ├─ packageName | com.taptap.global | String | 应用包名 |
| │ ├─ versionName | 3.49.0-full.100000 | String | 应用版本号 |
| │ ├─ versionCode | 349001000 | String | 应用版本代码 |
| │ ├─ appState | 0 | Integer | 0 已完成 1安装中 2下载中 |
请求示例
{
"padCodes": ["AC32010780841"],
"appName": null
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "AC32010780841",
"apps": [
{
"appName": "TapTap",
"packageName": "com.taptap.global",
"versionName": "3.49.0-full.100000",
"versionCode": "349001000",
"appState": 0
}
]
}
],
"ts": 1740020993436
}
任务管理
实例操作任务详情
查询指定实例操作任务的执行结果详细信息。
接口地址
/vcpcloud/api/padApi/padTaskDetail
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Integer[] | 是 | ||
| ├─taskId | 1 | Integer | 是 | 任务ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object [] | 子任务列表详情 | |
| ├─ taskId | 1 | Integer | 子任务ID |
| ├─ padCode | VP22020020793 | String | 实例标识 |
| ├─ taskStatus | 2 | String TODO类型使用错误 | 任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| ├─ endTime | 1713429401000 | Long | 子任务结束时间戳 |
| ├─ taskContent | “” | String | 任务内容 |
| ├─ taskResult | “” | String | 任务结果 |
| ├─ errorMsg | “” | String | 错误信息 |
请求示例
{
"taskIds":[1,2]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1716283460673,
"data": [
{
"taskId": 1,
"padCode": "AC22030022441",
"taskStatus": 2,
"endTime": 1713429401000,
"taskContent": null,
"taskResult": null
},
{
"taskId": 2,
"padCode": "AC22030022442",
"taskStatus": 2,
"endTime": 1713429401001,
"taskContent": null,
"taskResult": null
}
]
}
文件任务详情
查询指定文件任务的执行结果详细信息。
接口地址
/vcpcloud/api/padApi/fileTaskDetail
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Integer[] | 是 | ||
| ├─taskId | 1 | Integer | 是 | 任务ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | 任务列表详情 | |
| ├─ taskId | 1 | Integer | 子任务ID |
| ├─ appId | 134 | Long | 应用id |
| ├─ fileUniqueId | e2c07491309858c5cade4bfc44c03724 | String | ⽂件唯⼀标识 |
| ├─ fileName | xx.apk | String | 文件名称 |
| ├─ taskStatus | 2 | Integer | 任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| ├─ endTime | 1713429401000 | Long | 子任务结束时间戳 |
请求示例
{
"taskIds":[
1,2
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1716283460673,
"data": [
{
"taskId": 1,
"appId": 134,
"fileUniqueId": "e2c07491309858c5cade4bfc44c03724",
"fileName": "xx.apk",
"taskStatus": 2,
"endTime": 1713429401000
},
{
"taskId": 2,
"appId": 135,
"fileUniqueId": "e2c07491309858c5cade4bfc43c03725",
"fileName": "xx.apk",
"taskStatus": 2,
"endTime": 1713429401001
}
]
}
自动化管理
做自动化任务时请不要操作云机,去做重启、重置、升级镜像、换机等操作云机的业务,否则会影响自动化任务。
自动化任务列表查询
自动化任务列表查询。
接口地址
/vcpcloud/api/padApi/autoTaskList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Long[] | 否 | 任务id数组 | |
| taskType | 1 | Integer | 否 | 任务类型:1-登陆 2-编辑资料 3-搜索短视频 4-随机浏览视频 5-发布视频 6-发布图集 |
| page | 1 | Integer | 是 | 页码 |
| rows | 10 | Integer | 是 | 每页记录数 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736327056700 | Long | 时间戳 |
| data | Object | 数据详情 | |
| ├─ records | Object[] | 记录列表 | |
| │ ├─ taskId | 115 | Integer | 任务ID |
| │ ├─ userId | 14114 | Integer | 用户ID |
| │ ├─ equipmentId | 106588 | Integer | 设备编号 |
| │ ├─ padCode | AC32010180421 | String | 实例编号 |
| │ ├─ padName | zzzzz | String | 实例名称 |
| │ ├─ taskType | 1 | Integer | 任务类型:1-登陆 2-编辑资料 3-搜索短视频 4-随机浏览视频 5-发布视频 6-发布图集 |
| │ ├─ taskName | testAdd | String | 任务名称 |
| │ ├─ executionStatus | 0 | Integer | 执行状态:-2取消任务 -1 执行失败 0-待执行 1-执行中 2-执行成功 |
| │ ├─ plannedExecutionTime | 2025-01-09 00:00:00 | String | 计划执行时间 |
| │ ├─ executionEndTime | null | String | 执行结束时间 |
| │ ├─ createdTime | 2025-01-08 14:25:01 | String | 创建时间 |
| │ ├─ failureReason | null | String | 失败原因 |
| ├─ total | 46 | Integer | 总记录数 |
| ├─ size | 10 | Integer | 每页记录数 |
| ├─ current | 1 | Integer | 当前页码 |
| ├─ pages | 5 | Integer | 总页数 |
请求示例
{
"page": 1,
"rows": 10
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"records": [
{
"id": 121,
"taskId": 121,
"userId": 14114,
"equipmentId": 106653,
"padCode": "AC32010180522",
"padName": "V04",
"taskType": 1,
"taskName": "testAdd",
"executionStatus": 2,
"plannedExecutionTime": "2025-01-08 18:02:00",
"executionEndTime": "2025-01-08 18:08:11",
"createdTime": "2025-01-08 18:01:03",
"failureReason": null
}
],
"total": 46,
"size": 10,
"current": 1,
"pages": 5
},
"ts": 1736331989341
}
创建自动化任务
创建自动化任务。设备编号一定要传对(云手机列表接口有返回设备编号)。任务主要绑定在设备编号上,如果执行前操作了换机也不会影响设备丢失任务。(异步,会检测云机是否有下载TK应用,未下载会自动下载TK应用后再去执行任务。下载TK和执行任务期间勿手动操作云机),不同任务传参的请求不一致会有示例。
接口地址
/vcpcloud/api/padApi/addAutoTask
请求方式
POST
请求数据类型
application/json
登陆任务请求Body参数示例
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskName | testAdd | String | 是 | 任务名称 |
| remarks | 测试 | String | 否 | 备注 |
| taskType | 1 | Integer | 是 | 任务类型:1-登陆 2-编辑资料 3-搜索短视频 4-随机浏览视频 5-发布视频 6-发布图集 7-视频点赞评论 8-直播加热 |
| list | Object[] | 是 | 任务列表 | |
| ├─ equipmentId | 106653 | Integer | 是 | 设备编号 |
| ├─ padCode | AC32010180522 | String | 是 | 实例编号 |
| ├─ plannedExecutionTime | 2025-01-08 17:20:00 | String | 是 | 计划执行时间 |
| ├─ addInfo | 参考请求示例 | JSONObject | 是 | 任务参数(注:许按不同任务类型对应的格式填,否则任务失败) |
请求示例
{
"taskName": "testAdd",
"remarks": "测试",
"taskType": 1,
"list": [
{
"equipmentId": 106653,
"padCode": "AC32010180522",
"plannedExecutionTime": "2025-01-08 17:20:00",
"addInfo": {
"password": "zhouxi12....",
"username": "zzx833454@gmail.com"
}
}
]
}
登陆任务参数(任务类型-taskType:1)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| password | zzxxxx@gmail.com | String | 是 | 账号 |
| username | zzxxxx@gmail.com | String | 是 | 密码 |
编辑资料任务参数(任务类型-taskType:2)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| link | https://xxxx.png | String | 是 | 头像地址 大于 250x250 |
| username | test | String | 是 | 名称 |
搜索短视频任务参数(任务类型-taskType:3)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| tag | 标题 | String | 是 | 标签 |
| timeout | 10 | Integer | 是 | 观看时长(秒) 注:最多2小时,否则任务超时失败 |
随机浏览视频任务参数(任务类型-taskType:4)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| timeout | 10 | Integer | 是 | 观看时长(秒) 注:最多2小时,否则任务超时失败 |
| tag | “” | String | 否 | 标签 |
发布视频任务参数(任务类型-taskType:5)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| link | https://xxxx | String | 否 | 视频oss地址 |
| copywriting | test | String | 是 | 文案 |
| productId | null | String | 否 | 商品id |
发布图集任务参数(任务类型-taskType:6)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| links | [https://xxxx] | array[String] | 是 | 图片oss地址 最多十张 |
| copywriting | test | String | 是 | 文案 |
| bgm | bgm | String | 是 | 背景音乐名称 |
视频点赞评论任务参数(任务类型-taskType:7)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| timeout | 10 | Integer | 是 | 观看时长(秒) 注:最多2小时,否则任务超时失败 |
| tag | “” | String | 否 | 标签 |
| contents | ["wow"] | array[String] | 否 | 评论内容 注:目前仅支持1个,后续扩展 |
直播加热任务参数(任务类型-taskType:8)
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| timeout | 10 | Integer | 是 | 观看时长(秒) 注:最多2小时,否则任务超时失败 |
| liveRoomId | “xlavandulax” | String | 是 | 主播ID |
| contents | "wow" | String | 是 | 评论内容 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 0 | Integer | 状态码:0-成功 |
| msg | success | String | 响应消息 |
| ts | 1736327056700 | Long | 时间戳 |
| data | Object {} | 子任务列表详情 | |
| ├─ taskIds | Long[] | 任务ID数组 |
响应示例
{
"msg": "success",
"code": 200,
"taskIds": [
116
],
"ts": 1736327380399
}
自动化任务重试
自动化任务重试。
接口地址
/vcpcloud/api/padApi/reExecutionAutoTask
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Long[] | 是 | 任务ID数组 | |
| plannedExecutionTime | 2025-01-08 17:30:00 | Date | 是 | 计划执行时间 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| data | Object {} | 子任务列表详情 | |
| ts | 1736327056700 | Long | 时间戳 |
| ├─ taskIds | Long[] | 新任务ID数组 |
请求示例
{
"taskIds": [
109
],
"plannedExecutionTime": "2025-01-08 17:30:00"
}
响应示例
{
"msg": "success",
"code": 200,
"taskIds": [
118
],
"ts": 1736327771611
}
自动化任务取消
自动化任务取消。
接口地址
/vcpcloud/api/padApi/cancelAutoTask
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| taskIds | Long[] | 是 | 任务ID数组 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736327056700 | Long | 时间戳 |
请求示例
{
"taskIds": [
118
]
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1736327841671
}
云手机管理
新建/续费云手机
新建/续费云手机。(注意购买的商品套餐需在网页端是存在的,否则购买失败)
接口地址
/vcpcloud/api/padApi/createMoneyOrder
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| androidVersionName | Android13 | String | 是 | Android 版本:Android10、Android13、Android14 |
| goodId | 1 | Integer | 是 | 商品Id(对应 sku套餐列表的商品ID值-> goodTimes的.id) |
| goodNum | 1 | Integer | 是 | 商品数量 |
| autoRenew | true | Boolean | 是 | 是否自动续费(默认开启)true-开启、false-关闭 |
| equipmentId | 106626,106627 | String | 是 | (新购设备无需填写,续费设备必须填写)续费设备编号 (多台设备以逗号分割) |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object[] | 数据列表 | |
| ├─ id | 7644 | Integer | 数据唯一标识 |
| ├─ orderId | VMOS-CLOUD173630666722957907 | String | 订单编号 |
| ├─ equipmentId | 106662 | Integer | 设备ID |
| ├─ createTime | 2025-01-08 11:24:31 | String | 创建时间 |
| ├─ creater | 14114 | String | 创建人 |
| ts | 1736306672346 | Long | 时间戳 |
请求示例
{
"androidVersionName": "Android13",
"goodId": 1,
"goodNum": 1,
"autoRenew": true
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"id": 7644,
"orderId": "VMOS-CLOUD173630666722957907",
"equipmentId": 106662,
"createTime": "2025-01-08 11:24:31",
"creater": "14114"
}
],
"ts": 1736306672346
}
云机模拟触控
云机模拟触控接口,结果可以通过 实例操作任务详情 接口查询。
接口地址
/vcpcloud/api/padApi/simulateTouch
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | Object[] | 是 | 需要触发点击的实例编码 | |
| ├─ ACP250329MMRFCCT | String | 是 | 设备编号 | |
| width | 1080 | Integer | 是 | 触控容器宽度 |
| height | 1920 | Integer | 是 | 触控容器高度 |
| positions | Object[] | 是 | 触控坐标集合 | |
| ├─ actionType | 1 | Integer | 是 | 操作类型(0:按下;1:抬起;2:触摸中) |
| ├─ x | 100 | float | 是 | 点击的x坐标 |
| ├─ y | 100 | float | 是 | 点击的y坐标 |
| ├─ nextPositionWaitTime | 100 | Integer | 是 | 多组坐标时,触发下一组点击坐标的等待间隔时间ms毫秒值 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object[] | 数据列表 | |
| ├─ padCode | ACP250329MMRFCCT | String | 实例编号 |
| ├─ taskId | 10004759 | Long | 任务id |
| ├─ vmStatus | 0 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": [
"ACP250329MMRFCCT"
],
"width": 1080,
"height": 1920,
"positions": [
{
"actionType": 0,
"x": 100,
"y": 100,
"nextPositionWaitTime": 20
},
{
"actionType": 2,
"x": 110,
"y": 110,
"nextPositionWaitTime": 22
},
{
"actionType": 2,
"x": 120,
"y": 120,
"nextPositionWaitTime": 23
},
{
"actionType": 1,
"x": 120,
"y": 120
}
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"taskId": 100059,
"padCode": "ACP250329MMRFCCT",
"vmStatus": 0
},
{
"taskId": 100060,
"padCode": "ACP250329MMRFCCT",
"vmStatus": 0
}
]
}
安卓镜像版本集合
获取当前设备可以升级的镜像集合
接口地址
/vcpcloud/api/padApi/imageVersionList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | ACP250329MMRFCCT | String | 是 | 设备编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object[] | 数据列表 | |
| ├─ nowImgId | img-25033129396 | String | 当前设备镜像版本ID |
| ├─ hasNewVersion | false | Boolean | 是否存在可以升级的镜像版本 |
| ├─ imageVersionList | Object[] | 镜像版本列表 | |
| ├─├─ imageId | img-25033129396 | String | 镜像版本ID |
| ├─├─ version | 20250401 | Integer | 镜像版本 |
| ├─├─ versionName | 20250401 | String | 镜像版本名称 |
| ├─├─ publishType | released | String | 发布类型:released-稳定、beta-最新 |
| ├─├─ imageIllustrate | Fixed the issue that the Coffee Meet Begal app cannot activate location services | String | 镜像更新说明 |
| ├─├─ romSdkint | 14 | Integer | 安卓版本Code |
| ├─├─ romSdkName | Android 14 | String | 安卓版本说明 |
请求示例
{
"padCode": "ACP250329MMRFCCT"
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"nowImgId": "img-25033129396",
"imageManageList": [
{
"imageId": "img-25040148674",
"version": 20250401,
"versionName": "20250401",
"publishType": "released",
"imageIllustrate": "Fixed the issue that the Coffee Meet Begal app cannot activate location services",
"romSdkint": 34,
"romSdkName": "Android 14"
},
{
"imageId": "img-25033136513",
"version": 20250331,
"versionName": "20250331",
"publishType": "released",
"imageIllustrate": "Expand the tool model to add a blacklist",
"romSdkint": 34,
"romSdkName": "Android 14"
},
{
"imageId": "img-25040129277",
"version": 20250401,
"versionName": "20250401",
"publishType": "released",
"imageIllustrate": "termux supports root",
"romSdkint": 29,
"romSdkName": "Android 10"
},
{
"imageId": "img-25040872272",
"version": 30000013,
"versionName": "30000013",
"publishType": "beta",
"imageIllustrate": "B",
"romSdkint": 33,
"romSdkName": "Android 13"
},
{
"imageId": "img-25032893685",
"version": 20250328,
"versionName": "20250328",
"publishType": "released",
"imageIllustrate": "1.tools add language",
"romSdkint": 33,
"romSdkName": "Android 13"
}
],
"hasNewVersion": false
},
"ts": 1744181920213
}
设备预售购买
当库存不足时,可通过该接口预订购买设备(仅适用于租期30天及以上的云手机商品)。一旦库存恢复,系统将优先处理预售订单并自动发货。订单发货后,用户将收到邮件通知,并额外获赠1天使用时长。
接口地址
/vcpcloud/api/padApi/createMoneyProOrder
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| androidVersionName | Android13 | String | 是 | Android 版本:Android10、Android13、Android14 |
| goodId | 1 | Integer | 是 | 商品Id(对应 sku套餐列表的商品ID值) |
| goodNum | 1 | Integer | 是 | 商品数量 |
| autoRenew | true | Boolean | 是 | 是否自动续费(默认关闭)true-开启、false-关闭 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | VMOS-CLOUD174290228048631464 | String | 预售订单编号 |
请求示例
{
"androidVersionName": "Android13",
"goodId": 75,
"goodNum": 1,
"autoRenew": true
}
响应示例
{
"msg": "success",
"code": 200,
"data": "VMOS-CLOUD174290228048631464",
"ts": 1736306672346
}
查询预售订单结果详情
查询预售订单结果详情。可支持通过预售订单号、订单状态(1-待发货 2-已发货 为空默认全部)的方式进行查询
接口地址
/vcpcloud/api/padApi/queryProOrderList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| proBuyStatus | 2 | Integer | 否 | 1-待发货 2-已发货 为空默认全部 |
| orderId | VMOS-CLOUD174290228048631464 | Integer | 否 | 预售订单号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object[] | 数据列表 | |
| ├─ proBuyOrderId | VMOS-CLOUD174290228048631464 | String | 订单编号 |
| ├─ proBuyStatus | 2 | Integer | 1-待发货 2-已发货 |
| ├─ proBuyNumber | 1 | Integer | 购买数量 |
| ├─ createTime | 2025-03-25 19:31:21 | String | 创建时间 |
| ├─ payTime | 2025-03-25 19:31:21 | String | 支付时间 |
| ├─ endTime | 2025-03-25 19:41:33 | String | 发货时间 |
| ├─ orderPrice | 1399 | Integer | 订单金额(美分) |
| ├─ goodName | Samsung Galaxy A53 | String | 设备名称 |
| ts | 1736306672346 | Long | 时间戳 |
请求示例
{
"proBuyStatus": "2",
"orderId": "VMOS-CLOUD174290228048631464"
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"proBuyOrderId": "VMOS-CLOUD174290228048631464",
"proBuyStatus": 2,
"proBuyNumber": 1,
"createTime": "2025-03-25 19:31:21",
"payTime": "2025-03-25 19:31:21",
"endTime": "2025-03-25 19:41:33",
"orderPrice": 499,
"goodName": "V08"
},
{
"proBuyOrderId": "VMOS-CLOUD174323615535421664",
"proBuyStatus": 2,
"proBuyNumber": 1,
"createTime": "2025-03-29 16:16:22",
"payTime": "2025-03-29 16:16:22",
"endTime": "2025-03-29 16:18:03",
"orderPrice": 1399,
"goodName": "Samsung Galaxy A53"
}
],
"ts": 1743239203460
}
云手机列表
云手机列表。
接口地址
/vcpcloud/api/padApi/userPadList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | null | String | 否 | 实例编号 |
| equipmentIds | Integer[] | 否 | 设备编号数组 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1736235894274 | Long | 时间戳 |
| data | Object[] | 数据列表 | |
| ├─ padCode | AC32010180421 | String | 云机编号 (ACN开头的均为计时设备) |
| ├─ deviceIp | 172.30.5.43 | String | 云机物理机IP |
| ├─ padIp | 10.254.21.225 | String | 云机I虚拟P |
| ├─ cvmStatus | 100 | Integer | 云机状态 100-正常 101-截图中 102-重启中 103-重置中 104-异常 |
| ├─ screenshotLink | https://XXXXXX.png | String | 云机截图链接 |
| ├─ equipmentId | 106626 | Integer | 设备编号 |
| ├─ userId | 14114 | Integer | 用户ID |
| ├─ status | 1 | Integer | 设备状态 1-运行中 2-关机 3-开机中 |
| ├─ padName | V08 | String | 云机显示名称 |
| ├─ bootTime | 1735643626263 | Long | 云机使用时长 |
| ├─ cumulativeUseTime | null | Object | 设备累计使用时间 |
| ├─ lastBackupTime | null | Object | 上次备份时间 |
| ├─ maintainContent | null | Object | 维护内容 |
| ├─ goodId | 1 | Integer | 商品ID |
| ├─ goodName | i18n_Android13-V08 | String | 商品名称 |
| ├─ signExpirationTime | 2025-01-31 19:13:46 | String | 签约云机到期时间 |
| ├─ signExpirationTimeTamp | 1738322026000 | Long | 签约云机到期时间戳 |
| ├─ supplierType | 5 | String | 供应商类型 |
| ├─ androidVersionAvatar | https://XXXX.png | String | Android版本头像 |
| ├─ configName | V08 | String | 商品型号名称 |
| ├─ androidVersionAvatar2 | https://XXX.png | String | Android版本头像2 |
| ├─ androidVersionAvatar3 | https://XXX.png | String | Android版本头像3 |
| ├─ androidVersion | 13 | String | Android版本 |
| ├─ authorizedUserId | null | Object | 授权用户ID |
| ├─ authorizedExpirationTime | null | Object | 授权过期时间 |
| ├─ authorizedExpirationTimeTamp | null | Object | 授权过期时间戳 |
| ├─ changeConfig | 1 | Integer | 支持更配 0-否 1-是 |
| ├─ createTime | 2024-12-31 19:13:46 | String | 创建时间 |
| ├─ proxyIp | null | Object | 代理IP地址 |
| ├─ remark | String | 备注 | |
| ├─ proxyId | null | Object | 代理IP信息 |
| ├─ ipAddress | null | Object | IP归属地 |
| ├─ publicIp | null | Object | 出口IP |
| ├─ groupName | null | Object | 分组名称 |
| ├─ groupSort | null | Object | 分组排序 |
云机状态
| 状态值 | 参数描述 |
|---|---|
| 99 | 加载中 (Loading) |
| 100 | 正常 (Normal) |
| 101 | 获取截图中 (Getting Screenshot) |
| 102 | 重启中 (Rebooting) |
| 103 | 重置中 (Resetting) |
| 104 | 重启失败 (Reboot Failed) |
| 105 | 重置失败 (Reset Failed) |
| 106 | 维护 (Maintenance) |
| 107 | 镜像升级中 (Upgrading Image) |
| 108 | 实例迁移中 (Migrating Instance) |
| 109 | 实例迁移失败 (Migration Failed) |
| 111 | 设备更配中 (Device Configuration) |
| 112 | 反诈封禁 (Anti-Fraud Lockdown) |
| 113 | 升降配 (Config Change) |
| 114 | 超卖中 (Over Selling) |
| 115 | 换区中 (Changing Zone) |
| 116 | 清理内存中 (Cleaning Memory) |
| 119 | 云机初始化中 (Initializing Cloud Machine) |
| 120 | 一键新机初始化中 (One-click New Machine Initialization) |
| 121 | 任务执行中 (Task Execution in Progress) |
| 201 | 备份中 (Backing Up) |
| 202 | 还原中 (Restoring) |
请求示例
{
"padCode": null,
"equipmentIds": [
106626
]
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1736235894274,
"data": [
{
"padCode": "AC32010180421",
"deviceIp": "172.30.5.43",
"padIp": "10.254.21.225",
"cvmStatus": 100,
"screenshotLink": "https://XXXXXX.png",
"equipmentId": 106626,
"userId": 14114,
"status": 1,
"padName": "V08",
"bootTime": 1735643626263,
"cumulativeUseTime": null,
"lastBackupTime": null,
"maintainContent": null,
"goodId": 1,
"goodName": "i18n_Android13-V08",
"signExpirationTime": "2025-01-31 19:13:46",
"signExpirationTimeTamp": 1738322026000,
"supplierType": "5",
"androidVersionAvatar": "https://XXXX.png",
"configName": "V08",
"androidVersionAvatar2": "https://XXX.png",
"androidVersionAvatar3": "https://XXX.png",
"androidVersion": "13",
"authorizedUserId": null,
"authorizedExpirationTime": null,
"authorizedExpirationTimeTamp": null,
"changeConfig": 1,
"createTime": "2024-12-31 19:13:46",
"proxyIp": null,
"remark": "",
"proxyId": null,
"ipAddress": null,
"publicIp": null,
"groupName": null,
"groupSort": null
}
]
}
云手机信息查询
云手机信息查询。
接口地址
/vcpcloud/api/padApi/padInfo
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | AC32010180421 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object | 响应数据 | |
| ├─ explain | English | String | 语言-说明 |
| ├─ simCountry | SG | String | SIM卡国家 |
| ├─ country | SG | String | 国家 |
| ├─ padCode | AC32010180421 | String | 实例编号 |
| ├─ padType | V08 | String | 设备机型 |
| ├─ bluetoothAddress | 3A:1F:4B:9C:2D:8E | String | 蓝牙地址 |
| ├─ initializationData | {"explain":"English","country":"SG","simJson":{"simCountry":"SG","operatorShortname":"M1","imei":"979706209497838","imsi":"525036719631842","phonenum":"6510633153","operatorNumeric":"52503"},"latitude":"1.3398","timeZone":"Asia/Singapore","language":"en","longitude":"103.6967"} | String | 设备信息集合 |
| ├─ latitude | 1.3398 | String | 纬度 |
| ├─ ipAddress | Hong Kong | String | IP地址 |
| ├─ timeZone | Asia/Singapore | String | 时区 |
| ├─ publicIp | 192.169.96.14 | String | 出口IP |
| ├─ phoneNumber | +6510633153 | String | 虚拟号码 |
| ├─ androidVersion | Android13 | String | Android版本 |
| ├─ wlanMac | 4c:7f:11:2f:a6:cc | String | WLAN MAC地址 |
| ├─ padName | V08 | String | Pad名称 |
| ├─ simIso | M1 | String | SIM卡ISO |
| ├─ longitude | 103.6967 | String | 经度 |
| ├─ operatorNumeric | 52503 | Integer | 运营商编号 |
| ├─ padImei | 525036719631842 | String | IMEI |
| ts | 1736239152927 | Long | 时间戳 |
请求示例
{
"padCode": null
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"explain": "English",
"simCountry": "SG",
"country": "SG",
"padCode": "AC32010180421",
"padType": "V08",
"bluetoothAddress": "3A:1F:4B:9C:2D:8E",
"initializationData": "{\"explain\":\"English\",\"country\":\"SG\",\"simJson\":{\"simCountry\":\"SG\",\"operatorShortname\":\"M1\",\"imei\":\"979706209497838\",\"imsi\":\"525036719631842\",\"phonenum\":\"6510633153\",\"operatorNumeric\":\"52503\"},\"latitude\":\"1.3398\",\"timeZone\":\"Asia/Singapore\",\"language\":\"en\",\"longitude\":\"103.6967\"}",
"latitude": "1.3398",
"ipAddress": "Hong Kong",
"timeZone": "Asia/Singapore",
"publicIp": "192.169.96.14",
"phoneNumber": "+6510633153",
"androidVersion": "Android13",
"wlanMac": "4c:7f:11:2f:a6:cc",
"padName": "V08",
"simIso": "M1",
"longitude": "103.6967",
"operatorNumeric": 52503,
"padImei": "525036719631842"
},
"ts": 1736239152927
}
创建计时设备订单
创建计时设备订单,购买计时设备
接口地址
/vcpcloud/api/padApi/createByTimingOrder
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| goodId | 1 | Integer | 是 | 商品Id(对应 sku套餐列表的商品ID值-> timingGoodTimes.id |
| goodNum | 1 | Integer | 是 | 商品数量 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | String[] | 购买的计时设备实例 | |
| ├─ padCode | ACN250424VU2F6LB | String | 实例编号 |
请求示例
{
"goodId": 1,
"goodNum": 1
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
"ACN250424VU2F6LB"
],
"ts": 1745562924759
}
计时设备开机
计时设备开机, 支持开机为新机、按照指定备份资源包进行开机
接口地址
/vcpcloud/api/padApi/timingPadOn
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | 实例编号集合 | |
| ├─ padCode | ACN250424VU2F6LB | String | 是 | 实例编号 |
| defCode | 1 | Integer | 否 | 是否开机为新机 0-否 1-是 默认为0 优先级高 |
| netStorageResUnitCode | ZSC250423CVEY7CP-ACN2504235BZK2XW | String | 否 | 指定开机的备份资源包ID 优先级低 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | false | Boolean | 当天是否存在扣费满1美金的设备,如果存在,该设备将不再扣费 |
请求示例
{
"padCodes": [
"ACN250424VU2F6LB"
],
"defCode": 0,
"netStorageResUnitCode": "ZSC250423CVEY7CP-ACN2504235BZK2XW"
}
响应示例
{
"msg": "success",
"code": 200,
"data": false,
"ts": 1745568308881
}
计时设备关机
计时设备关机,支持备份当前实例,备份包支持自定义备注名称
接口地址
/vcpcloud/api/padApi/timingPadOff
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | 实例编号集合 | |
| ├─ padCode | ACN250424VU2F6LB | String | 是 | 实例编号 |
| isBackUp | 1 | Integer | 否 | 是否备份 0-否 1-是 默认备份 |
| remark | 备份包说明 | String | 否 | 给当前需要备份的资源包添加说明 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745569714501 | Long | 执行时间戳 |
请求示例
{
"padCodes": [
"ACN250424VU2F6LB"
],
"isBackUp": 1,
"remark": "备份包说明"
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
计时设备销毁
计时设备销毁,计时设备销毁并不会删除备份的资源包
接口地址
/vcpcloud/api/padApi/timingPadDel
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | 实例编号集合 | |
| ├─ padCode | ACN250424VU2F6LB | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745569714501 | Long | 执行时间戳 |
请求示例
{
"padCodes": [
"ACN250424VU2F6LB"
]
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
sku套餐列表
sku套餐列表。
接口地址
/vcpcloud/api/padApi/getCloudGoodList
请求方式
GET
请求数据类型
application/json
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object | 响应数据 | |
| ├─ androidVersionName | Android13 | String | Android 版本名称 |
| ├─ cloudGoodsInfo | Object | sku套餐信息 | |
| │ ├─ configs | List | 商品型号信息 | |
| │ │ ├─ configName | Samsung s23 ultra | String | 商品型号名称 |
| │ │ ├─ sellOutFlag | false | Boolean | 包月设备是否售罄 |
| │ │ ├─ timingSellOutFlag | false | Boolean | 计时设备是否售罄 |
| │ │ ├─ configBlurb | 顶尖科技,媲美真机至尊体验! | String | 商品型号描述 |
| │ │ ├─ defaultSelection | false | Boolean | 是否默认选中包月设备 |
| │ │ ├─ defaultTimeSelection | false | Boolean | 是否默认选中计时设备 |
| │ │ ├─ reorder | 0 | Integer | 排序 |
| │ │ ├─ goodTimes | List | 包月商品价格卡 | |
| │ │ │ ├─ oldGoodPrice | 100 | Integer | 原价 |
| │ │ │ ├─ showContent | 1天 | String | 商品时长名称 |
| │ │ │ ├─ whetherFirstPurchase | true | Boolean | 是否为首次购买 |
| │ │ │ ├─ reorder | 1 | Integer | 排序 |
| │ │ │ ├─ goodPrice | 100 | Integer | 商品价格 |
| │ │ │ ├─ equipmentNumber | 1 | Integer | 商品发货设备数量 |
| │ │ │ ├─ goodTime | 1440 | Integer | 商品时长(分钟) |
| │ │ │ ├─ autoRenew | true | Boolean | 是否支持自动续订 |
| │ │ │ ├─ recommendContent | 首购特惠 | String | 推荐内容 |
| │ │ │ ├─ id | 27 | Integer | 商品 ID |
| │ │ ├─ timingGoodTimes | List | 计时商品价格卡 | |
| │ │ │ ├─ oldGoodPrice | 100 | Integer | 原价 |
| │ │ │ ├─ showContent | 1天 | String | 商品时长名称 |
| │ │ │ ├─ whetherFirstPurchase | true | Boolean | 是否为首次购买 |
| │ │ │ ├─ reorder | 1 | Integer | 排序 |
| │ │ │ ├─ goodPrice | 100 | Integer | 商品价格 |
| │ │ │ ├─ equipmentNumber | 1 | Integer | 商品发货设备数量 |
| │ │ │ ├─ goodTime | 1440 | Integer | 商品时长(分钟) |
| │ │ │ ├─ autoRenew | true | Boolean | 是否支持自动续订 |
| │ │ │ ├─ recommendContent | 首购特惠 | String | 推荐内容 |
| │ │ │ ├─ id | 1 | Integer | 商品 ID |
| ts | 1737440589859 | Long | 时间戳 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"androidVersionName": "Android13",
"cloudGoodsInfo": {
"configs": [
{
"configName": "Samsung s23 ultra",
"sellOutFlag": false,
"configBlurb": "顶尖科技,媲美真机至尊体验!",
"defaultSelection": false,
"reorder": 0,
"goodTimes": [
{
"oldGoodPrice": 100,
"showContent": "1天",
"whetherFirstPurchase": true,
"reorder": 1,
"goodPrice": 100,
"equipmentNumber": 1,
"goodTime": 1440,
"autoRenew": true,
"recommendContent": "首购特惠",
"id": 27
}
],
"timingGoodTimes": [
{
"oldGoodPrice": 15,
"goodTime": 15,
"defaultSelection": false,
"showContent": "15 minutes",
"whetherFirstPurchase": false,
"chargeType": 2,
"currentPrice": 9,
"recommendContent": "40% off",
"reorder": 1,
"id": 1,
"goodPrice": 9,
"equipmentNumber": 1
}
]
}
],
"goodId": 1
}
}
],
"ts": 1737440589859
}
显示或隐藏应用进程
接口地址
/vcpcloud/api/padApi/toggleProcessHide
请求方式
POST
请求数据类型
application/json
请求BODY参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22010020062 | String | 是 | 实例编号 |
| show | false | Boolean | 是 | 隐藏进程: true-隐藏 false-恢复 |
| packageName | com.facebook.katana | String | 是 | 应用包名 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
请求示例
{
"padCodes": [
"AC32010601132"
],
"show": false,
"packageName": "com.facebook.katana"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1736326542985
}
导入通话记录
此接口允许将通话记录数据导入至云手机中。接口在导入过程中,会自动检测云手机通讯录中已保存的联系人,并将这些联系人对应的名称显示在通话记录中,便于用户快速识别联系人。
接口地址
/vcpcloud/api/padApi/addPhoneRecord
请求方式
POST
请求数据类型
application/json
请求BODY参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC32010601132 | String | 是 | 实例编号 |
| callRecords | Object[] | 是 | ||
| ├─number | 13900000000 | String | 是 | 电话号码 |
| ├─inputType | 1 | Integer | 是 | 通话类型(1:拨出;2:接听;3:未接) |
| ├─duration | 62 | Integer | 是 | 通话时长;单位是秒,未接电话是0秒 |
| ├─timeString | 2025-05-08 12:30:00 | String | 是 | 通话时长 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─padCode | AC32010601132 | String | 实例编号 |
| ├─taskId | 10004759 | Long | 任务id |
| ├─vmStatus | 0 | String | 实例在线状态 |
请求示例
{
"padCodes": [
"AC32010601132"
],
"callRecords": [
{
"number": "18009781201",
"inputType": 1,
"duration": 30,
"timeString": "2025-05-06 14:00:09"
},
{
"number": "18009781202",
"inputType": 2,
"duration": 60,
"timeString": "2025-05-07 14:00:09"
},
{
"number": "18009781203",
"inputType": 3,
"duration": 0
}
]
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"taskId": 100059,
"padCode": "AC32010601132",
"vmStatus": 0
}
]
}
指定输入框文本输入
在云机中预先聚焦好输入框,调用完接口后,文本信息展示在云机指定位置。需要预先在云机中定位到输入位置,否则无法生效
接口地址
/vcpcloud/api/padApi/inputText
请求方式
POST
请求数据类型
application/json
请求BODY参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC32010601132 | String | 是 | 实例编号 |
| text | Hello World | String | 是 | 输入文本 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─padCode | AC32010601132 | String | 实例编号 |
| ├─taskId | 10004759 | Long | 任务id |
请求示例
{
"padCodes": [
"AC32010601132"
],
"text": "Hello World"
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"taskId": 100059,
"padCode": "AC32010601132"
}
]
}
云空间
查询用户的文件列表
接口地址
/vcpcloud/api/padApi/selectFiles
请求方式
POST
请求数据类型
application/json
请求Body参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object[] | 返回体 | |
| ├─appName | 快手极速版 | String | 文件名称 |
| ├─downloadUrl | https://file.vmoscloud.com/userFile/fd31c45b5a7c3e6249c7d1b1dca6ff77.apk | String | 文件下载链接 |
| ├─packageName | com.kuaishou.nebula | String | APK包名,只有ap文件才有 |
| ├─fileId | 479472 | Integet | 云空间文件编号 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"appName": "快手极速版",
"downloadUrl": "https://file.vmoscloud.com/userFile/fd31c45b5a7c3e6249c7d1b1dca6ff77.apk",
"packageName": "com.kuaishou.nebula",
"fileId": 479472
}
],
"ts": 1746711010676
}
删除云空间文件
接口地址
/vcpcloud/api/padApi/deleteOssFiles
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| files | Integer[] | 是 | 云空间文件唯一编号集合 | |
| ├─ | 479452 | String | 是 | 云空间文件唯一编号 |
| urls | String[] | 否 | 云空间文件url地址集合 | |
| ├─ | 479452 | String | 否 | Cloud space file download link |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
请求示例
{
"files": [479452]
}
响应示例
{
"msg:: "success",
"code": 200,
"ts": 1746694236404
}
上传文件到云空间
上传文件到云空间并获取下载链接
接口地址
/vcpcloud/api/padApi/uploadFile
请求方式
POST
请求数据类型
multipart/form-data
body 注意是 form 不是 json
请求 form-data 参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| file | FourSeasonsPhilly.webp | File | 是 | 需要上传的文件 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| code | 200 | Integer | 状态码 |
| msg | success | String | 响应消息 |
| ts | 1756021167163 | Long | 时间戳 |
| data | Object | 返回体 | |
| ├─downloadUrl | https://file.vmoscloud.com/userFile/83bb260163f78e6928c1fe5acda.webp | String | 文件下载链接 |
请求示例
curl --request POST \
--url /vcpcloud/api/padApi/uploadFile \
--header 'accept-language: zh' \
--header 'content-type: multipart/form-data' \
--form 'file=@C:\FourSeasonsPhilly.webp'
响应示例
{
"msg": "success",
"code": 200,
"data": {
"downloadUrl": "https://file.vmoscloud.com/userFile/83bb260163f78e6928c1fe5acda.webp"
},
"ts": 1746704760360
}
购买云空间扩容
购买云空间扩容
接口地址
/vcpcloud/api/padApi/buyStorageGoods
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| storageId | 1 | Integer | 是 | 云空间扩容商品唯一ID |
| autoRenewOrder | 0 | Integer | 是 | 是否自动续费 0-否 1-是 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745569714501 | Long | 执行时间戳 |
请求示例
{
"storageId": 1,
"autoRenewOrder": 0
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
存储资源包列表
关机备份后的存储资源包列表
接口地址
/vcpcloud/api/padApi/vcTimingBackupList
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object[] | 资源包集合信息 | |
| ├─ backupId | ZSC250425LIOJY2V-ACN250424VU2F6LB | String | 备份资源包编号 |
| ├─ padCode | ACN250424VU2F6LB | String | 备份包所属设备 |
| ├─ beginTime | 2025-04-25 16:28:48 | String | 备份时间 |
| ├─ remark | Time:20250425162833 | String | 备份说明 ,备份时有传入remar就会使用自定义的,否则默认就是备份时间 |
| ├─ padName | V06 | String | 自定义的设备名称,用来快速区分和查找资源包 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"backupId": "ZSC250425LIOJY2V-ACN250424VU2F6LB",
"padCode": "ACN250424VU2F6LB",
"beginTime": "2025-04-25 16:28:48",
"remark": "Time:20250425162833",
"padName": "V06"
}
],
"ts": 1745570858994
}
云空间商品列表
云空间商品列表
接口地址
/vcpcloud/api/padApi/getVcStorageGoods
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object[] | 资源包集合信息 | |
| ├─ oldPrice | 169 | Long | 商品原价 |
| ├─ payPrice | 169 | Long | 折扣后售卖价格 |
| ├─ subscriptTips | 85折 | String | 折扣说明 |
| ├─ useTime | 43200 | Long | 有效分钟数 |
| ├─ storageCapacity | 107374182400 | Long | 对应云空间大小 |
| ├─ storageId | 1 | Integer | 云空间商品唯一ID |
| ├─ storageName | 100GB/月 | String | 云空间商品说明 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"oldPrice": 199,
"payPrice": 169,
"subscriptTips": "85折",
"useTime": 43200,
"reorder": 1,
"storageCapacity": 107374182400,
"selected": true,
"storageId": 1,
"storageName": "100GB/月"
}
],
"ts": 1745572789763
}
聚合续费云空间商品
聚合续费云空间商品
接口地址
/vcpcloud/api/padApi/renewsStorageGoods
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| autoRenewOrder | 0 | Integer | 是 | 是否自动续费 0-否 1-是 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745569714501 | Long | 执行时间戳 |
请求示例
{
"autoRenewOrder": 0
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
删除备份资源包数据
删除备份资源包数据
接口地址
/vcpcloud/api/padApi/deleteUploadFiles
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| String[] | 是 | 要删除的资源包ID集合 | ||
| ├─ | ZSC250425LIOJY2V-ACN250424VU2F6LB | String | 是 | 要删除的资源包ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745569714501 | Long | 执行时间戳 |
请求示例
[
"ZSC250425LIOJY2V-ACN250424VU2F6LB"
]
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
云空间自动续费聚合商品开关
云空间自动续费聚合商品开关
接口地址
/vcpcloud/api/padApi/updateRenewStorageStatus
请求方式
GET
请求数据类型
application/json
请求Query参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| renewStorageStatus | false | String | 是 | 是否自动续费 false-否 true-是 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745569714501 | Long | 执行时间戳 |
请求示例
/vcpcloud/api/padApi/updateRenewStorageStatus?renewStorageStatus=false
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
云空间续费详情查询
云空间续费详情查询
接口地址
/vcpcloud/api/padApi/selectAutoRenew
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object[] | 续费信息 | |
| ├─ renewStorageStatus | 0 | Integer | 是否开启自动续费 0-否 1-是 |
| ├─ storageSize | 214748364800 | Long | 续费云空间的总大小 |
| ├─ storageAmount | 338 | Long | 续费所需金额(美分) |
| ├─ signExpirationTime | 2025-05-10 19:22:35 | String | 有效时间 |
响应示例
{
"msg": "success",
"code": 200,
"data": {
"renewStorageStatus": 0,
"storageSize": 214748364800,
"storageAmount": 338,
"signExpirationTime": "2025-05-10 19:22:35"
},
"ts": 1745573906608
}
云空间存储剩余容量
云空间存储剩余容量
接口地址
/vcpcloud/api/padApi/getRenewStorageInfo
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object | 资源包集合信息 | |
| ├─ accountBalance | 100 | Long | 钱包余额 (美分) |
| ├─ storageCapacityLimit | 112742891520 | Long | 用可用空间大小 1GB = 1024 x 1024 x 1024 Byte |
| ├─ storageUsedAvail | 17325201433 | Long | 已使用空间大小 |
| ├─ other | Object | 附件空间详情 | |
| ├─├─ signExpirationTime | 2025-05-10 19:22:35 | String | 附加空间到期时间 |
| ├─├─ storageAmount | 169 | Long | 附加空间续费所需金额(美分) |
| ├─├─ otherStorageSize | 107374182400 | Long | 附加空间大小 |
响应示例
{
"msg": "success",
"code": 200,
"data": {
"accountBalance": 100,
"storageCapacityLimit": 112742891520,
"storageUsedAvail": 17325201433,
"other": {
"signExpirationTime": "2025-05-10 19:22:35",
"storageAmount": 169,
"otherStorageSize": 107374182400
}
},
"ts": 1745571643583
}
静态住宅服务
获取静态住宅商品列表
接口地址
/vcpcloud/api/padApi/proxyGoodList
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─proxyGoodName | 5 days | String | 商品名称 |
| ├─proxyGoodId | 1 | Integer | 商品唯一编号 |
| ├─proxyGoodPrice | 200 | Integer | 商品价格(美分) |
| ├─proxyGoodType | 2 | Integer | 代理商品类型:0-通用 1-socket5 2-http 3-https |
| ├─proxyGoodTime | 7200 | Integer | 商品时长(分钟) |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"proxyGoodName": "5 days",
"proxyGoodId": 4,
"proxyGoodTime": 7200,
"proxyGoodType": 2,
"proxyGoodPrice": 200
}
],
"ts": 1747734076860
}
获取静态住宅商品支持的国家城市信息
接口地址
/vcpcloud/api/padApi/getProxyRegion
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | ||
| ├─country | cn | String | 支持的国家code |
| ├─countryZh | China | String | 支持的国家说明 |
| ├─countryId | 15 | Integer | 国家唯一编号 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"country": "cn",
"countryZh": "China",
"countryId": 15
},
],
"ts": 1747734076860
}
静态住宅商品购买
接口地址
/vcpcloud/api/padApi/createProxyOrder
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| proxyGoodId | 4 | Integer | 对应静态住宅商品的唯一ID |
| region | cn | String | 静态住宅的地区-country |
| num | 1 | Integer | 购买数量 |
| country | cn | String | 静态住宅的国家-country |
| proxyAddress | China | String | 静态住宅的地址-countryZh |
| autoRenew | true | Boolean | 开启自动续费 false-关闭 true-开启 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
请求示例
{
"proxyGoodId": 4,
"region": "cn",
"num": 1,
"country": "cn",
"proxyAddress": "China",
"autoRenew": true
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
静态住宅代理订单明细
接口地址
/vcpcloud/api/padApi/selectProxyOrderList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| page | 1 | Integer | 第几页 |
| rows | 10 | Integer | 每页展示多少条 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object | ||
| ├─total | 1 | Integer | 条数 |
| ├─size | 10 | Integer | 每页展示数 |
| ├─pages | 1 | Integer | 总页数 |
| ├─records | Object[] | 订单信息 | |
| ├─├─buyNumber | 1 | String | 购买数量 |
| ├─├─goodName | New Purchase5-day agency product | String | 商品名称 |
| ├─├─createTime | 1747734544000 | Long | 创建时间 |
| ├─├─orderId | VMOS-CLOUD174773454378660285 | String | 订单ID |
| ├─├─payPrice | 200 | String | 支付金额 |
| ├─├─orderStatus | vpn | String | 订单状态 0-待支付 1-已支付 |
| ├─├─orderPrice | cn | String | 订单金额 |
| ├─├─goodPrice | Sichuan | String | 商品单价 |
| ├─├─goodNum | Sichuan | String | 商品数量 |
请求示例
{
"page": 1,
"rows": 10
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"current": 1,
"total": 30,
"pages": 3,
"size": 10,
"records": [
{
"buyNumber": 1,
"goodName": "New Purchase5-day agency product",
"createTime": 1747734544000,
"orderId": "VMOS-CLOUD174773454378660285",
"payPrice": 200,
"orderStatus": 1,
"orderPrice": 200,
"goodPrice": 200,
"goodNum": 1
}
]
},
"ts": 1747734706973
}
静态住宅代理续费
接口地址
/vcpcloud/api/padApi/createRenewProxyOrder
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| proxyGoodId | 4 | Integer | 对应静态住宅商品的唯一ID |
| proxyIps | 154.81.41.161,154.81.41.162 | String | 续费的IP,多个以,分割 |
| autoRenew | true | Boolean | 开启自动续费 false-关闭 true-开启 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
请求示例
{
"proxyGoodId": 4,
"proxyIps": "154.81.41.161,154.81.41.162",
"autoRenew": true
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
查询静态住宅代理列表
接口地址
/vcpcloud/api/padApi/queryProxyList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| current | 1 | Integer | 第几页 |
| size | 10 | Integer | 每页展示多少条 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object | ||
| ├─total | 1 | Integer | 条数 |
| ├─size | 10 | Integer | 每页展示数 |
| ├─pages | 1 | Integer | 总页数 |
| ├─records | Object[] | 订单信息 | |
| ├─├─proxyStatus | 1 | Integer | 代理状态:0-检测中 1-正常 -1检测失败 2-待检测 |
| ├─├─proxyGoodId | 4 | String | 商品ID |
| ├─├─proxyName | 154.81.40.200 | Long | 代理名称 |
| ├─├─proxyUseNumber | 0 | String | 挂载云机数 |
| ├─├─proxyType | 1 | String | 代理类型:1-Socks5 2-http 3-https |
| ├─├─proxyHost | 154.81.40.200 | String | 订单状态 0-待支付 1-已支付 |
| ├─├─proxyPort | 63007 | String | 代理端口(奇数-socks5 偶数-http)63007 (63008) |
| ├─├─password | xxxxxx | String | 代理密码 |
| ├─├─proxyCountry | CN | String | 代理所属国家 |
| ├─├─expectedExpireTime | 1748166543 | String | 到期时时间戳 |
| ├─├─expireTime | 1748166543 | String | 到期时时间戳 (同上,使用 expireTime 即可) |
| ├─├─account | xxxxxx | String | 用户名 |
| ├─├─proxyId | 86930 | String | 代理唯一ID (挂载云机使用) |
请求示例
{
"current": 1,
"size": 10
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"current": 1,
"total": 30,
"pages": 3,
"size": 10,
"records": [
{
"proxyStatus": 2,
"proxyGoodId": 4,
"proxyName": "154.81.40.200",
"proxyUseNumber": 0,
"proxyType": 1,
"proxyHost": "154.81.40.200",
"proxyPort": 63007,
"password": "xxxxxx",
"proxyCountry": "CN",
"expireTime": 1748166543,
"expectedExpireTime": 1748166543,
"account": "xxxxxxx",
"proxyId": 86930
},
]
},
"ts": 1747734706973
}
动态代理服务
查询动态代理商品列表
接口地址
/vcpcloud/api/padApi/getDynamicGoodService
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─goodName | 2GB | String | 商品名称 |
| ├─goodId | 1 | Integer | 商品唯一编号 |
| ├─goodPrice | 1 | String | 商品价格 |
| ├─protocolDescription | Github | String | 支持的协议信息 |
| ├─totalTraffic | Object[] | 流量包大小 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"goodName": "2GB",
"goodId": 1,
"goodPrice": 1000,
"protocolDescription": "HTTP(S)/SOCKS5",
"totalTraffic": 2048
}
],
"ts": 1740643153803
}
查询动态代理地区列表
接口地址
/vcpcloud/api/padApi/getDynamicProxyRegion
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─CountryName | 阿拉伯联合酋长国 | String | 国家名称 |
| ├─CountryCode | AE | String | 国家Code |
| ├─State | Object[] | 地区列表 | |
| ├─├─city | Object[] | 城市列表 | |
| ├─├─├─ | Musaffahcity | String | 城市名称 |
| ├─├─name | Abudhabi | String | 地区名称 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"CountryName": "阿拉伯联合酋长国",
"CountryCode": "AE",
"State": [
{
"city": [
"Musaffahcity",
"Abudhabi"
],
"name": "Abudhabi"
},
],
}
],
"ts": 1740643153803
}
获取动态代理当前余量
接口地址
/vcpcloud/api/padApi/queryCurrentTrafficBalance
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─accumulatedTraffic | 2048 | String | 总流量 |
| ├─remainingTraffic | 1024 | Object[] | 剩余流量 |
| ├─useTraffic | 1024 | Object[] | 已使用流量 |
响应示例
{
"msg": "success",
"code": 200,
"data": {
"accumulatedTraffic": 2048,
"remainingTraffic": 1024,
"useTraffic": 1024
},
"ts": 1740659529379
}
查询支持的服务器地区
接口地址
/vcpcloud/api/padApi/getDynamicProxyHost
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─name | America Region (South America & North America) | String | 大洲名称 |
| ├─value | xxxxxxx:1234 | String | 大洲服务器地址 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"name": "America Region (South America & North America)",
"value": "xxxxxxx:1234"
}
],
"ts": 1740660551742
}
购买动态代理流量包
接口地址
/vcpcloud/api/padApi/buyDynamicProxy
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| goodId | 1 | Integer | 对应动态流量包的唯一ID |
| goodNum | 1 | Integer | 购买数量 |
| autoRenewOrder | 1 | Integer | 开启自动续费 0-关闭 1-开启 剩余流量低于50MB时,触发自动续费 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
请求示例
{
"goodId": 1,
"goodNum": 1,
"autoRenewOrder": 0
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
创建动态代理
接口地址
/vcpcloud/api/padApi/createProxy
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| city | "" | String | 城市 不选要传"" |
| countryCode | AE | String | 国家Code |
| goodNum | 1 | Integer | 购买数量 |
| proxyHost | xxxxx:7778 | String | 大洲网址 |
| proxyType | socks5 | String | 代理类型 socks5 / http / https |
| proxyUseType | proxy | String | 挂载方式 proxy / vpm |
| state | Abudhabi | String | 地区 不选要传"" |
| time | 1 | String | 自动更换ip频率 (分钟) 可选 5、10、15、30、45、60、90 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object | 返回体 | |
| ├─id | 82750 | Integer | 代理ID |
| ├─proxyHost | String | 动态代理 |
请求示例
{
"proxyHost": "xxxxx:7778",
"countryCode": "CN",
"state": "Sichuan",
"city": "Sichuan",
"time": 5,
"proxyType": "socks5",
"proxyUseType": "vpn"
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"id": 82750,
"proxyHost": "E44S5YaWP660_custom_zone_HK_st_Kowloon_city_sid_27165697_time_10"
}
],
"ts": 1760068573317
}
查询动态代理列表(支持分页)
接口地址
/vcpcloud/api/padApi/getProxys
请求方式
GET
请求数据类型
application/json
请求Query参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| page | 1 | Integer | 当前页 |
| rows | 10 | Integer | 每页条数 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object | 状态码 | |
| ├─records | Object[] | 动态代理信息 | |
| ├─├─id | 1 | String | 代理唯一编号 |
| ├─├─proxyHost | xxxxxxx | String | 大洲服务器域名 |
| ├─├─proxyPort | 1234 | String | 大洲服务器端口 |
| ├─├─userName | E44S5YaWP660_time_5 | String | 动态代理用户名 |
| ├─├─password | 1234 | String | 动态代理密码 |
| ├─├─proxyType | socks5 | String | 动态代理协议类型 |
| ├─├─proxyUseType | vpn | String | 动态代理挂载方式 |
| ├─├─countryCode | cn | String | 国家Code |
| ├─├─state | Sichuan | String | 地区 |
| ├─├─city | Sichuan | String | 城市 |
| ├─├─time | 5 | Integer | 刷新频率 |
| ├─total | 1 | Integer | 代理条数 |
| ├─size | 10 | Integer | 每页展示数 |
| ├─pages | 1 | Integer | 总页数 |
响应示例
{
"msg": "success",
"code": 200,
"data": {
"records": [
{
"id": 1,
"proxyHost": "xxxxxx",
"proxyPort": 7778,
"userName": "E44S5YaW",
"password": "1111",
"proxyType": "socks5",
"proxyUseType": "vpn",
"countryCode": "cn",
"state": "Sichuan",
"city": "Sichuan",
"time": 5
}
],
"total": 2,
"size": 10,
"current": 1,
"pages": 1
},
"ts": 1740725704758
}
查询动态代理订单列表(支持分页)
接口地址
/vcpcloud/api/padApi/getDynamicProxyOrders
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| page | 1 | Integer | 当前页 |
| rows | 10 | Integer | 每页条数 |
| completeStartTime | 2025-02-27 23:20:36 | String | 支付开始时间 |
| completeEndTime | 2025-02-28 23:20:36 | String | 支付结束时间 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object | 状态码 | |
| ├─records | Object[] | 动态代理信息 | |
| ├─├─orderId | VMOS-CLOUD174066963648092563 | String | 平台唯一ID |
| ├─├─orderPrice | 1000 | Integer | 订单金额分 |
| ├─├─payPrice | 1000 | Integer | 支付金额分 |
| ├─├─createTime | 2025-02-27T23:20:36.000+0800 | String | 创建时间 |
| ├─├─completeTime | 2025-02-27T23:20:36.000+0800 | String | 支付时间 |
| ├─├─orderStatus | 1 | Integer | 订单状态 0-待支付 1-已支付 |
| ├─├─goodId | 1 | Integer | 商品唯一ID |
| ├─├─goodNum | 1 | Integer | 购买数量 |
| ├─├─goodName | 2GB | String | 商品名称 |
| ├─├─goodPrice | 1000 | Integer | 商品单价 |
| ├─├─goodSize | 2048 | Integer | 商品流量包带下 |
| ├─├─sumSize | 2048 | Integer | 订单总流量包大小 |
| ├─├─orderOtherInfo | 购买 2GB 流量包,购买数量:1 | String | 订单说明 |
| ├─├─autoRenewOrder | 1 | Integer | 是否开启续费 1-开启 0-不开 (全局生效) |
| ├─total | 1 | Integer | 代理条数 |
| ├─size | 10 | Integer | 每页展示数 |
| ├─pages | 1 | Integer | 总页数 |
请求示例
{
"page": 1,
"rows": 10,
"completeStartTime": "2025-02-27 23:20:36",
"completeEndTime": "2025-02-28 23:20:36"
}
响应示例
{
"msg": "success",
"code": 200,
"data": {
"records": [
{
"orderId": "VMOS-CLOUD174066963648092563",
"orderPrice": 1000,
"payPrice": 1000,
"createTime": "2025-02-27T23:20:36.000+0800",
"completeTime": "2025-02-27T23:20:36.000+0800",
"orderStatus": 1,
"goodId": 1,
"goodNum": 1,
"goodName": "2GB",
"goodPrice": 1000,
"goodSize": 2048,
"sumSize": 2048,
"orderOtherInfo": "购买 2GB 流量包,购买数量:1",
"autoRenewOrder": 0
}
],
"total": 2,
"size": 10,
"current": 1,
"pages": 1
},
"ts": 1740726141853
}
创建动态代理
接口地址
/vcpcloud/api/padApi/createProxy
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| city | "" | String | 城市 不选要传"" |
| countryCode | AE | String | 国家Code |
| goodNum | 1 | Integer | 购买数量 |
| proxyHost | xxxxx:7778 | String | 大洲网址 |
| proxyType | socks5 | String | 代理类型 socks5 / http / https |
| proxyUseType | proxy | String | 挂载方式 proxy / vpm |
| state | Abudhabi | String | 地区 不选要传"" |
| time | 1 | String | 自动更换ip频率 (分钟) 可选 5、10、15、30、45、60、90 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
请求示例
{
"proxyHost": "xxxxx:7778",
"countryCode": "CN",
"state": "Sichuan",
"city": "Sichuan",
"time": 5,
"proxyType": "socks5",
"proxyUseType": "vpn"
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
云机配置动态代理
接口地址
/vcpcloud/api/padApi/batchPadConfigProxy
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| padCodes | String[] | 云机集合 | |
| ├─ | AC32010921223 | String | 云机编号 |
| setProxyFlag | true | Boolean | 是否设备代理到云机 |
| proxyIds | [ 82750 ] | Array | 动态代理唯一ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | 1cb0ba24-cdc2-47d3-909d-d7ea2ab10576 | String | 批次ID |
请求示例
{
"padCodes": [
"AC32010921223"
],
"setProxyFlag": true,
"proxyIds": [
82750
]
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860,
"data": "1cb0ba24-cdc2-47d3-909d-d7ea2ab10576"
}
查询批量云机设置代理任务
接口地址
/vcpcloud/api/padApi/selectBatchPadProxyTask
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| taskId | 1cb0ba24-cdc2-47d3-909d-d7ea2ab10576 | Integer | 批次ID,挂载代理是异步操作,因此需要等待5s或者循环查询 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | [] | Array | 批次ID |
| ├─padCode | ACP250317BH33TR6 | String | 设备号 |
| ├─taskId | 994365372 | Long | 任务ID,通过云机任务查询结果 |
请求示例
{
"taskId": "1cb0ba24-cdc2-47d3-909d-d7ea2ab10576"
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACP250317BH33TR6",
"taskId": 994365372
}
],
"ts": 1760102034102
}
查询动态代理自动续费信息
接口地址
/vcpcloud/api/padApi/getDynamicProxyAutomaticRenewal
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─good_size | 2048 | Integer | 续费的流量包大小 |
| ├─auto_renew_order | 1 | Integer | 是否开启自动续费 0-关闭 1-开启 |
| ├─order_price | 199 | Integer | 自动续费需扣除的金额 |
| ├─good_name | Traffic package | String | 自动续费商品名称 |
| ├─good_number | 1 | Integer | 自动续费商品数量 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"good_size": 2048,
"auto_renew_order": 1,
"order_price": 199,
"good_name": "Traffic package",
"good_number": 1
}
],
"ts": 1745308893191
}
设置动态代理自动续费开关
接口地址
/vcpcloud/api/padApi/setAutoRenewSwitch
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| autoRenewOrder | 0 | Integer | 自动续费开关 0-关 1-开 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
请求示例
{
"autoRenewOrder": 0
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
删除动态代理
接口地址
/vcpcloud/api/padApi/delProxyByIds
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| ids | Integer[] | 要删除的动态代理ID集合 | |
| ├─ | 1 | Integer | 动态代理唯一ID |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
请求示例
{
"ids": [
1
]
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
邮箱接码服务
购买邮箱并获取相关服务的验证码
获取邮箱服务列表
接口地址
/vcpcloud/api/padApi/getEmailServiceList
请求方式
GET
请求数据类型
application/json
请求Query参数
无
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─price | 0.01 | Float | 价格 |
| ├─stockNum | 300 | Integer | 剩余库存 |
| ├─serviceId | 1 | String | 服务列表编号 |
| ├─serviceName | Github | String | 服务名称 |
| ├─items | Object[] | 子服务列表 | |
| ├─├─serviceItemId | 1 | Integer | 子服务唯一ID (购买时使用的ID) |
| ├─├─serviceItemName | Github Register | String | 子服务名称 |
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"price": 0.01,
"stockNum": 300,
"serviceId": 1,
"serviceName": "Github",
"items": [
{
"serviceItemId": 1,
"serviceItemName": "Github Register"
}
]
}
],
"ts": 1745825162018
}
获取邮箱类型及剩余库存
接口地址
/vcpcloud/api/padApi/getEmailTypeList
请求方式
GET
请求数据类型
application/json
请求Query参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| serviceId | 1 | Integer | 对应 serviceItemId 字段 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
| data | Object[] | 状态码 | |
| ├─price | 0.01 | Float | 价格 |
| ├─name | Outlook | String | 类型名称 |
| ├─stockNum | 630 | Integer | 剩余库存 |
| ├─id | 1 | Integer | 邮箱类型编号 |
请求示例
{
"serviceId": "1"
}
响应示例
{
"msg": "success",
"code": 200,
"data": [
{
"price": 0.01,
"name": "Outlook",
"stockNum": 300,
"id": 1
}
],
"ts": 1745823575860
}
创建购买邮箱订单
接口地址
/vcpcloud/api/padApi/getEmailTypeList
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| serviceId | 1 | Integer | 对应 serviceItemId 字段 |
| emailTypeId | 1 | Integer | 对应 /getEmailTypeList 返回的 ID 字段 |
| goodNum | 1 | Integer | 购买数量 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1736922808949 | Integer | 时间戳 |
请求示例
{
"serviceId": 1,
"emailTypeId": 1,
"goodNum": 1
}
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
查询购买的邮箱列表
当通过刷新接口无法获取到验证码时,可以通过:https://api.vmoscloud.com/vcpcloud/api/padApi/code?orderId= + outOrderId(外部订单号)进行查询结果
接口地址
/vcpcloud/api/padApi/getEmailOrder
请求方式
GET
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| page | 1 | Integer | 必填,分页参数,当前页 |
| size | 10 | Integer | 必填,分页参数,每页条数 |
| serviceId | 1 | Integer | 非必填,对应 serviceItemId 字段 |
| yzxovmq | String | 非必填,邮箱模糊查询 | |
| status | 0 | Integer | 非必填,邮箱状态 0-未使用 1-接收中 2-已使用 3-已失效 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745835489149 | Long | 时间戳(毫秒) |
| data | Object | 数据对象 | |
| ├─ current | 1 | Integer | 当前页码 |
| ├─ total | 1 | Integer | 总记录数 |
| ├─ pages | 1 | Integer | 总页数 |
| ├─ size | 10 | Integer | 每页大小 |
| ├─ records | Object[] | 数据记录列表 | |
| ├─├─ id | 1 | Long | 主键 ID |
| ├─├─ userId | 10667 | Long | 用户 ID |
| yzxovmqi828@outlook.com | String | 邮箱地址 | |
| ├─├─ emailStatus | 0 | Integer | 邮箱状态(0-未使用) |
| ├─├─ emailTypeId | 1 | Integer | 邮箱类型 ID |
| ├─├─ emailTypeName | Outlook | String | 邮箱类型名称 |
| ├─├─ emailServiceId | 2 | Integer | 邮箱服务商 ID |
| ├─├─ emailServiceName | Apple | String | 邮箱服务商名称 |
| ├─├─ emailCode | 767170 | String | 邮箱验证码 |
| ├─├─ useSize | 1 | Integer | 使用次数 |
| ├─├─ orderId | VMOS-CLOUD174583355706782096 | String | 系统订单号 |
| ├─├─ outOrderId | 1916791090664861697 | String | 外部订单号 |
请求示例
/vcpcloud/api/vcEmailService/getEmailOrder?page=1&size=10&serviceId=2&email=yzxovmq&status=0
响应示例
{
"msg": "success",
"code": 200,
"data": {
"current": 1,
"total": 1,
"pages": 1,
"size": 10,
"records": [
{
"emailServiceName": "Tiktok",
"emailTypeName": "Gmail",
"useSize": 2,
"orderId": "VMOS-CLOUD174592947484442767",
"updateTime": 1747135883000,
"goodPrice": 0.03,
"userId": 10667,
"emailTypeId": 3,
"emailCode": "767170",
"emailStatus": 3,
"createTime": 1745929475000,
"emailServiceId": 3,
"outOrderId": "1917193290790019073",
"id": 468,
"email": "jessicaadams316490@gmail.com"
}
]
},
"ts": 1745835489149
}
刷新获取邮箱验证码
此接口是刷新验证码列表结果,需要配合【查询购买的邮箱列表】接口一起使用
接口地址
/vcpcloud/api/padApi/getEmailCode
请求方式
GET
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| orderId | 1917193290790019073 | String | 必填,对应 outOrderId 字段 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| ts | 1745835489149 | Long | 时间戳(毫秒) |
请求示例
/vcpcloud/api/vcEmailService/getEmailCode?orderId=1917193290790019073
响应示例
{
"msg": "success",
"code": 200,
"ts": 1745835489149
}
修改真机ADI模板
修改实例云真机ADI模版, 传入云真机模版ID
必要条件:
实例创建时,需要创建为云真机类型 实例创建时的规格,需要和目标的ADI模版规格一致 实例创建时的安卓版本,需要和目标的ADI安卓版本一致
接口地址
/vcpcloud/api/padApi/replaceRealAdiTemplate
请求方式
POST
请求数据类型
application/json
请求BODY参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCodes | String[] | 是 | ||
| ├─ | AC22010020062 | String | 是 | 实例编号 |
| wipeData | false | Boolean | 是 | 是否清除数据 |
| realPhoneTemplateId | 186 | Long | 是 | 云真机模板id |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object | 响应数据 | |
| ├─taskId | 1 | Integer | 任务ID |
| ├─padCode | AC21020010001 | String | 实例编号 |
| ├─vmStatus | 1 | Integer | 实例在线状态(0:离线;1:在线) |
请求示例
{
"padCodes": ["AC32010250011"],
"wipeData": true,
"realPhoneTemplateId": 186
}
响应示例
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null
}]
}
SDK Token签发
签发临时 STS Token,用于对接入云手机服务的用户进行鉴权。
获取SDK临时token
接口地址
/vcpcloud/api/padApi/stsToken
请求方式
GET
请求数据类型
application/json
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object | 数据列表 | |
| ├─ token | 18df5803-48ce-4b53-9457-6a15feb1daca | String | sdk通信token |
响应示例
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"token": "18df5803-48ce-4b53-9457-6a15feb1daca"
}
}
SDK-Token签发(根据padCode)
签发临时 STS Token,用于对接入云手机服务的用户进行鉴权(该token只能用于请求的padCode)。
根据padCode获取SDK临时token
接口地址
/vcpcloud/api/padApi/stsTokenByPadCode
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| padCode | AC32010230001 | String | 是 | 实例编号 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object | 数据列表 | |
| ├─ token | 18df5803-48ce-4b53-9457-6a15feb1daca | String | sdk通信token |
请求示例
{"padCode":"AC32010230001"}
响应示例
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"token": "18df5803-48ce-4b53-9457-6a15feb1daca"
}
}
清除SDK授权Token
接口地址
/vcpcloud/api/padApi/clearStsToken
请求方式
POST
请求数据类型
application/json
请求Body参数
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| token | 123 | String | 是 |
响应参数
| 参数名 | 示例值 | 参数类型 | 参数描述 |
|---|---|---|---|
| msg | success | String | 响应消息 |
| code | 200 | Integer | 状态码 |
| data | Object | 数据列表 | |
| 请求示例 |
{"token":1234}
响应示例
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": null
}
回调相关
配置说明
需要客户在WEB端配置回调地址,配置地址成功则默认开启接收回调信息
异步执行ADB命令回调
使用场景
客户调用异步执行ADB命令,会通过该回调接口通知给客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1002 | 任务业务类型 |
| taskId | Integer | 1 | 任务id |
| padCode | String | AC22030022001 | 实例标识 |
| taskStatus | Integer | 3 | 任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| endTime | Long | 1756021166163 | 任务执行结束时间 |
| taskResult | String | Success | 任务结果 |
| taskContent | String | 任务内容 | |
| cmd | String | cd /root;ls | 执行的命令 |
| cmdResult | String | /ws | 执行的命令返回 |
示例
{
"cmd": "cd /root;ls",
"cmdResult": "/system/bin/sh: <stdin>[1]: cd: /root: No such file or directory",
"endTime": 1734942133000,
"padCode": "AC22030022001",
"taskContent": null,
"taskId": 10614,
"taskResult": "/system/bin/sh: <stdin>[1]: cd: /root: No such file or directory",
"taskStatus": 3
}
实例文件上传回调
使用场景
客户调用实例文件上传api,会通过该回调接口通知客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1009 | 任务业务类型 |
| taskId | Integer | 1 | 任务ID |
| result | boolean | true | 执行结果:true-成功,false-失败 |
| errorCode | String | 错误码 | |
| padCode | String | AC22030022001 | 实例编号 |
| fileId | String | cf08f7b685ab3a7b6a793b30de1b33ae34 | 文件id |
示例
{
"errorCode": null,
"fileId": "cfec132ab3c4e1aff5515c4467d9bbe460",
"padCode": "AC22030022001",
"result": true,
"taskBusinessType": 1009,
"taskId": 10659,
"taskResult": "Success",
"taskStatus": 3
}
应用安装回调
使用场景
客户调用应用安装,应用的安装情况会通过该回调接口通知给客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1003 | 任务业务类型 |
| taskId | Integer | 1 | 任务ID |
| apps | Object[] | 应用信息 | |
| ├─ appId | Integer | 10001 | 应用ID |
| ├─ appName | String | demo | 应用名称 |
| ├─ pkgName | String | com.xxx.demo | 包名 |
| ├─ padCode | String | AC22030022001 | 实例编号 |
| ├─ result | boolean | true | 安装结果的标识。true:成功,false:失败 |
| ├─ failMsg | String | 此应用已加入黑名单,禁止安装 | 失败信息 |
示例
{
"endTime": 1734939747000,
"padCode": "AC22030022001",
"taskBusinessType": 1003,
"taskContent": "",
"taskId": 10613,
"taskResult": "Success",
"taskStatus": 3
}
应用卸载回调
使用场景
客户调用应用卸载,应用卸载的情况会通过该回调接口通知给客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1004 | 任务业务类型 |
| taskId | Integer | 1 | 任务ID |
| apps | Object | 应用信息 | |
| ├─ appId | Integer | 10001 | 应用ID |
| ├─ appName | String | demo | 应用名称 |
| ├─ pkgName | String | com.xxx.demo | 包名 |
| ├─ padCode | String | AC22030022001 | 实例编号 |
| ├─ result | boolean | true | 安装结果的标识。true:成功,false:失败 |
示例
{
"endTime": 1734940052000,
"padCode": "AC22030022001",
"taskBusinessType": 1004,
"taskContent": "",
"taskId": null,
"taskResult": "Success",
"taskStatus": 3
}
应用启动回调
使用场景
客户调用应用启动,应用启动的情况会通过该回调接口通知给客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1007 | 任务业务类型 |
| taskId | Integer | 1 | 任务ID |
| taskStatus | Integer | 3 | 任务状态(-1:全失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| padCode | String | AC22030022001 | 实例标识 |
| pkgName | String | xxx.test.com | 包名 |
示例
{
"taskBusinessType": 1007,
"packageName": "com.quark.browser",
"padCode": "AC22030022001",
"taskId": 10618,
"taskStatus": 3
}
应用停止回调
使用场景
客户调用应用停止,应用停止的情况会通过该回调接口通知给客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1005 | 任务业务类型 |
| taskId | Integer | 1 | 任务ID |
| taskStatus | Integer | 3 | 任务状态(-1:全失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| padCode | String | AC22030022001 | 实例标识 |
| pkgName | String | xxx.test.com | 包名 |
示例
{
"taskBusinessType": 1005,
"packageName": "com.quark.browser",
"padCode": "AC22030022001",
"taskId": 10618,
"taskStatus": 3
}
应用重启回调
使用场景
客户调用应用重启,应用重启的情况会通过该回调接口通知给客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1006 | 任务业务类型 |
| taskId | Integer | 1 | 任务ID |
| taskStatus | Integer | 3 | 任务状态(-1:全失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成) |
| padCode | String | AC22030022001 | 实例标识 |
| pkgName | String | xxx.test.com | 包名 |
示例
{
"taskBusinessType": 1006,
"packageName": "com.quark.browser",
"padCode": "AC22030022001",
"taskId": 10618,
"taskStatus": 3
}
用户镜像上传回调
使用场景
用户镜像上传,结果通过该回调接口通知给客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 4001 | 任务业务类型 |
| imageId | String | img-2505244083302766 | 镜像id |
| taskStatus | Integer | 3 | 任务状态(-1:失败;3:完成) |
示例
{
"imageId": "img-2505244083302766",
"taskBusinessType": 4001,
"taskStatus": 3
}
一键新机回调
使用场景: 一键新机任务执行完成后,系统通过此接口通知客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1124 | 任务业务类型 |
| padCode | String | 212254 | 实例编号 |
| taskStatus | Integer | 3 | 任务状态(-1:全失败; -3:取消; -4:超时; 1:待执行; 2:执行中; 3:完成) |
| taskId | Integer | 1 | 任务ID |
| taskContent | String | - | 任务内容 |
| endTime | Long | 1756021166163 | 结束时间(毫秒时间戳) |
| taskResult | String | Success | 任务结果描述 |
实例升级镜像任务回调
使用场景: 实例升级镜像任务状态变更时发送通知。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1012 | 任务业务类型 |
| padCode | String | 212254 | 实例编号 |
| taskStatus | Integer | 3 | 任务状态(同上) |
| taskId | Integer | 1 | 任务ID |
| taskContent | String | - | 任务内容 |
| endTime | Long | 1756021166163 | 结束时间 |
| taskResult | String | Success | 任务结果 |
实例状态回调
使用场景: 实例本身的运行状态或连接状态发生变更时通知客户。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 999 | 任务业务类型 |
| padCode | String | 212254 | 实例标识 |
| padStatus | Integer | 10 | 实例状态: -1:已删除; 10:运行中; 11:重启中; 12:重置中; 13:升级中; 14:异常; 15:未就绪; 16:备份中; 17:还原中; 18:关机; 19:关机中; 20:开机中; 21:关机失败; 22:开机失败 |
| padConnectStatus | Integer | 1 | 实例连接状态: 1:在线; 0:离线 |
实例重启/重置任务回调
使用场景: 针对实例重启(1000)或重置(1001)操作的结果通知。
| 字段 | 类型 | 示例 | 说明 |
|---|---|---|---|
| taskBusinessType | Integer | 1000/1001 | 1000为重启,1001为重置 |
| padCode | String | 212254 | 实例编号 |
| taskStatus | Integer | 3 | 任务状态(-1:失败; 1:待执行; 2:执行中; 3:完成) |
| taskId | Integer | 1 | 任务ID |
| endTime | Long | 1756021166163 | 结束时间 |
| taskResult | String | Success | 任务结果 |