VMOS Cloud API
  • 简体中文
  • English
  • 简体中文
  • English
  • 产品介绍
  • 产品类型
  • 产品计费
  • OpenAPI
    • 使用指南
    • V2 简化签名
    • 接口文档
    • LLMs.txt(AI快速参考)
    • OpenAPI 规范(AI 专用)
    • 错误码
    • 实例属性列表
    • 安卓改机属性列表
    • 回调任务业务类型码
    • 更新日志
  • Android端 SDK
    • 示例搭建
    • 接口说明
    • 回调函数
    • 错误码
    • 更新日志
  • Web H5端 SDK
    • 示例搭建
    • 接口说明
    • H5 SDK 回调函数
    • 错误码
    • 更新日志
  • Windows PC端 SDK
    • 示例搭建
    • 接口说明
    • 回调函数
    • 更新日志
  • 端侧与云机通信开发
    • AIDL接入方式
    • 系统服务API(aidl)
  • 类XP、LSP Hook框架
    • 类Xposed、LSPosed框架
    • 传感器数据动态仿真
  • 相关协议

简介

本文档为您提供具体的 API 描述、语法、参数说明等,您可以调用 API 管理云手机服务资源。

接口概览

实例管理

接口接口名接口说明
/vcpcloud/api/padApi/setWifiList修改实例WIFI属性修改指定实例的WIFI列表属性
/vcpcloud/api/padApi/padDetail查询云机基础信息列表支持分页查询云机基础信息,包括运行状态、在线状态、算力占用等
/vcpcloud/api/padApi/restart实例重启对指定实例执行重启操作,用以解决系统无响应、卡死等问题
/vcpcloud/api/padApi/reset实例重置对实例执行重置操作,将会清理云机所有数据
/vcpcloud/api/padApi/padProperties查询实例属性查询指定实例的属性信息,包括系统属性信息和设置信息
/vcpcloud/api/padApi/batchPadProperties批量查询实例属性批量查询指定实例的属性信息,包括系统属性信息和设置信息
/vcpcloud/api/padApi/updatePadProperties修改实例属性动态修改实例的属性信息,包括系统属性和设置
/vcpcloud/api/padApi/updatePadAndroidProp修改实例安卓改机属性静态设置安卓改机属性,需要重启实例才能够生效
/vcpcloud/api/padApi/updateSIM根据国家Code修改SIM卡信息静态设置安卓改机属性,会随机生成SIM卡信息并重启实例
/vcpcloud/api/padApi/dissolveRoom停止推流停止指定实例推流,断开实例连接
/vcpcloud/api/padApi/checkIP智能IP代理检测检测代理IP是否可用,归属地信息是否正确
/vcpcloud/api/padApi/smartIp设置智能IP给云机设备设置智能IP,自动变更出口IP、SIM卡信息、GPS等
/vcpcloud/api/padApi/notSmartIp取消智能IP取消智能IP,还原云机内的出口IP、SIM卡信息、GPS等
/vcpcloud/api/padApi/getTaskStatus设备任务执行结果查询使用任务编号查询智能IP任务的执行结果
/vcpcloud/api/padApi/getListInstalledApp获取指定云机列表中所有安装的应用信息获取指定云机列表中所有安装的应用信息
/vcpcloud/api/padApi/updateTimeZone修改实例时区修改实例时区
/vcpcloud/api/padApi/updateLanguage修改实例语言修改实例语言
/vcpcloud/api/padApi/proxyInfo查询实例代理信息 (待上线)查询实例代理信息 (待上线)
/vcpcloud/api/padApi/replacePad一键新机一键新机功能,将当前实例数据全部清空并重新设置安卓属性
/vcpcloud/api/padApi/padReplaceNew一键新机(按部署地自动写SIM/GPS/时区)一键新机功能,按部署地自动写入SIM/GPS/时区
/vcpcloud/api/padApi/country查询一键新机支持国家列表查询一键新机支持国家列表
/vcpcloud/api/padApi/webview/version/list查询可用WebView版本查询所有可用的WebView版本列表
/vcpcloud/api/padApi/updateContacts更新通讯录更新通讯录
/vcpcloud/api/padApi/setProxy实例设置代理对指定实例设置代理信息
/vcpcloud/api/padApi/listInstalledApp实时查询已安装的应用列表实时查询已安装的应用列表
/vcpcloud/api/padApi/setKeepAliveApp设置应用自启动设置应用自启动(目前只支持安卓13、14、15)
/vcpcloud/api/padApi/replaceRealAdiTemplate修改真机ADI模板修改实例云真机ADI模板
/vcpcloud/api/padApi/asyncCmd异步执行ADB命令在一个或多个云手机实例中异步执行命令
/vcpcloud/api/padApi/switchRoot开关Root权限在一个或多个云手机实例中开关root权限
/vcpcloud/api/padApi/screenshot本地截图实例截图
/vcpcloud/api/padApi/getLongGenerateUrl获取实例实时预览图片获取指定的实例当前时间下的屏幕截图
/vcpcloud/api/padApi/upgradeImage升级镜像批量实例镜像升级
/vcpcloud/api/padApi/virtualRealSwitch升级真机镜像批量实例真机镜像升级
/vcpcloud/api/padApi/templateList分页获取真机模板分页获取真机模板
/vcpcloud/api/padApi/openOnlineAdb开启关闭ADB根据实例编号打开或关闭实例adb
/vcpcloud/api/padApi/adb获取ADB连接信息根据实例编号获取adb连接信息
/vcpcloud/api/padApi/batch/adb批量获取ADB连接信息 (待上线)根据实例编号列表批量获取或关闭adb连接信息 (待上线)
/vcpcloud/api/padApi/simulateTouch模拟触控通过传入xy坐标,模拟在实例中的触控事件
/vcpcloud/api/padApi/simulateClick模拟点击(拟人化)在指定坐标生成拟人化点击轨迹
/vcpcloud/api/padApi/simulateSwipe模拟滑动(拟人化)在指定屏幕范围内生成拟人化滑动轨迹
/vcpcloud/api/padApi/simulateLongPress模拟长按(拟人化)在指定坐标生成拟人化长按轨迹,按压时长可配置
/vcpcloud/api/padApi/padTaskDetail实例操作任务详情查询指定实例操作任务的执行结果详细信息
/vcpcloud/api/padApi/executeScriptInfo获取实例执行脚本结果 (待上线)通过执行脚本任务ID来获取实例执行脚本结果 (待上线)
/vcpcloud/api/padApi/screenshotInfo获取实例截图结果 (待上线)通过截图任务ID来获取实例的截图结果 (待上线)
/vcpcloud/api/padApi/padExecuteTaskInfo实例重启重置执行结果 (待上线)通过任务ID来获取实例重启重置执行结果 (待上线)
/vcpcloud/api/padApi/addPhoneRecord导入通话记录将通话记录数据导入至云手机中
/vcpcloud/api/padApi/inputText云机文本信息输入在云机中预先聚焦好输入框后输入指定文本信息
/vcpcloud/api/padApi/simulateSendSms模拟发送短信向实例内模拟下发一条短信
/vcpcloud/api/padApi/resetGAID重置GAID重置云机中的 advertising ID
/vcpcloud/api/padApi/injectAudioToMic注入音频到实例麦克风将一个音频文件注入到实例的麦克风
/vcpcloud/api/padApi/cleanAppHome清除进程并返回桌面 (待上线)清除手机系统进程以外的所有进程,并返回桌面 (待上线)
/vcpcloud/api/padApi/unmannedLive无人直播实例注入视频接口
/vcpcloud/api/padApi/injectPicture图片注入 (待上线)实例注入图片接口 (待上线)
/vcpcloud/api/padApi/replacement换机换机
/vcpcloud/api/padApi/gpsInjectInfo设置实例经纬度设置实例经纬度
/vcpcloud/api/padApi/confirmTransfer云机转移云机转移
/vcpcloud/api/padApi/setHideAccessibilityAppList隐藏辅助服务隐藏辅助服务
/vcpcloud/api/padApi/getOrderEquipmentList根据订单查询设备ID根据订单查询设备ID

资源管理

接口接口名接口说明
/vcpcloud/api/padApi/infos实例列表信息查询所有已订购实例列表信息

应用管理

接口接口名接口说明
/vcpcloud/api/padApi/installApp应用安装为单台或多台实例同时安装单个或多个APP,此接口为异步操作
/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/createMoneyOrder新建/续费云手机新建/续费云手机
/vcpcloud/api/padApi/userPadList云手机列表云手机列表
/vcpcloud/api/padApi/padInfo云手机信息查询云手机信息查询
/vcpcloud/api/padApi/getCloudGoodListsku套餐列表sku套餐列表
/vcpcloud/api/padApi/replaceRealAdiTemplate修改真机ADI模板修改真机ADI模板
/vcpcloud/api/padApi/createMoneyProOrder设备预售购买设备预售购买
/vcpcloud/api/padApi/queryProOrderList查询预售订单结果详情查询预售订单结果详情
/vcpcloud/api/padApi/imageVersionList安卓镜像版本集合安卓镜像版本集合
/vcpcloud/api/padApi/simulateTouch云机模拟触控云机模拟触控
/vcpcloud/api/padApi/createByTimingOrder创建计时设备订单创建计时设备订单
/vcpcloud//api/padApi/timingPadOn计时设备开机计时设备开机
/vcpcloud//api/padApi/timingPadOff计时设备关机计时设备关机
/vcpcloud//api/padApi/timingPadDel计时设备销毁计时设备销毁
/vcpcloud//api/padApi/vcTimingBackupList存储资源包列表存储资源包列表
/vcpcloud//api/padApi/getRenewStorageInfo云空间存储剩余容量云空间存储剩余容量
/vcpcloud//api/padApi/getVcStorageGoods云空间商品列表云空间商品列表
/vcpcloud//api/padApi/buyStorageGoods购买云空间扩容购买云空间扩容
/vcpcloud/api/padApi/selectAutoRenew云空间续费详情查询云空间续费详情查询
/vcpcloud/api/padApi/renewsStorageGoods聚合续费云空间商品聚合续费云空间商品
/vcpcloud/api/padApi/updateRenewStorageStatus云空间自动续费聚合商品开关云空间自动续费聚合商品开关
/vcpcloud/api/padApi/deleteUploadFiles删除备份资源包数据删除备份资源包数据
/vcpcloud/api/padApi/toggleProcessHide显示或隐藏应用进程显示或隐藏应用进程
/vcpcloud/api/padApi/addPhoneRecord导入通话记录导入通话记录
/vcpcloud/api/padApi/inputText指定输入框文本输入指定输入框文本输入
/vcpcloud/api/padApi/queryPadIdChangeRecords查询设备padCode变更记录查询padCode 变更
/vcpcloud/api/padApi/listPadBackupIds查询云盘备份ID列表查询当前用户名下所有可用云盘备份的 backupId
/vcpcloud/api/padApi/addBackup为指定云机批量创建云盘备份为指定云机批量创建云盘备份
/vcpcloud/api/padApi/queryBackupBatch查询备份批次进度按 batchId 查询备份进度,含每台云机的 backupId
/vcpcloud/api/padApi/clonePadBackup从云盘备份批量克隆到多台云机从云盘备份批量克隆到多台云机
/vcpcloud/api/padApi/openAutoRenew开启云机自动续费为单台云机开启自动续费
/vcpcloud/api/padApi/closeAutoRenew关闭云机自动续费为单台云机关闭自动续费
/vcpcloud/api/padApi/updatePadName云机重命名修改单台云机的名称
/vcpcloud/api/padApi/authorizePad设备授权给其他账号将单台云机临时授权给其他账号使用
/vcpcloud/api/padApi/activateByCode激活码激活云机批量激活码激活云机(异步)
/vcpcloud/api/padApi/queryActivationBatch查询批量激活任务进度按 batchId 查询批量激活进度

邮箱接码服务

接口接口名接口说明
/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查询静态住宅代理列表查询静态住宅代理列表

流程自动化(RPA)

面向系统对系统调用的自动化接入,分为「自动化」(流程模板下发与定时调度) 与「账号矩阵」(按账号运营) 两部分。

📦 Java 对接 Demo:点击下载 vmos-openapi-java-demo.zip —— 基于 V2 签名的最小可运行示例(JDK 11+,仅依赖 Gson),覆盖本组全部接口,每个接口对应一个带注释的方法。解压后在 Demo.java 顶部填入 ACCESS_KEY / SECRET_KEY,执行 mvn -q exec:java 即可运行(默认只跑只读接口)。ACCESS_KEY / SECRET_KEY 可在控制台左侧菜单 开发者 → API 页面查看。

自动化

模板由控制台的流程编辑器可视化编排产出,本组接口提供模板查询、任务批量下发/查询,以及定时调度(把模板按 Cron 定时下发到云机)能力。

接口接口名接口说明
/vcpcloud/api/padApi/automation/scripts/list流程模板列表分页查询当前用户可见的流程模板(含官方模板和本人私有模板)
/vcpcloud/api/padApi/automation/scripts/get流程模板详情按 scriptId 查询单个模板详情
/vcpcloud/api/padApi/automation/tasks/batch-dispatch批量派发流程任务批量派发流程任务(共用参数 或 逐台独立参数),单次上限 200 台
/vcpcloud/api/padApi/automation/tasks/list流程任务列表分页查询当前用户的流程任务记录,支持时间范围过滤
/vcpcloud/api/padApi/automation/tasks/get流程任务详情按 taskId 查询任务详情
/vcpcloud/api/padApi/automation/tasks/logs流程任务日志按 taskId 查询任务执行的步骤日志
/vcpcloud/api/padApi/automation/tasks/cancel取消流程任务取消待执行或运行中的流程任务
/vcpcloud/api/padApi/automation/scheduled-tasks/list定时任务列表分页查询当前用户的定时任务
/vcpcloud/api/padApi/automation/scheduled-tasks/create创建定时任务创建定时任务,可指定多台云机(每台生成一条),支持周期/一次性
/vcpcloud/api/padApi/automation/scheduled-tasks/update修改定时任务修改单条定时任务(单设备)
/vcpcloud/api/padApi/automation/scheduled-tasks/toggle启停定时任务启用 / 停用一条定时任务
/vcpcloud/api/padApi/automation/scheduled-tasks/delete删除定时任务删除一条定时任务

账号矩阵

面向账号维度的运营接口:账号查询、生命周期管理(创建 / 绑定 / 解绑 / 删除 / 分组),以及对账号批量触发模板执行(立即 / 定时)。执行时目标云机由账号当前已绑定的云机推导。凭据只写不读:创建时写入凭据(服务端 AES-GCM 加密落库)、执行时按 fromCredential 按账号解密注入,但明文不可经 OpenAPI 读回(凭据读取仅限 VMOS Cloud 控制台)。

接口接口名接口说明
/vcpcloud/api/padApi/automation/accounts/list账号列表分页查询当前用户的账号,支持平台/分组/状态/关键词/绑定状态过滤与排序
/vcpcloud/api/padApi/automation/accounts/get账号详情按 accountId 查询单个账号详情
/vcpcloud/api/padApi/automation/accounts/snapshots账号数据快照按 accountId 查询账号粒度的历史数据快照(粉丝/关注/作品/获赞时序)
/vcpcloud/api/padApi/automation/accounts/works账号作品列表分页查询账号已采集的作品(去重维度)
/vcpcloud/api/padApi/automation/accounts/work-snapshots账号作品数据快照按 accountId + workId 查询单作品的指标时序
/vcpcloud/api/padApi/automation/accounts/groups/list账号分组列表查询当前用户的账号分组
/vcpcloud/api/padApi/automation/accounts/operations/batch批量触发账号操作对多个账号批量触发模板立即执行;目标云机由各账号已绑定云机推导,凭据服务端注入
/vcpcloud/api/padApi/automation/accounts/scheduled-tasks/batch账号批量定时任务对多个账号批量创建定时任务(每账号一条),fire 时按账号注入凭据
/vcpcloud/api/padApi/automation/accounts/create创建账号写入账号(含凭据,加密落库);同平台同 handle 唯一
/vcpcloud/api/padApi/automation/accounts/bind绑定云机账号绑定云机(padCode);同云机同平台仅一个 active,可 force 换绑
/vcpcloud/api/padApi/automation/accounts/unbind解绑云机解除账号与云机的绑定
/vcpcloud/api/padApi/automation/accounts/delete删除账号软删除账号(凭据清除,可后台恢复)
/vcpcloud/api/padApi/automation/accounts/group移动账号分组把账号移动到指定分组(groupId 传 null 移出分组)

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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是实例编号
wifiJsonListString[]是wifi属性列表
├─SSID110101String是wifi名称 (不支持中文)
├─BSSID02:31:00:00:00:01String是接入点mac地址
├─MAC02:00:10:00:00:00String是wifi网卡mac地址
├─IP02:00:10:00:00:00String是wifi网络IP
├─MAC02:00:10:00:00:00String是wifi网卡mac地址
├─gateway192.168.120.1String是wifi网关
├─DNS11.1.1.1String是DNS1
├─DNS28.8.8.8String是DNS2
├─hessid0Integer否网络标识符
├─anqpDomainId0Integer否ANQP(Access Network Query Protocol)域ID
├─capabilities""String否WPA/WPA2等信息
├─level0Integer否信号强度(RSSI)
├─linkSpeed500Integer否当前Wi-Fi连接速率
├─txLinkSpeed600Integer否上传链路速度
├─rxLinkSpeed700Integer否下载链路速度
├─frequency2134Integer否Wi-Fi信道频率
├─distance-1Integer否估算的AP距离
├─distanceSd-1Integer否估算距离的标准差
├─channelWidth0Integer否信道带宽
├─centerFreq00Integer否中心频率0
├─centerFreq1-1Integer否中心频率1
├─is80211McRTTResponderfalseBoolean否是否支持 802.11mc(Wi-Fi RTT,测距技术

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject
├─ taskId1Integer任务ID
├─ padCodeAC2025030770RString实例编号
├─ vmStatus1Integer实例在线状态: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/padDetail

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
lastId1234Long否上一次查询返回的lastId,首次查询可不传或者传null
rows10Integer否每页记录数,最大支持单页 1000条
padCodesString[]否
├─ACP250331GLXXXXXString否实例编号
padIpsString[]否
├─192.168.1.1String否实例ip
online1Integer否实例在线状态:0-离线,1-在线
padStatus14Integer否实例运行状态 14-异常 其他-正常
computeOccupiedtrueBoolean否筛选算力占用情况,true-占用算力,false-未占用算力
netStorageResFlag1Integer否网存标记:1-网存实例,0-本地实例
brandsamsungString否实例使用的品牌(精确匹配)
brandModelSM-G996U1(8G)String否品牌对应的机型(精确匹配)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756360093771Long时间戳
traceIdewc83bwudvr4String链路追踪ID
dataObject响应数据
├─ rows10Integer每页记录数
├─ size10Integer当前页的数量
├─ lastId1234Long最后一条记录ID,用于下次分页查询
├─ hasNexttrueBoolean是否还有下一页
├─ pageDataobject[]列表
├─ ├─ padCodeACP250331GLXXXXXString实例编号
├─ ├─ padIpnullString实例 IP
├─ ├─ padStatus15Integer实例运行状态(10-运行中,11-重启中,12-重置中,13-升级中,14-异常,15-未就绪,16-备份中,17-恢复数据中,18-关机,19-关机中,20-开机中,21-关机失败,22-开机失败,23-删除中,24-删除失败,25-已删除,26-克隆中)
├─ ├─ online0Integer实例在线状态(0-离线,1-在线)
├─ ├─ computeOccupiedtrueBoolean算力占用情况,true-占用算力,false-未占用算力
├─ ├─ netStorageResFlag1Integer网存标记:1-网存实例,0-本地实例
├─ ├─ deviceStatus1Integer板卡状态:0-离线,1-在线

请求示例

{
 "lastId": null,
 "rows": 10,
 "padCodes": ["ACP250331GLXXXXX"],
 "padIps":["192.168.1.1"],
 "online":1,
 "padStatus":10,
 "computeOccupied":true, 
 "netStorageResFlag":1
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1756360093771,
    "data": {
        "rows": 10,
        "size": 10,
        "lastId": 552,
        "hasNext": true,
        "pageData": [{
            "padCode": "ACP250331GLXXXXX",
            "padIp": null,
            "padStatus": 15,
            "online": 0,
            "computeOccupied": true,
            "netStorageResFlag":1,
            "deviceStatus": 1
        }]
    }, 
    "traceId": "f9lvinjx337k"
}

实例重启

对指定实例执行重启操作,用以解决系统无响应、卡死等问题。

接口地址

/vcpcloud/api/padApi/restart

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC21020010001String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC21020010001String实例编号
├─vmStatus1Integer实例在线状态(0:离线;1:在线)
├─ taskStatus1Integer任务状态(-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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC21020010001String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC21020010001String实例编号
├─vmStatus1Integer实例在线状态(0:离线;1:在线)
├─ taskStatus1Integer任务状态(-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参数

参数名示例值参数类型是否必填参数描述
padCodeAC21020010001String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject
├─padCodeAC21020010001String实例编号
├─modemPropertiesListObject[]Modem-属性列表
├─├─propertiesNameIMEIString属性名称
├─├─propertiesValue412327621057784String属性值
├─systemPropertiesListObject[]系统-属性列表
├─├─propertiesNamero.build.idString属性名称
├─├─propertiesValueQQ3A.200805.001String属性值
├─settingPropertiesListObject[]setting-属性列表
├─├─propertiesNamero.build.tagsString属性名称
├─├─propertiesValuerelease-keysString属性值
├─oaidPropertiesListObject[]oaid-属性列表
├─├─propertiesNameoaidString属性名称
├─├─propertiesValue001String属性值

请求示例

{
 "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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是实例数量不多余200个
├─AC21020010001String是实例编号
├─AC21020010002String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─padCodeAC21020010001String实例编号
├─modemPropertiesListObject[]Modem-属性列表
├─├─propertiesNameIMEIString属性名称
├─├─propertiesValue412327621057784String属性值
├─systemPropertiesListObject[]系统-属性列表
├─├─propertiesNamero.build.idString属性名称
├─├─propertiesValueQQ3A.200805.001String属性值
├─settingPropertiesListObject[]setting-属性列表
├─├─propertiesNamero.build.tagsString属性名称
├─├─propertiesValuerelease-keysString属性值
├─oaidPropertiesListObject[]oaid-属性列表
├─├─propertiesNameoaidString属性名称
├─├─propertiesValue001String属性值

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC21020010001String是实例编号
modemPersistPropertiesListObject[]否Modem-持久化-属性列表
├─propertiesNameIMEIString否属性名称
├─propertiesValue412327621057784String否属性值
modemPropertiesListObject[]否Modem-非持久化-属性列表
├─propertiesNameIMEIString否属性名称
├─propertiesValue412327621057784String否属性值
systemPersistPropertiesListObject[]否系统-持久化-属性列表
├─propertiesNamero.build.idString否属性名称
├─propertiesValueQQ3A.200805.001String否属性值
systemPropertiesListObject[]否系统-非持久化-属性列表
├─propertiesNamero.build.idString否属性名称
├─propertiesValueQQ3A.200805.001String否属性值
settingPropertiesListObject[]否setting-属性列表
├─propertiesNamero.build.tagsString否属性名称
├─propertiesValuerelease-keysString否属性值
oaidPropertiesListObject[]否oaid-属性列表
├─propertiesNameoaidString否属性名称
├─propertiesValue001String否属性值

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC21020010001String实例编号
├─vmStatus1Integer实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
padCodeAC32010210001String否实例id
restartfalseBoolean否设置完成后自动重启(默认false)
props{}Object是系统属性(此字段为key-value定义)
├─ro.product.vendor.nameOP52D1L1String是属性设置

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject
├─taskId24Long任务id
├─padCodeAC32010210001String实例id
├─taskStatus1Integer任务状态(-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参数

参数名示例值参数类型是否必填参数描述
padCodeAC32010210001String是实例id
countryCodeUSString否国家code
props{}Object否系统属性(此字段为key-value定义)
├─ro.product.vendor.nameOP52D1L1String否属性设置

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756360113813Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject响应数据
├─taskId10002486Long任务ID
├─padCodeACN342712020172800String实例编号
├─vmStatus0Integer实例在线状态(0:离线;1:在线)
├─taskStatus1Integer任务状态(-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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC11010000031String是实例编号
├─AC22020020700String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject[]
├─successListObject[]成功集合
├─├─padCodeAC11010000031String实例编号
├─failListObject[]失败集合
├─├─padCodeAC22020020700String实例编号
├─├─errorCode120005Integer错误码
├─├─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参数

参数名示例值参数类型是否必填参数描述
host127.0.0.1String是代理信息 (ip或host)
port8080Integer是代理端口 (数字类型)
accountxxxxString是代理用户名
passwordxxxxString是代理密码
typeSocks5String是代理协议类型 Socks5、 http、https
countryUSString否国家-强行指定时必填 - 参数请参考:curl -x http://用户名:密码@ip:端口 https://ipinfo.io?token=注册就有的token 当使用了强行指定后,系统会直接使用指定的信息,不会检测代理
ip156.228.84.62String否ip-强行指定时必填
loc39.0438,-77.4874String否经,纬度-强行指定时必填
cityAshburnString否城市-强行指定时必填
regionVirginiaString否地区-强行指定时必填
timezoneAmerica/New_YorkString否时区-强行指定时必填

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
dataObject[]
├─proxyLocationUS-Los AngelesString归属地
├─publicIp62.112.132.92String出口IP
├─proxyWorkingtrueBoolean检测成功-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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22030010182String是实例编号
host127.0.0.1String是代理信息 (ip或host)
port8080Integer是代理端口 (数字类型)
accountxxxxString是代理用户名
passwordxxxxString是代理密码
typeSocks5String是代理协议类型 socks5、 http、https
modevpnString是设置代理的模式 vpn / proxy
bypassPackageListArray否包名 设置该包名不走代理
bypassIpListArray否ip 设置该ip不走代理
bypassDomainListArray否域名 设置该域名不走代理

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
dataTASK-278784482960609280String任务编号
msgsuccessString响应消息
ts1721739857317Long时间戳

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22030010182String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
dataTASK-278784482960609280String任务编号
msgsuccessString响应消息
ts1721739857317Long时间戳

请求示例

{
    "padCodes": [
        "AC32010160334"
    ]
}

响应示例

{
    "msg": "success",
    "code": 200,
    "data": "TASK-278784482960609280",
    "ts": 1737604726812
}

设备任务执行结果查询

使用任务编号查询任务的执行结果(智能IP使用)

接口地址

/vcpcloud/api/padApi/getTaskStatus

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskIdTASK-278784482960609280String是任务ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
dataObject[]任务结果
├─padCodeAC32010150162String实例编号
├─taskStatusSuccessfullyString任务状态:Executing-执行中 Successfully-已成功 Failed-已失败 Timedout-已超时
├─taskType10010Integer任务类型:10010-设置智能IP 10011-取消智能IP
msgsuccessString响应消息
ts1721739857317Long时间戳

请求示例

{
    "taskId": "TASK-278784482960609280"
}

响应示例

{
    "msg": "success",
    "code": 200,
    "data": [
        {
            "padCode": "AC32010150162",
            "taskStatus": "Successfully",
            "taskType": 10010
        }
    ],
    "ts": 1738999472135
}

获取指定云机列表中所有安装的应用信息

接口地址

/vcpcloud/api/padApi/getListInstalledApp

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeListString[]是
├─AC22020020793String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
dataObject[]
├─appNameVMOSCloudStringAPP名称
├─packageNamecom.geniuscloud.overseasStringAPP包名

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─padCodeAC32010250011String否实例编号
autoInstall1Integer否是否需要⾃动安装 1需要、0不需要。不填默认不需要。仅对apk类型的⽂件⽣效
fileUniqueId1e5d3bf00576ee8f3d094908c0456722String否系文件id唯一标识
customizeFilePath/Documents/String否⾃定义路径。非必传,需以/开头。(示例:"/DCIM/", "/Documents/", "/Download/", "/Movies/", "/Music/", "/Pictures/")
fileNamethreadsString否文件名称
packageNamecom.zhiliaoapp.musicallyString否文件包名
urlhttps://file.vmoscloud.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.apkString否文件安装路径
md51e5d3bf00576ee8f3d094908c0456722String否系文件唯一标识
isAuthorizationfalseBoolean否是否授权(默认全授权)
iconPathhttps://file.vmoscloud.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.pngString否安装时的图标展示

响应参数

参数名示例值参数类型参数描述
code200userRomPageInteger状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
dataObject[]
├─padCodeAC22010020062String实例编号
├─taskId1Integer任务ID
├─vmStatus1Integer实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
timeZoneAsia/ShanghaiString是UTC标准时间
padCodesArray是实例列表

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject
├─taskId24Long任务ID
├─padCodeAC22030010001String房间号
├─vmStatus实例状态Integer实例在线状态(0:离线;1:在线)
├─taskStatus1Integer任务状态(-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参数

参数名示例值参数类型是否必填参数描述
languagezhString是语言
countryCNString否国家
padCodesArray是实例列表

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject
├─taskId24Long任务ID
├─padCodeAC22030010001String房间号
├─vmStatus实例状态Integer实例在线状态(0:离线;1:在线)
├─ taskStatus1Integer任务状态(-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/openAutoRenew

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeACP250417QAGGQ3SString是云机实例编号

业务说明

单台操作,每次仅支持一个 padCode;该云机须归属当前账号且未过期。短时间内重复提交会被限频,请勿频繁调用。

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756313802157Long时间戳
traceIdewab9p712ww0String链路追踪ID

请求示例

{
 "padCode": "ACP250417QAGGQ3S"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1756313802157,
    "traceId": "ewab9p712ww0"
}

关闭云机自动续费

为单台云机关闭自动续费,关闭后到期不再自动续期。

接口地址

/vcpcloud/api/padApi/closeAutoRenew

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeACP250417QAGGQ3SString是云机实例编号

业务说明

单台操作,每次仅支持一个 padCode;该云机须归属当前账号。短时间内重复提交会被限频,请勿频繁调用。

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756313802157Long时间戳
traceIdewab9p712ww0String链路追踪ID

请求示例

{
 "padCode": "ACP250417QAGGQ3S"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1756313802157,
    "traceId": "ewab9p712ww0"
}

云机重命名

修改单台云机的名称。

接口地址

/vcpcloud/api/padApi/updatePadName

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeACP250417QAGGQ3SString是云机实例编号
padName我的云机01String是云机新名称

业务说明

单台操作,每次仅支持一个 padCode;该云机须归属当前账号;padName 不能为空。

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756313802157Long时间戳
traceIdewab9p712ww0String链路追踪ID

请求示例

{
 "padCode": "ACP250417QAGGQ3S",
 "padName": "我的云机01"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1756313802157,
    "traceId": "ewab9p712ww0"
}

设备授权给其他账号

将单台云机临时授权给另一个账号使用;授权期间被授权账号可访问该云机,设备归属不变。

接口地址

/vcpcloud/api/padApi/authorizePad

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeACP250417QAGGQ3SString是云机实例编号
authorizedAccount13800000000String是被授权账号(注册手机号或邮箱)
minutes60Integer条件必填授权时长(分钟),equiAuthorize=false 时必填
equiAuthorizefalseBoolean否是否按设备剩余有效期授权,默认 false
permissionrestartPad,adbString否操作权限白名单,逗号分隔,留空为全部

permission 可选值

取值说明
replacePad一键新机
replacement换机
restartPad重启
padReset重置
adbADB
uploadFile上传文件
live推流直播

业务说明

单台操作,每次仅支持一个 padCode;该云机须归属当前账号。被授权账号须为平台已注册账号,且不能是本人。equiAuthorize=true 时按设备剩余有效期授权并忽略 minutes;为 false 时 minutes 必填且需大于 0,授权时长不能超过设备剩余有效期。计时(按分钟计费)设备不支持授权;处于待机状态的设备需先恢复后再授权。

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756313802157Long时间戳
traceIdewab9p712ww0String链路追踪ID

请求示例

{
 "padCode": "ACP250417QAGGQ3S",
 "authorizedAccount": "13800000000",
 "minutes": 60,
 "equiAuthorize": false,
 "permission": "restartPad,adb"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1756313802157,
    "traceId": "ewab9p712ww0"
}

设置实例经纬度

接口地址

/vcpcloud/api/padApi/gpsInjectInfo

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
longitude116.397455Float是经度
latitude39.909187Float是纬度
altitude8Float否海拔 (需要更新到最新镜像)
speed8Float否速度,m/s (20251024之后的镜像)
bearing0Float否速度方向,° (20251024之后的镜像)
horizontalAccuracyMeters0.1Float否水平精度 (20251024之后的镜像)
padCodesArray是实例列表

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
traceIdewc84g8si0oyString链路追踪ID
msgsuccessString响应消息
ts1756021167163Long时间戳
dataBoolean

请求示例{"creater":

{
 "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参数

参数名示例值参数类型是否必填参数描述
padCodesArray是实例列表
├─padCodeAC32010250011String否实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject
├─taskId24Long任务ID
├─padCodeAC22030010001String房间号
├─vmStatus实例状态Integer实例在线状态(0:离线;1:在线)
├─ taskStatus1Integer任务状态(-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

路径格式转换规则说明:
/data/system/... -> /system/...
/data/misc/... -> /misc/...
/data/data/... -> /data/... (去掉第二个 data,例如 /data/data/com.xx -> /data/com.xx)
裸路径补全前缀:system/... -> /system/...;misc/... -> /misc/...;data/... -> /data/...
/sdcard/... -> /media/0/... (将 /sdcard 开头的路径转换为 /media/0 开头)
其他路径:保持不变

接口地址

/vcpcloud/api/padApi/replacePad

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodes[]Array是实例id列表
countryCodeSGString否国家编码(具体查看:https://chahuo.com/country-code-lookup.html)
realPhoneTemplateId65Long否模板id参考 分页获取真机模板
androidProp{"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"}Object否参考 安卓改机属性列表
replacementRealAdiFlagfalseBoolean否真机是否随机adi模板(false 不随机 true 随机)
excludeRealPhoneTemplateIds[101,102]Long[]否随机ADI模板时需排除的模板ID列表
certificate参考手机根证书String否手机根证书
wipeDatatrueBoolean否是否清除用户数据,默认true(CBS2.4.4以上版本支持)
wipeSpecificData["/fonts","/media"]String[]否wipeData为false该参数生效;需要清除哪些数据
keepSpecificData["/fonts","/media"]String[]否wipeData为false该参数生效;需要保留哪些数据(与wipeSpecificData互斥)
enableCpuCoreConfigtrueBoolean否是否启用CPU大小核配置,本功能基于 Android cpuset 机制,为云手机物理机上的多个容器提供静态错峰的 CPU 资源分配方案。通过精细化划分大小核(Little/Big Cores)资源,显著提升单容器的性能稳定性与用户体验。
webviewId2066351288679604225Long否WebView 版本 ID,参考查询可用WebView版本

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject
├─taskId12818Long任务ID
├─padCodeAC22030010124String实例编号
├─vmStatus实例状态Integer实例在线状态(0:离线;1:在线)
├─taskStatus1Integer任务状态(-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"],
  "webviewId": 2066351288679604225
}

响应示例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"

}

一键新机(按部署地自动写SIM/GPS/时区)

接口地址

/vcpcloud/api/padApi/padReplaceNew

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodes["ACP250328SSXVKN1"]String[]是云机编号(不支持 ACN 前缀)
setProxyFlagtrueBoolean是true 才会按部署地刷 SIM
wipeDatatrueBoolean否是否清数据,默认 true
keepLangTimezonefalseBoolean否是否保留旧语言/时区,默认 false
androidProp{"persist.sys.locale": "zh-CN"}Object否自定义 Android 系统属性,键值对格式。例如 persist.sys.locale、persist.sys.timezone 等,优先级高于自动生成的属性
webviewId2066351288679604225Long否WebView 版本 ID,参考查询可用WebView版本

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject

请求示例

{
  "padCodes": ["ACP250328SSXVKN1"],
  "setProxyFlag": true,
  "wipeData": true,
  "keepLangTimezone": false,
  "androidProp": {
    "persist.sys.locale": "zh-CN",
    "persist.sys.timezone": "Asia/Shanghai"
  },
  "webviewId": 2066351288679604225
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1721739857317,
  "traceId": "ewc84g8si0oy",
  "data": {}
}

状态码说明

code说明
200成功(异步执行,需轮询任务状态确认结果)
1038设备编号不能为空
1210无设备操作权限
1026计时设备不支持
1219重置过于频繁(3 分钟内只能 1 次)

查询一键新机支持国家列表

接口地址

/vcpcloud/api/padApi/country

请求方式

GET

请求数据类型

application/json

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject[]
├─codeADString国家编码
├─nameAndorraString国家名称(英文)

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1730192434383,
  "traceId": "ewab8qjqbaio",
  "data": [{
    "code": "AD",
    "name": "Andorra"
  }]
}

查询可用WebView版本

接口地址

/vcpcloud/api/padApi/webview/version/list

请求方式

POST

请求数据类型

application/json

请求Body参数

无

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject[]可用版本列表,无可用版本时为空数组
├─id12Integer版本ID
├─version137.0.7151.61StringWebView版本号
├─ossUrlhttps://xxx/webview/137.apkString安装包下载地址
├─fileMd59e107d9d372bb6826bd81d3542a419d6String安装包文件MD5
├─descriptionChromium WebView 137 稳定版String版本说明

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1730192434383,
  "traceId": "ewab8qjqbaio",
  "data": [
    {
      "id": 12,
      "version": "137.0.7151.61",
      "ossUrl": "https://xxx.oss-cn-hongkong.aliyuncs.com/webview/137.apk",
      "fileMd5": "9e107d9d372bb6826bd81d3542a419d6",
      "description": "Chromium WebView 137 稳定版"
    },
    {
      "id": 13,
      "version": "138.0.7204.50",
      "ossUrl": "https://xxx.oss-cn-hongkong.aliyuncs.com/webview/138.apk",
      "fileMd5": "abcd1234ef5678901234567890abcdef",
      "description": ""
    }
  ]
}

版本数据变动较少,建议本地缓存(如 5 分钟),无需每次新机都拉取。

换机

接口地址

/vcpcloud/api/padApi/replacement

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeAC22030010001String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
dataObject[]
├─equipmentId358504Long设备编号
├─padCodeAC32011030092String实例编号

请求示例

{ 
    "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是实例列表
formatpng / jpgString否图片格式,枚举值:png、jpg,默认png, png格式不支持压缩
height800String否缩放高度(像素,不传则保持原始比例) 不填默认使用云机分辨率
width1280String否缩放宽度(像素,不传则保持原始比例) 不填默认使用云机分辨率
quality60Integer否图片质量(百分比:0~100,不传则为50%) 经测试低于60会图片模糊

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
dataObject[]
├─padCodeAC32011030092String实例编号
├─urlhttp://xxx.pngString访问地址
├─expireAt1756024767163LongURL到期时间(毫秒时间戳)
├─successtrueBoolean是否成功生成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列表
fileUniqueIdcfca25a2c62b00e065b417491b0cf07ffcString否通讯录文件ID
operateType-1Interger否-1 新增联系人 0 删除联系人 1 覆盖联系人 ,默认为-1
infoObject[]否通讯录信息
├─firstNametomString否姓名
├─phone13111111111String否手机号
├─emailtom@gmail.comString否邮箱

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject
├─taskId12818Long任务ID
├─padCodeAC22030010124String实例编号
├─taskStatus1Integer任务状态(-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参数

参数名示例值参数类型是否必填参数描述
account2222String否账号
password2222String否密码
ip47.76.241.5String否IP
port2222Integer否端口
enabletrueBoolean是启用
padCodesArray是实例列表
proxyTypevpnString否支持参数:proxy、vpn
proxyNamesocks5String否支持参数:socks5、http-relay(包含http、https)
modelbypassString否名单生效模式:bypass(默认)/limit
bypassPackageListArray否包名,设置后不走代理(model=bypass)
bypassIpListArray否IP,设置后不走代理(model=bypass)
bypassDomainListArray否域名,设置后不走代理(model=bypass)
limitPackageListArray否包名,仅其走代理(model=limit)
limitIpListArray否IP,仅其走代理(model=limit)
limitDomainListArray否域名,仅其走代理(model=limit)
sUoTtrueBoolean否是否开启udp连接 默认为false

model 决定名单走向:bypass(默认)名单内直连、其余走代理;limit 名单内走代理、其余直连。请按所选 model 填写对应名单(bypass* 或 limit*)。

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject
├─taskId24Long任务ID
├─padCodeAC22030010001String房间号
├─vmStatus实例状态Integer实例在线状态(0:离线;1:在线)
├─taskStatus1Integer任务状态(-1:任务已存在,请勿重复提交;1:任务已添加)

请求示例

{
 "padCodes": [
  "AC32010140023"
 ],
 "account": "2222",
 "password": "2222",
 "ip": "47.76.241.5",
 "port": 2222,
 "enable": true,
    "model": "bypass",
    "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参数

参数名示例值参数类型是否必填参数描述
padCodesAC32010250001String[]是实例编号
appNameString否应用名称

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewc84g8si0oyString链路追踪ID
ts1756021167163Long时间戳
dataObject
├─padCodeAC32010250001String实例编号
├─appsObject[]应用集合
├─├─appName测试appString应用名称
├─├─packageNamecom.xxx.xxxString包名
├─├─versionCode150600String版本号
├─├─versionName15.6.0String版本名称
├─├─appState0Integer0 已完成 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参数

参数名示例值参数类型是否必填参数描述
padCodesAC32010250001String[]否实例编号
applyAllInstancesfalseBoolean是是否应用所有实例模式
appInfosObject[]否
├─serverNamecom.example/com.example.service.TaskServiceString是com.xxx.xxx(包名)/com.xxx.xxx.service.DomeService (需要启动的服务完整路径)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
datanull

请求示例

{
 "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参数

参数名示例值参数类型是否必填参数描述
nameCloudROM-13String是ROM名称
updateLog更新String是更新日志
androidVersion13String是安卓版本
versionv1.0.0String是版本
downloadUrlhttps://file.vmoscloud.com/userFile/userRom/d281d848eff49adee2dda2475235b80b2.tarString是地址
packageSize236978175String是大小(单位:Byte)

响应参数

字段名示例值类型说明
code200Integer状态码
msgsuccessString响应消息
ts1736326542985Long时间戳
dataimg-2505287582886572String镜像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参数

参数名示例值参数类型是否必填参数描述
padCodesAC32010250001String[]是实例编号(最多500个)
appInfosObject[]是隐藏应用列表,空数组表示清空(0-500个)
├─packageNamecom.tencent.mmString否应用包名,留空或空数组表示清空

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
datanull

请求示例

{
 "padCodes": [
  "AC002",
  "AC001"
 ],
 "appInfos": [{
   "packageName": "com.tencent.mm"
  }]
}

清空隐藏列表示例

{
 "padCodes": [
  "AC002",
  "AC001"
 ],
 "appInfos": []
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1736326542985,
    "data": null
}

修改真机ADI模板

修改实例云真机ADI模版, 传入云真机模版ID

必要条件:

  1. 实例创建时,需要创建为云真机类型
  2. 实例创建时的安卓版本,需要和目标的ADI安卓版本一致

接口地址

/vcpcloud/api/padApi/replaceRealAdiTemplate

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC21020010001String是实例编号
wipeDatafalseBoolean是是否清除数据
realPhoneTemplateId186Long是云真机模板id

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC21020010001String实例编号
├─vmStatus1Integer实例在线状态(0:离线;1:在线)
├─taskStatus1Integer任务状态(-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当前实例中有不满足升级真机条件,请检查实例检查实例是否是真机
110099ADI模板不存在,请检查参数检查ADI模板信息

异步执行ADB命令

在一个或多个云手机实例中异步执行命令

接口地址

/vcpcloud/api/padApi/asyncCmd

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22020020793String是实例编号
scriptContentcd /root;lsString是ADB命令,多条命令使用分号隔开

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewc84g8si0oyString链路追踪ID
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC22020020793String实例编号
├─vmStatus1Integer实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22020020793String是实例编号
globalRootfalseBoolean否是否开启全局root权限,默认不开启
packageNamecom.exampleString否应用包名(非全局root必传)多个包名通过,连接
rootStatusroot开启状态Integer是root状态,0:关闭 1:开启

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC22020020793String实例编号
├─vmStatus1Integer实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC21020010231String是实例编号
rotation0Integer是截图画面横竖屏旋:0:截图方向不做处理,默认;1:截图画面旋转为竖屏时:a:手机竖屏的截图,不做处理。b:手机横屏的截图,截图顺时针旋转90度。
broadcastfalseBoolean否事件是否广播(默认false)
definitionfalseInteger否清晰度 取值范围0-100
resolutionHeightfalseInteger否分辨率 - 高 大于1
resolutionWidthfalseInteger否分辨率 - 宽 大于1

响应参数

参数名示例值参数类型是否必填参数描述
code200Integer是状态码
msgsuccessString是响应消息
ts1756021167163Long是时间戳
dataObject[]
├─taskId1Integer否任务ID
├─padCodeAC21020010231String否实例编号
├─vmStatus1Integer是实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC11010000031String是实例编号
rotation0Integer是截图画面横竖屏旋:0:截图方向不做处理,默认;1:截图画面旋转为竖屏时:a:手机竖屏的截图,不做处理。b:手机横屏的截图,截图顺时针旋转90度。
broadcastfalseBoolean否事件是否广播(默认false)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─padCodeAC11010000031String实例编号
├─urlhttp://xxx.armcloud.pngString访问地址
├─expireAt1756024767163LongURL到期时间(毫秒时间戳)
├─successtrueBoolean是否成功生成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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22030010182String是实例编号
imageIdmg-24061124017String是镜像ID
wipeDatafalseBoolean是是否清除实例数据(data分区), true清除,false不清除
enableCpuCoreConfigtrueBoolean否是否启用CPU大小核配置,本功能基于 Android cpuset 机制,为云手机物理机上的多个容器提供静态错峰的 CPU 资源分配方案。通过精细化划分大小核(Little/Big Cores)资源,显著提升单容器的性能稳定性与用户体验。

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject[]
├─padCodeAC22030010182String实例编号
├─taskId1Integer任务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执行升级镜像命令失败实例状态有误,联系管理员

隐藏辅助服务

下发需隐藏辅助服务权限的应用列表到指定实例,设置成功后被设置隐藏权限的应用将不会被同实例上其他应用检测到申请了辅助服务权限。 说明: 1.指定应用本身能获取到自己开了无障碍 2.三方应用获取不到指定应用开了无障碍 3.无障碍列表里面也没有这个指定应用

接口地址

/vcpcloud/api/padApi/setHideAccessibilityAppList

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodes["AC32010250001"]String[]是实例编号数组(最多200个)
appInfos[]Object[]是隐藏应用列表对象数组,传空数组[]表示清空(0-200个)
├─packageNamecom.tencent.mmString是(数组非空时)应用包名。特殊值:传 * 或 ALL 表示隐藏所有应用的辅助服务权限

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
datanull

请求示例 - 隐藏指定应用

{
 "padCodes": [
  "AC002",
  "AC001"
 ],
 "appInfos": [{
   "packageName": "com.tencent.mm"
  }]
}

请求示例 - 清空隐藏列表

{
 "padCodes": [
  "AC002",
  "AC001"
 ],
 "appInfos": []
}

请求示例 - 隐藏所有应用

{
 "padCodes": [
  "AC002",
  "AC001"
 ],
 "appInfos": [{
   "packageName": "*"
  }]
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1736326542985,
    "data": null
}

升级真机镜像

批量实例真机镜像升级

接口地址

/vcpcloud/api/padApi/virtualRealSwitch

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22030010182String是实例编号
imageIdmg-24061124017String是镜像ID
wipeDatafalseBoolean是是否清除实例数据(data分区), true清除,false不清除
realPhoneTemplateId178Integer否真机模板ID upgradeImageConvertType=real时必填
upgradeImageConvertTypevirtualString是转换镜像类型 virtual:虚拟机 real:云真机
screenLayoutId14Integer否屏幕布局ID upgradeImageConvertType=virtual时必填
certificate参考手机根证书String否自定义手机根证书
deviceAndroidProps{"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"}Object否安卓属性配置,参考 安卓改机属性列表(注意:CBS版本2.4.4以下不支持 )
enableCpuCoreConfigtrueBoolean否是否启用CPU大小核配置,本功能基于 Android cpuset 机制,为云手机物理机上的多个容器提供静态错峰的 CPU 资源分配方案。通过精细化划分大小核(Little/Big Cores)资源,显著提升单容器的性能稳定性与用户体验。

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewc84g8si0oyString链路追踪ID
dataObject[]
├─padCodeAC22030010182String实例编号
├─taskId1Integer任务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参数

参数名示例值参数类型是否必填参数描述
page1Integer否页码 默认1
rows10Integer否每页显示数量 默认10 取值范围为1-100

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObjectObject主要数据容器
├─ recordsObject[]Object[]指纹记录列表
├─├─ goodFingerprintId36Integer指纹记录唯一ID
├─├─ goodConfigIdnullInteger关联的配置ID
├─├─ goodFingerprintNameGoogle Pixel 7 ProString设备指纹名称
├─├─ goodFingerprintModelnullString设备具体型号
├─├─ goodFingerprintBrandnullString设备品牌
├─├─ goodAndroidVersion13StringAndroid 系统版本
├─├─ goodStatusnullInteger指纹记录状态
├─ total638Integer总记录数
├─ size10Integer每页条数
├─ current1Integer当前页码
├─ orders[]Array排序字段
├─ optimizeCountSqltrueBoolean是否优化 count 查询
├─ searchCounttrueBoolean是否执行总数统计
├─ maxLimitnullInteger最大限制条数
├─ countIdnullStringcount 查询标识
├─ pages64Integer总页数
ts1770257529924Long/Number时间戳(毫秒)

请求示例

{
    "page": 1,
    "rows": 10
}

响应示例

{
    "msg": "success",
        "code": 200,
        "data": {
        "records": [
            {
                "goodFingerprintId": 36,
                "goodConfigId": null,
                "goodFingerprintName": "Google Pixel 7 Pro",
                "goodFingerprintModel": null,
                "goodFingerprintBrand": null,
                "goodAndroidVersion": "13",
                "goodStatus": null
            } ],
            "total": 638,
            "size": 10,
            "current": 1,
            "orders": [],
            "optimizeCountSql": true,
            "searchCount": true,
            "maxLimit": null,
            "countId": null,
            "pages": 64
    }
    "ts": 1770257529924
}

批量获取实例机型信息

(待上线) 根据实例编号批量获取对应的实例的机型信息。

接口地址

/vcpcloud/api/padApi/modelInfo

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22030010182String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewbssur1jbwgString链路追踪ID
ts1756021167163Long时间戳
dataObject[]
├─padCodeAC22030010182String实例编号
├─imei524803173613682StringIMEI
├─serialno01NM5ON34M4OString序列号
├─wifimac04:3a:6c:e5:e9:8d:62:d6:4aStringWi-Fi的mac地址
├─androididaa6bcedf1426546cStringAndroid实例唯一标识
├─modelMi 10 ProString型号
├─brandXiaomiString品牌
├─manufacturerXiaomiString厂商
├─isRoot1String是否是ROOT权限
├─width720Integer云手机的宽 最大不超过1080
├─height1280Integer云手机的高 最大不超过1920
├─memoryLimit1024Integer内存限额
├─bluetoothaddr3A:1F:4B:9C:2D:8EString蓝牙地址
├─phonenum1112341234String手机号码
├─romVersionandroid13String安卓版本
├─dataSize2367381504Integer内存大小(b)
├─dataSizeAvailable365830144Integer剩余可用(b)
├─dataSizeUsed10242001551360已使用(b)
├─romVersionandroid14Stringrom版本

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22030010124String是实例编号
upBandwidth10.00float是上行带宽 Mbps (0:不限制;-1:限制上网)
downBandwidth10.00float是下行带宽 Mbps (0:不限制;-1:限制上网)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
traceIdewbssur1jbwgString链路追踪ID
dataObject[]
├─taskId679Integer任务ID
├─padCodeAC32010140011String实例编号
├─vmStatus1Integer实例在线状态(0:离线;1:在线)
├─taskStatus1Integer任务状态(-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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是实例列表(传入实例数量1-200个)
├─AC32010250032String是实例编号
openStatus1Integer是开启关闭ADB状态(1开启 0或者不传默认关闭)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1721739857317Long时间戳
dataObject[]
├─taskId16147Integer任务id
├─padCodeAC32010250032String实例编号
├─taskStatus3Integer任务状态(-1全失败,-2部分失败,-3取消,-4超时,-5异常,1,等待执行,2执行中,3完成)
├─taskResultsuccessString任务结果

请求示例

{   
    "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参数

参数名示例值参数类型是否必填参数描述
padCodeAC32010250032String是实例编号
enabletrueBoolean是ADB 状态 true:开启 false:关闭
expireMinutes2880Integer否ADB有效期,有效期长1天到7天,单位:分钟,默认1440

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewbssur1jbwgString链路追踪ID
ts1736922808949Long时间戳
dataObject[]
├─padCodeAC32010250032String实例编号
├─commandssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -NfStringSSH 连接指令
├─expireTime2025-01-16 14:32:00Stringadb 链接有效期
├─enabletrueBooleanADB 状态 true:开启 false:关闭
├─key3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==String连接密钥
├─adbadb connect localhost:8577Stringadb连接信息

请求示例

{   
    "padCode": "AC32010250032",
    "enable": true,
    "expireMinutes": 2880
}

响应示例

{
    "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个
enabletrueBoolean是是否开启ADB,true为开启并返回连接信息,false为关闭ADB

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewbssur1jbwgString链路追踪ID
ts1736922808949Long时间戳
dataObject
├─successListObject[]批量执行成功的结果列表
│ ├─padCodeAC32010250032String实例编号
│ ├─commandssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -NfStringSSH连接指令
│ ├─expireTime2025-01-16 14:32:00Stringadb链接有效期
│ ├─enabletrueBooleanADB状态 true:开启 false:关闭
│ ├─key3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==String连接密钥
│ ├─adbadb connect localhost:8577Stringadb连接信息
├─failedListObject[]批量执行失败的结果列表
│ ├─padCodeAC32010250034String实例编号
│ ├─errorMsg实例未运行String失败原因
│ ├─errorCodePAD_NOT_RUNNINGString错误码

请求示例

{
    "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是接收转移设备的账户邮箱

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1731055053049Long时间戳
datatrueBoolean转移是否成功(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参数

参数名示例值参数类型参数描述
padCodes2200String[]需要触发点击的实例编码
width120Integer容器宽度
height120Integer容器高度
pointCount1Integer多点触控(多个手指点击云机屏幕效果),默认1,范围1-10,传其他数字均使用默认值
positions[{"actionType":0,"x":100,"y":100,"nextPositionWaitTime":20}]Object[]点击坐标组
├─ actionType1Integer操作类型(0:按下;1:抬起;2:触摸中)
├─ x100float点击的x坐标
├─ y100float点击的y坐标
├─ nextPositionWaitTime100Integer多组坐标时,触发下一组点击坐标的等待间隔时间ms毫秒值
├─ swipe-1float滚动距离 -1 下划 1 上划
├─ touchTypegestureSwipeStringgestureSwipe划动事件 gesture触控事件 keystroke按键事件(默认是按下抬起)
├─ keyCode1Integer用于标识用户按下或释放的具体按键
├─ pressure0.5float触点压力
├─ size0.5float触点占屏幕面积比例

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736922808949Long时间戳
traceIdewbssur1jbwgString链路追踪ID
dataObject[]
├─padCodeAC32032String实例编号
├─taskId10004759Long任务id
├─vmStatus0String实例在线状态
├─taskStatus1Integer任务状态(-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

    }
  ]
}

触控模拟接口 (Touch Simulation API)

概述

提供两个触控模拟接口,用于在云手机设备上模拟人类的点击和滑动行为。接口通过生成拟人化的触控轨迹(包括位置、压力、时间间隔等特征),使自动化操作看起来更像真实用户行为。

基础路径: /vcpcloud/api/padApi


1. 模拟点击 {#模拟点击}

在指定坐标生成拟人化点击轨迹。点击包含按下、蓄力、微移动、松开四个阶段,模拟人类手指触碰屏幕的真实过程。

接口地址

POST /vcpcloud/api/padApi/simulateClick

Content-Type: application/json

请求参数

参数类型必填默认值说明
padCodesArray[String]是-设备编码列表,指定哪些设备执行操作
xNumber是-点击目标 X 坐标(屏幕物理像素)
yNumber是-点击目标 Y 坐标(屏幕物理像素)
widthInteger否720屏幕宽度(用于坐标归一化)
heightInteger否1280屏幕高度(用于坐标归一化)

请求示例

{
  "padCodes": ["PAD_001", "PAD_002"],
  "x": 360,
  "y": 640,
  "width": 720,
  "height": 1280
}

响应

{
  "code": 200,
  "msg": "success",
  "data": { ... }
}

频率限制:同一设备 2 秒内重复请求会被拒绝;错误码 1218,错误信息 "请勿频繁操作"。


2. 模拟滑动 {#模拟滑动}

在指定屏幕范围内生成拟人化滑动轨迹。支持固定方向滑动和自定义起点终点两种模式。轨迹包含按下、滑动(含 ease-in-out 加速模型)、末端停顿、松开四个阶段。

接口地址

POST /vcpcloud/api/padApi/simulateSwipe

Content-Type: application/json

请求参数

参数类型必填默认值说明
padCodesArray[String]是-设备编码列表
directionString是-滑动方向枚举值
widthInteger否1080屏幕宽度
heightInteger否1920屏幕高度
startXNumber否自动计算滑动起点 X 坐标(自定义模式)
startYNumber否自动计算滑动起点 Y 坐标(自定义模式)
endXNumber否自动计算滑动终点 X 坐标(自定义模式)
endYNumber否自动计算滑动终点 Y 坐标(自定义模式)

方向枚举值 (direction)

值说明
LEFT_TO_RIGHT从左向右滑动
RIGHT_TO_LEFT从右向左滑动
TOP_TO_BOTTOM从上向下滑动
BOTTOM_TO_TOP从下向上滑动

模式 A:自动生成起点终点

{
  "padCodes": ["PAD_001"],
  "direction": "BOTTOM_TO_TOP",
  "width": 1080,
  "height": 1920
}

模式 B:自定义起点终点

{
  "padCodes": ["PAD_001"],
  "direction": "BOTTOM_TO_TOP",
  "width": 720,
  "height": 1280,
  "startX": 360,
  "startY": 928,
  "endX": 374,
  "endY": 390
}

响应:同标准格式,code 200 为成功。

错误码:1104 = direction 缺失或非法;1218 = 频率限制(同一设备 2 秒内重复请求)。


3. 模拟长按 {#模拟长按}

在指定坐标生成拟人化长按轨迹,按压时长可由调用方指定。

接口地址

POST /vcpcloud/api/padApi/simulateLongPress

Content-Type: application/json

请求参数

参数类型必填默认值说明
padCodesArray[String]是-设备编码列表
xNumber是-长按目标 X 坐标
yNumber是-长按目标 Y 坐标
holdMsInteger否600按压时长(毫秒),需 > 0
widthInteger否720屏幕宽度
heightInteger否1280屏幕高度

请求示例

{
  "padCodes": ["PAD_001"],
  "x": 360,
  "y": 640,
  "holdMs": 800,
  "width": 720,
  "height": 1280
}

响应:同标准格式,code 200 为成功。

业务约束:

  • holdMs 建议 ≥ 500ms,否则不会触发 Android 系统的长按事件(仅相当于一次点击)。
  • holdMs 上限不做强制限制,但过大的值(如 > 10000ms)会显著降低吞吐与成功率,请按业务需要设置。

错误码:1104 = holdMs 缺失或非法(≤ 0);1218 = 频率限制(同一设备 2 秒内重复请求)。


返回数据与拟人化特征

调用成功后,返回数据会传递给 armCloudMobileService.simulateTouch() 执行实际触控操作。触控点位结构包含 actionType(0=按下, 2=移动, 1=抬起)、x/y、waitTime、pressure 等字段。

点击轨迹特征:位置微扰(±3px 高斯噪声)、抬起偏移(1–4px)、时长随机(120–400ms)、压力建模(按下 ~0.5,松开前衰减到 ~0.1)。

滑动轨迹特征:ease-in-out cubic 曲线、生理弧度(Y 轴 <1.5% 波动)、末端停顿 200–600ms、单步位移 ≤25px、终点逐步收敛。压力全程单调递减。


实例操作任务详情

查询指定实例操作任务的执行结果详细信息。

接口地址

/vcpcloud/api/padApi/padTaskDetail

请求方式

POST

请求数据类型

application/json

请求Query参数

参数名示例值参数类型是否必填参数描述
taskIdsInteger[]是
├─taskId1Integer是任务ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
traceIdewbssur1jbwgString链路追踪ID
dataObject []子任务列表详情
├─ taskId1Integer子任务ID
├─ padCodeVP22020020793String实例标识
├─ taskStatus2String TODO类型使用错误任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成;9:排队中)
├─ endTime1713429401000Long子任务结束时间戳
├─ 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参数

参数名示例值参数类型是否必填参数描述
taskIdsInteger []是数组长度为1-100
├─1Integer否任务ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewc84g8si0oyString链路追踪ID
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC22020020793String实例编号
├─taskStatus3Integer任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
├─endTime1756021166163Long任务执行结束时间
├─taskContentSuccessString任务内容
├─taskResultSuccessString任务结果
├─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参数

参数名示例值参数类型是否必填参数描述
taskIdsInteger []是
├─1Integer否任务ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewbssur1jbwgString链路追踪ID
ts1756021167163Long时间戳
data-Object[]任务列表详情
├─ taskId1Integer任务ID
├─ taskStatus3Integer任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
├─ padCodeAC22020020793String实例编号
├─ taskContentSuccessString任务内容
├─ taskResultSuccessString任务结果
├─ endTime1756121167163String任务执行结束时间

请求示例

{
 "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参数

参数名示例值参数类型是否必填参数描述
taskIdsInteger []是
├─1Integer是任务ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
traceIdewbssur1jbwgString链路追踪ID
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC21020010001String实例编号
├─taskStatus3Integer任务状态:(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
├─ endTime1756021166163Long任务执行结束时间
├─ taskContent“”String任务内容
├─ taskResultSuccessString任务结果

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
page1Integer是页码
rows10Integer是条数
padTyperealString否实例类型(virtual:虚拟机;real:真机)
padCodesString[]否
├─AC22010020062String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer
msgsuccessString
ts1713773577581Long
dataObject
├─page1Integer当前页
├─rows10Integer每页的数量
├─size1Integer当前页的数量
├─total1Integer总记录数
├─totalPage1Integer总页数
├─pageDataobject[]列表
├─├─padCodeVP21020010391String实例编号
├─├─padGradeq1-2String实例开数(q1-6六开,q1-2二开)
├─├─padStatus10String实例状态 (10-运行中 11-重启中 12-重置中 13-升级中 14-异常 15-未就绪)
├─├─deviceIp192.168.0.0String云机ip
├─├─padIp192.168.0.0String实例ip
├─├─appsString[]安装的应用列表
├─├─├─armcloud001String安装的应用

请求示例

{
	"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参数

参数名示例值参数类型是否必填参数描述
padCodesACP2505060777String[]是需要编辑通话记录的实例编码
callRecords[{"number":"18009781201","inputType":1,"duration":30,"timeString":"2025-05-06 14:00:09"}]Object[]是通话记录
├─ number13900000000String是电话号码
├─ inputType1int是通话类型(1:拨出;2:接听;3:未接)
├─ duration60int是通话时长;单位是秒,未接电话是0秒
├─ timeString2025-05-08 12:30:00String否通话时长

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736922808949Long时间戳
dataObject[]
├─padCodeAC32032String实例编号
├─taskId10004759Long任务id
├─vmStatus0String实例在线状态

请求示例

{
  "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参数

参数名示例值参数类型是否必填参数描述
padCodesACP2505060777String[]是实例编码
texthello123String是输入文本
响应参数
参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736922808949Long时间戳
dataObject[]
├─padCodeAC32032String实例编号
├─taskId10004759Long任务id
├─vmStatus0String实例在线状态
├─taskStatus1String任务当前状态

请求示例

{
   "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个
senderNumber13800000000String是发送方号码,不支持大陆号码。(格式:长度限制16位,允许数字、英文、空格、+-号)
smsContent这是一条测试短信。String是短信内容(长度限制127位)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736922808949Long时间戳
traceIdewb123abcString追踪ID
datatrueBoolean是否调用成功

请求示例

{
  "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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC21020010001String是实例编号
resetGmsTypeGAIDString是重置gms类型, 可选:GAID
oprByzhangsanString否操作人
taskSourceOPEN_PLATFORMString是任务来源,可选:OPEN_PLATFORM

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC21020010001String实例编号
├─vmStatus1Integer实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
padCodesACP2505060777String[]是实例编码
urlhttp://localhost/abcString否音频文件下载地址 (此字段和fileUniqueId 2选1传值)
fileUniqueId8fc73d05371740008ea27a2707496a82String否文件id唯一标识(此字段和url 2选1传值)
enabletrueBoolean是注入开关

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736922808949Long时间戳
dataObject[]
├─padCodeAC32032String实例编号
├─taskId10004759Long任务id
├─vmStatus0String实例在线状态
├─taskStatus1String任务当前状态

请求示例

{
  "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/cleanAppHome

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesATP250814USYXXXXString[]是实例编码

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736922808949Long时间戳
traceIdeuz60azzc7i8String追踪ID
dataObject[]
├─padCodeAC32032String实例编号
├─taskId10004759Long任务id
├─vmStatus0String实例在线状态
├─taskStatus1String任务当前状态

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
padCodesACN384345141346304String[]是实例编码(1-100个)
injectSwitchtrueBoolean否是否开启注入视频(true:开启 false:取消) 默认是false
injectLoopfalseBoolean否是否循环播放(true:是 false:否) 默认是false
injectUrlhttps://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4String否单个视频注入地址,支持 http/https/rtmp:// 以及本地路径,与injectUrls至少传一项
injectUrls["https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4","rtmp://example.com/live"]String[]否视频注入地址列表(最多5个),支持 http/https/rtmp:// 以及本地路径,与injectUrl至少传一项

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1759134336311Long时间戳
traceIdezispr1m30n4String追踪ID
dataObject[]
├─padCodeACN384345141346304String实例编号
├─taskId20503Long任务id
├─vmStatus0String实例在线状态
├─taskStatus1String任务当前状态
├─errMsgnullString错误提示

请求示例

{
        "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参数

参数名示例值参数类型是否必填参数描述
padCodesACN2510166WZUPCJString[]是实例编码(1-100个)
injectSwitchtrueBoolean否是否开启注入图片(true:开启 false:取消) 默认是false
injectLoopfalseBoolean否是否循环播放(true:是 false:否) 默认是false
injectUrlhttps://file.vmoscloud.com/userFile/ac4e112d72f9ed724101f510e774001f.JPGString是图片注入地址,支持 http https rtmp://

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1759134336311Long时间戳
traceIdezispr1m30n4String追踪ID
dataObject[]
├─padCodeACN384345141346304String实例编号
├─taskId20503Long任务id
├─vmStatus0String实例在线状态
├─taskStatus1String任务当前状态
├─errMsgnullString错误提示

请求示例

{
        "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参数

参数名示例值参数类型是否必填参数描述
nameCloudROM-13String否ROM名称
androidVersion13String否更新日志
current1int是当前页
size10int是分页大小

响应参数

字段名示例值类型说明
code200Integer状态码
msgsuccessString响应消息
ts1736326542985Long时间戳
dataObject
├─recordsObject[]镜像列表
├─├─id1int记录id
├─├─nameCloudROM-13-01String镜像名称
├─├─androidVersion13String安卓版本
├─├─downloadUrl13String地址
├─├─imageId13String镜像id
├─├─packageSize236978175int大小(单位:Byte)
├─├─versionv1.0.0String版本
├─├─imageFailedRemarkString原因
├─total1int总数
├─size10int每页大小
├─current1int当前页
├─pages1int总页数

请求示例

{
    "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启动应用失败重启云机后再启动应用

应用安装

为单台或多台实例同时安装单个或多个APP。此接口为异步操作。

接口地址

/vcpcloud/api/padApi/installApp

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
appsObject[]是应用列表
├─appId124Integer是应用ID
├─appName葫芦侠String否应用名称
├─pkgNamecom.huluxia.gametoolsString否应用包名
├─isGrantAllPermfalseBoolean否是否授予全部权限 默认为true
├─padCodesString[]是
├─├─AC22010020062String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
traceIdewc84g8si0oyString链路追踪ID
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC22010020062String实例编号
├─vmStatus1Integer实例在线状态(0:离线;1:在线)
├─taskStatus1Integer任务状态(-1:任务已存在,请勿重复提交;1:任务已添加)

请求示例

{
 "apps":[
  {
   "appId":124,
   "appName":"葫芦侠",
   "pkgName":"com.huluxia.gametools",
   "isGrantAllPerm":false,
   "padCodes":["AC22010020062"]
  }
 ]
}

响应示例

{
 "code": 200,
 "msg": "success",
 "ts": 1717570991004,
 "data": [
  {
   "taskId": 37,
   "padCode": "AC22030010001",
   "vmStatus": 1,
   "taskStatus": 1
  },
  {
   "taskId": 38,
   "padCode": "AC22030010002",
   "vmStatus": 1,
   "taskStatus": 1
  }
 ],
 "traceId": "ewab8qjqbaio"
}

错误码

错误码错误说明操作建议
140005文件不可用查看文件是否存在

应用卸载

根据实例编号和应用包名批量对实例进行应用卸载的操作。

接口地址

/vcpcloud/api/padApi/uninstallApp

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
apkPackageListString[]是包名集合
├─com.geniuscloud.overseasString是应用包名
padCodeListString[]是
├─AC22010020062String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳

请求示例

{
    "padCodeList": ["AC32010601132"],
    "apkPackageList": ["com.geniuscloud.overseas"]
}

响应示例

{
    "msg:: "success",
    "code": 200,
    "ts": 1746694236404
}

应用停止

根据实例编号和应用包名对实例进行应用停止的操作。

接口地址

/vcpcloud/api/padApi/stopApp

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
├─pkgNamexxx.test.comString是包名
├─padCodesString[]是
├─├─AC22010020062String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC22010020062String实例编号
├─vmStatus1Integer实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
├─pkgNamexxx.test.comString是包名
├─padCodesString[]是
├─├─AC22010020062String是实例编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]
├─taskId1Integer任务ID
├─padCodeAC22010020062String实例编号
├─vmStatus1Integer实例在线状态(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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22010020062String是实例编号
appNameString否应用名称

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1713773577581Long时间戳
dataObject[]
├─ padCodeAC22010020062String实例编号
├─ appsObject[]应用列表
│ ├─ appNameTapTapString应用名称
│ ├─ packageNamecom.taptap.globalString应用包名
│ ├─ versionName3.49.0-full.100000String应用版本号
│ ├─ versionCode349001000String应用版本代码
│ ├─ appState0Integer0 已完成 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参数

参数名示例值参数类型是否必填参数描述
taskIdsInteger[]是
├─taskId1Integer是任务ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject []子任务列表详情
├─ taskId1Integer子任务ID
├─ padCodeVP22020020793String实例标识
├─ taskStatus2String TODO类型使用错误任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
├─ endTime1713429401000Long子任务结束时间戳
├─ 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参数

参数名示例值参数类型是否必填参数描述
taskIdsInteger[]是
├─taskId1Integer是任务ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]任务列表详情
├─ taskId1Integer子任务ID
├─ appId134Long应用id
├─ fileUniqueIde2c07491309858c5cade4bfc44c03724String⽂件唯⼀标识
├─ fileNamexx.apkString文件名称
├─ taskStatus2Integer任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
├─ endTime1713429401000Long子任务结束时间戳

请求示例

{
	"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/createMoneyOrder

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
androidVersionNameAndroid13String是Android 版本:Android10、Android13、Android14
goodId1Integer是商品Id(对应 sku套餐列表的商品ID值-> goodTimes的.id)
goodNum1Integer是商品数量
autoRenewtrueBoolean是是否自动续费(默认开启)true-开启、false-关闭
equipmentId106626,106627String是(新购设备无需填写,续费设备必须填写)续费设备编号 (多台设备以逗号分割)
countryCodeCNString否国家代码,用于指定云手机所属区域

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]数据列表
├─ id7644Integer数据唯一标识
├─ orderIdVMOS-CLOUD173630666722957907String订单编号
├─ equipmentId106662Integer设备ID
├─ createTime2025-01-08 11:24:31String创建时间
├─ creater14114String创建人
ts1736306672346Long时间戳

请求示例

{
    "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
}

激活码激活云机

批量激活云机:提交激活码列表后立即返回批次号 batchId,云机由后台异步激活,激活成功后归属调用方账号;不可激活的激活码在 failCodes 中返回。(激活码对应的商品套餐需在网页端存在且有效,否则激活失败)

接口地址

/vcpcloud/api/padApi/activateByCode

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
activeCodeList["ABCD-1234-EFGH-5678"]String[]是激活码列表,可传多个
countryCodeHKString否国家/区域代码,不传默认 HK

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736306672346Long时间戳
dataObject数据
├─ batchId100001_1736306672346String批次号,用于查询激活进度
├─ failCodes[]String[]不可激活的激活码列表

请求示例

{
    "activeCodeList": ["ABCD-1234-EFGH-5678"],
    "countryCode": "HK"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1736306672346,
    "data": {
        "batchId": "100001_1736306672346",
        "failCodes": []
    }
}

查询批量激活任务进度

查询 activateByCode 提交的批量激活任务进度,返回整体状态、各激活码成功/失败/进行中数量、已激活设备台数及每个激活码明细。

接口地址

/vcpcloud/api/padApi/queryActivationBatch

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
batchId100001_1736306672346String是批次号(activateByCode 返回的 batchId)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736306672346Long时间戳
dataObject数据
├─ batchId100001_1736306672346String批次号
├─ taskStatus2Integer任务整体状态:0-待处理,1-进行中,2-完成,-1-失败
├─ total2Integer激活码总数
├─ successCount1Integer激活成功的激活码数
├─ failCount0Integer激活失败的激活码数
├─ processingCount1Integer处理中的激活码数
├─ activatedDeviceCount1Integer已激活设备台数
├─ listObject[]各激活码明细
├─├─ activeCodeABCD-1234-EFGH-5678String激活码
├─├─ status2Integer激活码状态:0-待激活,1-激活中,2-成功,3-失败
├─├─ failMsgString失败原因

请求示例

{
    "batchId": "100001_1736306672346"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1736306672346,
    "data": {
        "batchId": "100001_1736306672346",
        "taskStatus": 2,
        "total": 2,
        "successCount": 1,
        "failCount": 0,
        "processingCount": 1,
        "activatedDeviceCount": 1,
        "list": [
            {
                "activeCode": "ABCD-1234-EFGH-5678",
                "status": 2,
                "failMsg": ""
            }
        ]
    }
}

云机模拟触控

云机模拟触控接口,结果可以通过 实例操作任务详情 接口查询。

接口地址

/vcpcloud/api/padApi/simulateTouch

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesObject[]是需要触发点击的实例编码
├─ ACP250329MMRFCCTString是设备编号
width1080Integer是触控容器宽度
height1920Integer是触控容器高度
positionsObject[]是触控坐标集合
├─ actionType1Integer是操作类型(0:按下;1:抬起;2:触摸中)
├─ x100float是点击的x坐标
├─ y100float是点击的y坐标
├─ nextPositionWaitTime100Integer是多组坐标时,触发下一组点击坐标的等待间隔时间ms毫秒值

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]数据列表
├─ padCodeACP250329MMRFCCTString实例编号
├─ taskId10004759Long任务id
├─ vmStatus0Integer实例在线状态(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
        }
    ]
}

根据订单查询设备ID

接口地址

/vcpcloud/api/padApi/getOrderEquipmentList

请求方式

GET

请求数据类型

application/json

请求Body参数

参数名示例值参数类型参数描述
orderId0String订单号

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]
├─id0.01Float
├─orderId300Integer订单号
├─equipmentId1String设备ID
├─createTimeGithubString创建时间
├─createrObject[]创建人

请求示例

{
    "orderId": 123
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745823575860
}

安卓镜像版本集合

获取当前设备可以升级的镜像集合

接口地址

/vcpcloud/api/padApi/imageVersionList

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeACP250329MMRFCCTString是设备编号

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]数据列表
├─ nowImgIdimg-25033129396String当前设备镜像版本ID
├─ hasNewVersionfalseBoolean是否存在可以升级的镜像版本
├─ imageVersionListObject[]镜像版本列表
├─├─ imageIdimg-25033129396String镜像版本ID
├─├─ version20250401Integer镜像版本
├─├─ versionName20250401String镜像版本名称
├─├─ publishTypereleasedString发布类型:released-稳定、beta-最新
├─├─ imageIllustrateFixed the issue that the Coffee Meet Begal app cannot activate location servicesString镜像更新说明
├─├─ romSdkint14Integer安卓版本Code
├─├─ romSdkNameAndroid 14String安卓版本说明

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
androidVersionNameAndroid13String是Android 版本:Android10、Android13、Android14
goodId1Integer是商品Id(对应 sku套餐列表的商品ID值)
goodNum1Integer是商品数量
autoRenewtrueBoolean是是否自动续费(默认关闭)true-开启、false-关闭

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataVMOS-CLOUD174290228048631464String预售订单编号

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
proBuyStatus2Integer否1-待发货 2-已发货 为空默认全部
orderIdVMOS-CLOUD174290228048631464Integer否预售订单号

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]数据列表
├─ proBuyOrderIdVMOS-CLOUD174290228048631464String订单编号
├─ proBuyStatus2Integer1-待发货 2-已发货
├─ proBuyNumber1Integer购买数量
├─ createTime2025-03-25 19:31:21String创建时间
├─ payTime2025-03-25 19:31:21String支付时间
├─ endTime2025-03-25 19:41:33String发货时间
├─ orderPrice1399Integer订单金额(美分)
├─ goodNameSamsung Galaxy A53String设备名称
ts1736306672346Long时间戳

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
padCodenullString否实例编号
equipmentIdsInteger[]否设备编号数组

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1736235894274Long时间戳
dataObject[]数据列表
├─ padCodeAC32010180421String云机编号 (ACN开头的均为计时设备)
├─ deviceIp172.30.5.43String云机物理机IP
├─ padIp10.254.21.225String云机I虚拟P
├─ cvmStatus100Integer云机状态 100-正常 101-截图中 102-重启中 103-重置中 104-异常
├─ screenshotLinkhttps://XXXXXX.pngString云机截图链接
├─ equipmentId106626Integer设备编号
├─ userId14114Integer用户ID
├─ status1Integer设备状态 1-运行中 2-关机 3-开机中
├─ padNameV08String云机显示名称
├─ bootTime1735643626263Long云机使用时长
├─ cumulativeUseTimenullObject设备累计使用时间
├─ lastBackupTimenullObject上次备份时间
├─ maintainContentnullObject维护内容
├─ goodId1Integer商品ID
├─ goodNamei18n_Android13-V08String商品名称
├─ signExpirationTime2025-01-31 19:13:46String签约云机到期时间
├─ signExpirationTimeTamp1738322026000Long签约云机到期时间戳
├─ supplierType5String供应商类型
├─ androidVersionAvatarhttps://XXXX.pngStringAndroid版本头像
├─ configNameV08String商品型号名称
├─ androidVersionAvatar2https://XXX.pngStringAndroid版本头像2
├─ androidVersionAvatar3https://XXX.pngStringAndroid版本头像3
├─ androidVersion13StringAndroid版本
├─ authorizedUserIdnullObject授权用户ID
├─ authorizedExpirationTimenullObject授权过期时间
├─ authorizedExpirationTimeTampnullObject授权过期时间戳
├─ changeConfig1Integer支持更配 0-否 1-是
├─ createTime2024-12-31 19:13:46String创建时间
├─ proxyIpnullObject代理IP地址
├─ remarkString备注
├─ proxyIdnullObject代理IP信息
├─ ipAddressnullObjectIP归属地
├─ publicIpnullObject出口IP
├─ groupNamenullObject分组名称
├─ groupSortnullObject分组排序

云机状态

状态值参数描述
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参数

参数名示例值参数类型是否必填参数描述
padCodeAC32010180421String是实例编号

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject响应数据
├─ explainEnglishString语言-说明
├─ simCountrySGStringSIM卡国家
├─ countrySGString国家
├─ padCodeAC32010180421String实例编号
├─ padTypeV08String设备机型
├─ bluetoothAddress3A:1F:4B:9C:2D:8EString蓝牙地址
├─ 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设备信息集合
├─ latitude1.3398String纬度
├─ ipAddressHong KongStringIP地址
├─ timeZoneAsia/SingaporeString时区
├─ publicIp192.169.96.14String出口IP
├─ phoneNumber+6510633153String虚拟号码
├─ androidVersionAndroid13StringAndroid版本
├─ wlanMac4c:7f:11:2f:a6:ccStringWLAN MAC地址
├─ padNameV08StringPad名称
├─ simIsoM1StringSIM卡ISO
├─ longitude103.6967String经度
├─ operatorNumeric52503Integer运营商编号
├─ padImei525036719631842StringIMEI
ts1736239152927Long时间戳

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
goodId1Integer是商品Id(对应 sku套餐列表的商品ID值-> timingGoodTimes.id
goodNum1Integer是商品数量

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataString[]购买的计时设备实例
├─ padCodeACN250424VU2F6LBString实例编号

请求示例

{
    "goodId": 1,
    "goodNum": 1
}

响应示例

{
    "msg": "success",
    "code": 200,
    "data": [
        "ACN250424VU2F6LB"
    ],
    "ts": 1745562924759
}

计时设备开机

计时设备开机, 支持开机为新机、按照指定备份资源包进行开机

接口地址

/vcpcloud/api/padApi/timingPadOn

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是实例编号集合
├─ padCodeACN250424VU2F6LBString是实例编号
defCode1Integer否是否开机为新机 0-否 1-是 默认为0 优先级高
netStorageResUnitCodeZSC250423CVEY7CP-ACN2504235BZK2XWString否指定开机的备份资源包ID 优先级低

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
datafalseBoolean当天是否存在扣费满1美金的设备,如果存在,该设备将不再扣费

请求示例

{
    "padCodes": [
        "ACN250424VU2F6LB"
    ],
    "defCode": 0,
    "netStorageResUnitCode": "ZSC250423CVEY7CP-ACN2504235BZK2XW"
}

响应示例

{
    "msg": "success",
    "code": 200,
    "data": false,
    "ts": 1745568308881
}

计时设备关机

计时设备关机,支持备份当前实例,备份包支持自定义备注名称

接口地址

/vcpcloud/api/padApi/timingPadOff

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是实例编号集合
├─ padCodeACN250424VU2F6LBString是实例编号
isBackUp1Integer否是否备份 0-否 1-是 默认备份
remark备份包说明String否给当前需要备份的资源包添加说明

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745569714501Long执行时间戳

请求示例

{
    "padCodes": [
        "ACN250424VU2F6LB"
    ],
    "isBackUp": 1,
    "remark": "备份包说明"
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745569714501
}

计时设备销毁

计时设备销毁,计时设备销毁并不会删除备份的资源包

接口地址

/vcpcloud/api/padApi/timingPadDel

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是实例编号集合
├─ padCodeACN250424VU2F6LBString是实例编号

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745569714501Long执行时间戳

请求示例

{
    "padCodes": [
        "ACN250424VU2F6LB"
    ]
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745569714501
}

sku套餐列表

sku套餐列表。

接口地址

/vcpcloud/api/padApi/getCloudGoodList

请求方式

GET

请求参数

参数名示例值参数类型是否必填参数描述
androidVersion13Integer否安卓版本号(不填写默认是安卓13)
goodIds74,75String否按 SKU ID 过滤,逗号分隔,最多 50 个;不传则返回全部

请求数据类型

application/json

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1770820211714Long时间戳(毫秒)
dataObject返回体
├─ configsArray[Object]配置列表(机型配置数组)
│ ├─ configNameSamsung Galaxy A53String配置名称(显示名称)
│ ├─ sellOutFlagfalseBoolean是否售罄
│ ├─ defaultSelectionfalseBoolean是否默认选中
│ ├─ custom1Integer是否自定义配置(1=是)
│ ├─ matchfalseBoolean是否匹配(具体含义由业务定义)
│ ├─ reorder0Integer排序权重
│ ├─ configModelSamsungString机型品牌/系列
│ ├─ countryListArray[Object]支持的国家/地区列表
│ │ ├─ armCountryCodeHKStringARM云国家/地区代码
│ │ ├─ sellOutFlagfalseBoolean该地区是否售罄
│ │ ├─ soutienTimetrueBoolean是否支持定时(售罄相关)
│ │ ├─ timingSellOutFlagtrueBoolean是否定时售罄
│ │ ├─ armCountryMsgHong KongString地区显示名称
│ ├─ timingSellOutFlagtrueBoolean配置是否定时售罄
│ ├─ androidVersion13StringAndroid 版本
│ ├─ configBlurbTop technology, comparable to the ultimate experience of a real machine!String配置宣传语/描述
│ ├─ configId13Integer配置唯一ID
│ ├─ defaultTimeSelectionfalseBoolean是否默认选中时间套餐
│ ├─ goodTimesArray[Object]可购买的时长套餐列表
│ │ ├─ oldGoodPrice105Number原价
│ │ ├─ supportSigningtrueBoolean是否支持签约(包月/长期)
│ │ ├─ defaultSelectionfalseBoolean是否默认选中该套餐
│ │ ├─ iosGoodsIdStringiOS 对应的商品ID(为空表示无)
│ │ ├─ showContent1 dayString显示的时长文本
│ │ ├─ whetherFirstPurchasefalseBoolean是否首购专享
│ │ ├─ chargeType1Integer计费类型
│ │ ├─ currentPrice100Number当前售价
│ │ ├─ reorder1Integer套餐排序权重
│ │ ├─ goodPrice100Number商品价格
│ │ ├─ equipmentNumber1Integer单次购买设备数量
│ │ ├─ goodTime1440Integer时长(分钟)
│ │ ├─ autoRenewtrueBoolean是否默认自动续费
│ │ ├─ recommendContent5% OffString推荐标签/优惠文案
│ │ ├─ id74Integer套餐唯一ID(goodId)
│ ├─ serviceProviderType4Integer服务提供商类型
└─ goodId1Integer当前默认/推荐的商品ID(可能是套餐分类ID)

响应示例

{
    "msg": "success",
        "code": 200,
        "data": {
        "configs": [
            {
                "configName": "Samsung Galaxy A53",
                "sellOutFlag": false,
                "defaultSelection": false,
                "custom": 1,
                "match": false,
                "reorder": 0,
                "configModel": "Samsung",
                "countryList": [
                    { "armCountryCode": "HK",
                        "sellOutFlag": false,
                        "soutienTime": true,
                        "timingSellOutFlag": true,
                        "armCountryMsg": "Hong Kong"
                    }],
                "timingSellOutFlag": true,
                "androidVersion": "13",
                "configBlurb": "Top technology, comparable to the ultimate experience of a real machine!",
                "configId": 13,
                "defaultTimeSelection": false,
                "goodTimes": [
                    {
                        "oldGoodPrice": 105,
                        "supportSigning": true,
                        "defaultSelection": false,
                        "iosGoodsId": "",
                        "showContent": "1 day",
                        "whetherFirstPurchase": false,
                        "chargeType": 1,
                        "currentPrice": 100,
                        "reorder": 1,
                        "goodPrice": 100,
                        "equipmentNumber": 1,
                        "goodTime": 1440,
                        "autoRenew": true,
                        "recommendContent": "5% Off",
                        "id": 74
                    }],
                "serviceProviderType": 4
            }],
            "goodId": 1
    },
    "ts": 1770820211714
}

显示或隐藏应用进程

接口地址

/vcpcloud/api/padApi/toggleProcessHide

请求方式

POST

请求数据类型

application/json

请求BODY参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22010020062String是实例编号
showfalseBoolean是隐藏进程: true-隐藏 false-恢复
packageNamecom.facebook.katanaString是应用包名

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码

请求示例

{
    "padCodes": [
        "AC32010601132"
    ],
    "show": false,
    "packageName": "com.facebook.katana"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1736326542985
}

导入通话记录

此接口允许将通话记录数据导入至云手机中。接口在导入过程中,会自动检测云手机通讯录中已保存的联系人,并将这些联系人对应的名称显示在通话记录中,便于用户快速识别联系人。

接口地址

/vcpcloud/api/padApi/addPhoneRecord

请求方式

POST

请求数据类型

application/json

请求BODY参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC32010601132String是实例编号
callRecordsObject[]是
├─number13900000000String是电话号码
├─inputType1Integer是通话类型(1:拨出;2:接听;3:未接)
├─duration62Integer是通话时长;单位是秒,未接电话是0秒
├─timeString2025-05-08 12:30:00String是通话时长

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─padCodeAC32010601132String实例编号
├─taskId10004759Long任务id
├─vmStatus0String实例在线状态

请求示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC32010601132String是实例编号
textHello WorldString是输入文本

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─padCodeAC32010601132String实例编号
├─taskId10004759Long任务id

请求示例

{
    "padCodes": [
        "AC32010601132"
    ],
    "text": "Hello World"
}

响应示例

{
    "code": 200,
        "msg": "success",
        "ts": 1743676563784,
        "data": [
        {
            "taskId": 100059,
            "padCode": "AC32010601132"
        }
    ]
}

查询设备padCode变更记录

查询当前用户名下设备的 padCode 变更记录

接口地址

/vcpcloud/api/padApi/queryPadIdChangeRecords

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
queryDate2026-04-15String否查询的自然日(格式 yyyy-MM-dd,上海时区)。留空则默认最近 3 个自然日(含今日);传入时仅查该自然日,不允许未来日期

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1743676563784Long时间戳
dataObject[]变更记录列表(按 update_time 倒序)
├─oldPadCodeAC32010601132String变更前的 padCode
├─newPadCodeAC32010702556String变更后的 padCode(当前设备)

请求示例

{
    "queryDate": "2026-04-15"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1743676563784,
    "data": [
        {
            "oldPadCode": "AC32010601132",
            "newPadCode": "AC32010702556"
        }
    ]
}

云空间

查询用户的文件列表

接口地址

/vcpcloud/api/padApi/selectFiles

请求方式

POST

请求数据类型

application/json

请求Body参数

无

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject[]返回体
├─appName快手极速版String文件名称
├─downloadUrlhttps://file.vmoscloud.com/userFile/fd31c45b5a7c3e6249c7d1b1dca6ff77.apkString文件下载链接
├─packageNamecom.kuaishou.nebulaStringAPK包名,只有ap文件才有
├─fileId479472Integet云空间文件编号

响应示例

{
    "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参数

参数名示例值参数类型是否必填参数描述
filesInteger[]是云空间文件唯一编号集合
├─479452String是云空间文件唯一编号
urlsString[]否云空间文件url地址集合
├─479452String否Cloud space file download link

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳

请求示例

{
    "files": [479452]
}

响应示例

{
    "msg:: "success",
    "code": 200,
    "ts": 1746694236404
}

上传文件到云空间

上传文件到云空间并获取下载链接

接口地址

/vcpcloud/api/padApi/uploadFile

请求方式

POST

请求数据类型

multipart/form-data

body 注意是 form 不是 json

请求 form-data 参数

参数名示例值参数类型是否必填参数描述
fileFourSeasonsPhilly.webpFile是需要上传的文件

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1756021167163Long时间戳
dataObject返回体
├─downloadUrlhttps://file.vmoscloud.com/userFile/83bb260163f78e6928c1fe5acda.webpString文件下载链接

请求示例

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参数

参数名示例值参数类型是否必填参数描述
storageId1Integer是云空间扩容商品唯一ID
autoRenewOrder0Integer是是否自动续费 0-否 1-是

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745569714501Long执行时间戳

请求示例

{
    "storageId": 1,
    "autoRenewOrder": 0
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745569714501
}

存储资源包列表

关机备份后的存储资源包列表

接口地址

/vcpcloud/api/padApi/vcTimingBackupList

请求方式

GET

请求数据类型

application/json

请求Query参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]资源包集合信息
├─ backupIdZSC250425LIOJY2V-ACN250424VU2F6LBString备份资源包编号
├─ padCodeACN250424VU2F6LBString备份包所属设备
├─ beginTime2025-04-25 16:28:48String备份时间
├─ remarkTime:20250425162833String备份说明 ,备份时有传入remar就会使用自定义的,否则默认就是备份时间
├─ padNameV06String自定义的设备名称,用来快速区分和查找资源包

响应示例

{
    "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参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]资源包集合信息
├─ oldPrice169Long商品原价
├─ payPrice169Long折扣后售卖价格
├─ subscriptTips85折String折扣说明
├─ useTime43200Long有效分钟数
├─ storageCapacity107374182400Long对应云空间大小
├─ storageId1Integer云空间商品唯一ID
├─ storageName100GB/月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参数

参数名示例值参数类型是否必填参数描述
autoRenewOrder0Integer是是否自动续费 0-否 1-是

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745569714501Long执行时间戳

请求示例

{
    "autoRenewOrder": 0
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745569714501
}

删除备份资源包数据

删除备份资源包数据

接口地址

/vcpcloud/api/padApi/deleteUploadFiles

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
String[]是要删除的资源包ID集合
├─ZSC250425LIOJY2V-ACN250424VU2F6LBString是要删除的资源包ID

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745569714501Long执行时间戳

请求示例

[
    "ZSC250425LIOJY2V-ACN250424VU2F6LB"
]

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745569714501
}

云空间自动续费聚合商品开关

云空间自动续费聚合商品开关

接口地址

/vcpcloud/api/padApi/updateRenewStorageStatus

请求方式

GET

请求数据类型

application/json

请求Query参数

参数名示例值参数类型是否必填参数描述
renewStorageStatusfalseString是是否自动续费 false-否 true-是

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745569714501Long执行时间戳

请求示例

/vcpcloud/api/padApi/updateRenewStorageStatus?renewStorageStatus=false

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745569714501
}

云空间续费详情查询

云空间续费详情查询

接口地址

/vcpcloud/api/padApi/selectAutoRenew

请求方式

GET

请求数据类型

application/json

请求Query参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]续费信息
├─ renewStorageStatus0Integer是否开启自动续费 0-否 1-是
├─ storageSize214748364800Long续费云空间的总大小
├─ storageAmount338Long续费所需金额(美分)
├─ signExpirationTime2025-05-10 19:22:35String有效时间

响应示例

{
    "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参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject资源包集合信息
├─ accountBalance100Long钱包余额 (美分)
├─ storageCapacityLimit112742891520Long用可用空间大小 1GB = 1024 x 1024 x 1024 Byte
├─ storageUsedAvail17325201433Long已使用空间大小
├─ otherObject附件空间详情
├─├─ signExpirationTime2025-05-10 19:22:35String附加空间到期时间
├─├─ storageAmount169Long附加空间续费所需金额(美分)
├─├─ otherStorageSize107374182400Long附加空间大小

响应示例

{
    "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
}

查询云盘备份ID列表 {#查询云盘备份id列表}

查询当前 OpenAPI 用户名下所有可用云盘备份的 backupId,按创建时间倒序。返回结果可用于后续「从云盘备份批量克隆到多台云机」接口。

接口地址

/vcpcloud/api/padApi/listPadBackupIds

请求方式

POST

请求数据类型

application/json

请求Body参数

无

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1743676563784Long时间戳
dataString[]当前用户名下所有可用云盘备份的 backupId 列表
├─-String单个备份 ID

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1743676563784,
    "data": [
        "...",
        "..."
    ]
}

为指定云机批量创建云盘备份 {#为指定云机批量创建云盘备份}

为指定云机批量创建云盘备份。接口异步执行,调用后立即返回,可凭响应中的 batchId 跟踪后续任务进度。

约束:

  • 单次最多 50 台云机
  • 同一用户同一时刻只允许 1 个进行中的备份任务
  • 目标云机必须处于正常运行状态
  • 目标设备必须为自己持有或被授权的设备
  • 账户剩余存储空间须不少于 16GB × 备份云机数量

接口地址

/vcpcloud/api/padApi/addBackup

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
vcPadBackupListObject[]是待备份云机列表(1 ~ 50 条)
├─ padCodeAC32010601132String是云机编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1743676563784Long时间戳
dataObject返回体
├─ batchId100001_1762424603654String批次 ID,可用于后续查询任务状态
├─ padCount2Integer实际入库的云机数量

请求示例

{
    "vcPadBackupList": [
        { "padCode": "AC32010601132" },
        { "padCode": "AC32010601133" }
    ]
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1743676563784,
    "data": {
        "batchId": "100001_1762424603654",
        "padCount": 2
    }
}

错误码

错误码描述处理建议
1002用户ID不能为空请检查签名 access key 是否有效
1014操作过快,请稍候再试没有任何有效云机(已离线/不归属/非授权),调整入参后重试
1018正在为您执行任务,请勿重复提交当前用户已有进行中的备份任务,等待完成后再提交
1104必填参数为空vcPadBackupList 为空或超过 50 条上限
40016云空间存储容量不足,至少还需 GB升级存储套餐或清理已有备份后重试

从云盘备份批量克隆到多台云机 {#从云盘备份批量克隆到多台云机}

从云盘备份批量克隆到多台云机。接口异步执行,调用后立即返回。

约束:

  • 同一用户同一时刻只允许 1 个进行中的克隆任务
  • 目标云机必须处于正常运行状态
  • 目标设备必须为自己持有或被授权的设备
  • 源备份与目标云机的商品规格必须一致

接口地址

/vcpcloud/api/padApi/clonePadBackup

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
vcPadBackupListObject[]是源备份列表(至少 1 条)
├─ backupIdbkp-AAA-1String是云盘备份 ID(来自 listPadBackupIds)
padsObject[]是目标云机列表(至少 1 台)
├─ padCodeAC32010601132String是云机编号

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1743676563784Long时间戳
datanullObject无业务数据,任务已提交异步执行

请求示例

{
    "vcPadBackupList": [
        { "backupId": "bkp-AAA-1" }
    ],
    "pads": [
        { "padCode": "AC32010601132" },
        { "padCode": "AC32010601133" }
    ]
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1743676563784,
    "data": null
}

查询备份批次进度 {#查询备份批次进度}

按 batchId 查询备份进度,含每台云机当前状态、backupId、失败原因。配合 addBackup 返回的 batchId 轮询使用。

接口地址

/vcpcloud/api/padApi/queryBackupBatch

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
batchId100001_1762424603654String是addBackup 返回的批次 ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1743676563784Long时间戳
dataObject返回体
├─ batchId100001_1762424603654String批次 ID
├─ taskStatus1Integer批次状态:0 待处理 / 1 执行中 / 2 完成 / -1 全部失败
├─ deviceCount3Integer该批次总云机数
├─ successCount1Integer已成功的云机数
├─ failCount0Integer已失败的云机数
├─ itemsArray每台云机的明细
│ ├─ padCodeAC32010601132String云机编号
│ ├─ status2Integer云机备份状态:0 待处理 / 1 执行中 / 2 成功 / 3 失败
│ ├─ backupIdbkp-AC...-1String备份 ID,status ≥ 1 时有值
│ ├─ failMsgnullString失败原因,status = 3 时有值
│ ├─ createTime2026-05-14T18:00:00String提交时间

请求示例

{
    "batchId": "100001_1762424603654"
}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts": 1743676563784,
    "data": {
        "batchId": "100001_1762424603654",
        "taskStatus": 1,
        "deviceCount": 3,
        "successCount": 1,
        "failCount": 0,
        "items": [
            {
                "padCode": "AC32010601132",
                "status": 2,
                "backupId": "bkp-AC32010601132-1",
                "failMsg": null,
                "createTime": "2026-05-14T18:00:00.000+08:00"
            },
            {
                "padCode": "AC32010601133",
                "status": 1,
                "backupId": null,
                "failMsg": null,
                "createTime": "2026-05-14T18:00:00.000+08:00"
            }
        ]
    }
}

静态住宅服务

获取静态住宅商品列表

接口地址

/vcpcloud/api/padApi/proxyGoodList

请求方式

GET

请求数据类型

application/json

请求Query参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─proxyGoodName5 daysString商品名称
├─proxyGoodId1Integer商品唯一编号
├─proxyGoodPrice200Integer商品价格(美分)
├─proxyGoodType2Integer代理商品类型:0-通用 1-socket5 2-http 3-https
├─proxyGoodTime7200Integer商品时长(分钟)

响应示例

{
    "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参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]
├─countrycnString支持的国家code
├─countryZhChinaString支持的国家说明
├─countryId15Integer国家唯一编号

响应示例

{
    "msg": "success",
    "code": 200,
    "data": [
        {
            "country": "cn",
            "countryZh": "China",
            "countryId": 15
        },
    ],
    "ts": 1747734076860
}

静态住宅商品购买

接口地址

/vcpcloud/api/padApi/createProxyOrder

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型参数描述
proxyGoodId4Integer对应静态住宅商品的唯一ID
regioncnString静态住宅的地区-country
num1Integer购买数量
countrycnString静态住宅的国家-country
proxyAddressChinaString静态住宅的地址-countryZh
autoRenewtrueBoolean开启自动续费 false-关闭 true-开启

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳

请求示例

{
    "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参数

参数名示例值参数类型参数描述
page1Integer第几页
rows10Integer每页展示多少条

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject
├─total1Integer条数
├─size10Integer每页展示数
├─pages1Integer总页数
├─recordsObject[]订单信息
├─├─buyNumber1String购买数量
├─├─goodNameNew Purchase5-day agency productString商品名称
├─├─createTime1747734544000Long创建时间
├─├─orderIdVMOS-CLOUD174773454378660285String订单ID
├─├─payPrice200String支付金额
├─├─orderStatusvpnString订单状态 0-待支付 1-已支付
├─├─orderPricecnString订单金额
├─├─goodPriceSichuanString商品单价
├─├─goodNumSichuanString商品数量

请求示例

{
    "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参数

参数名示例值参数类型参数描述
proxyGoodId4Integer对应静态住宅商品的唯一ID
proxyIps154.81.41.161,154.81.41.162String续费的IP,多个以,分割
autoRenewtrueBoolean开启自动续费 false-关闭 true-开启

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳

请求示例

{
    "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参数

参数名示例值参数类型参数描述
current1Integer第几页
size10Integer每页展示多少条

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject
├─total1Integer条数
├─size10Integer每页展示数
├─pages1Integer总页数
├─recordsObject[]订单信息
├─├─proxyStatus1Integer代理状态:0-检测中 1-正常 -1检测失败 2-待检测
├─├─proxyGoodId4String商品ID
├─├─proxyName154.81.40.200Long代理名称
├─├─proxyUseNumber0String挂载云机数
├─├─proxyType1String代理类型:1-Socks5 2-http 3-https
├─├─proxyHost154.81.40.200String订单状态 0-待支付 1-已支付
├─├─proxyPort63007String代理端口(奇数-socks5 偶数-http)63007 (63008)
├─├─passwordxxxxxxString代理密码
├─├─proxyCountryCNString代理所属国家
├─├─expectedExpireTime1748166543String到期时时间戳
├─├─expireTime1748166543String到期时时间戳 (同上,使用 expireTime 即可)
├─├─accountxxxxxxString用户名
├─├─proxyId86930String代理唯一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参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─goodName2GBString商品名称
├─goodId1Integer商品唯一编号
├─goodPrice1String商品价格
├─protocolDescriptionGithubString支持的协议信息
├─totalTrafficObject[]流量包大小

响应示例

{
    "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参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─CountryName阿拉伯联合酋长国String国家名称
├─CountryCodeAEString国家Code
├─StateObject[]地区列表
├─├─cityObject[]城市列表
├─├─├─MusaffahcityString城市名称
├─├─nameAbudhabiString地区名称

响应示例

{
    "msg": "success",
    "code": 200,
    "data": [
        {
            "CountryName": "阿拉伯联合酋长国",
            "CountryCode": "AE",
            "State": [
                {
                    "city": [
                        "Musaffahcity",
                        "Abudhabi"
                    ],
                    "name": "Abudhabi"
                },
            ],
        }
    ],
    "ts": 1740643153803
}

获取动态代理当前余量

接口地址

/vcpcloud/api/padApi/queryCurrentTrafficBalance

请求方式

GET

请求数据类型

application/json

请求Query参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─accumulatedTraffic2048String总流量
├─remainingTraffic1024Object[]剩余流量
├─useTraffic1024Object[]已使用流量

响应示例

{
    "msg": "success",
    "code": 200,
    "data": {
        "accumulatedTraffic": 2048,
        "remainingTraffic": 1024,
        "useTraffic": 1024
    },
    "ts": 1740659529379
}

查询支持的服务器地区

接口地址

/vcpcloud/api/padApi/getDynamicProxyHost

请求方式

GET

请求数据类型

application/json

请求Query参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─nameAmerica Region (South America & North America)String大洲名称
├─valuexxxxxxx:1234String大洲服务器地址

响应示例

{
    "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参数

参数名示例值参数类型参数描述
goodId1Integer对应动态流量包的唯一ID
goodNum1Integer购买数量
autoRenewOrder1Integer开启自动续费 0-关闭 1-开启 剩余流量低于50MB时,触发自动续费

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳

请求示例

{
    "goodId": 1,
    "goodNum": 1,
    "autoRenewOrder": 0
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745823575860
}

创建动态代理

接口地址

/vcpcloud/api/padApi/createProxy

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型参数描述
city""String城市 不选要传""
countryCodeAEString国家Code
goodNum1Integer购买数量
proxyHostxxxxx:7778String大洲网址
proxyTypesocks5String代理类型 socks5 / http / https
proxyUseTypeproxyString挂载方式 proxy / vpm
stateAbudhabiString地区 不选要传""
time1String自动更换ip频率 (分钟) 可选 5、10、15、30、45、60、90

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject返回体
├─id82750Integer代理ID
├─proxyHostString动态代理

请求示例

{
    "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参数

参数名示例值参数类型参数描述
page1Integer当前页
rows10Integer每页条数

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject状态码
├─recordsObject[]动态代理信息
├─├─id1String代理唯一编号
├─├─proxyHostxxxxxxxString大洲服务器域名
├─├─proxyPort1234String大洲服务器端口
├─├─userNameE44S5YaWP660_time_5String动态代理用户名
├─├─password1234String动态代理密码
├─├─proxyTypesocks5String动态代理协议类型
├─├─proxyUseTypevpnString动态代理挂载方式
├─├─countryCodecnString国家Code
├─├─stateSichuanString地区
├─├─citySichuanString城市
├─├─time5Integer刷新频率
├─total1Integer代理条数
├─size10Integer每页展示数
├─pages1Integer总页数

响应示例

{
    "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参数

参数名示例值参数类型参数描述
page1Integer当前页
rows10Integer每页条数
completeStartTime2025-02-27 23:20:36String支付开始时间
completeEndTime2025-02-28 23:20:36String支付结束时间

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject状态码
├─recordsObject[]动态代理信息
├─├─orderIdVMOS-CLOUD174066963648092563String平台唯一ID
├─├─orderPrice1000Integer订单金额分
├─├─payPrice1000Integer支付金额分
├─├─createTime2025-02-27T23:20:36.000+0800String创建时间
├─├─completeTime2025-02-27T23:20:36.000+0800String支付时间
├─├─orderStatus1Integer订单状态 0-待支付 1-已支付
├─├─goodId1Integer商品唯一ID
├─├─goodNum1Integer购买数量
├─├─goodName2GBString商品名称
├─├─goodPrice1000Integer商品单价
├─├─goodSize2048Integer商品流量包带下
├─├─sumSize2048Integer订单总流量包大小
├─├─orderOtherInfo购买 2GB 流量包,购买数量:1String订单说明
├─├─autoRenewOrder1Integer是否开启续费 1-开启 0-不开 (全局生效)
├─total1Integer代理条数
├─size10Integer每页展示数
├─pages1Integer总页数

请求示例

{
   "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城市 不选要传""
countryCodeAEString国家Code
goodNum1Integer购买数量
proxyHostxxxxx:7778String大洲网址
proxyTypesocks5String代理类型 socks5 / http / https
proxyUseTypeproxyString挂载方式 proxy / vpm
stateAbudhabiString地区 不选要传""
time1String自动更换ip频率 (分钟) 可选 5、10、15、30、45、60、90

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳

请求示例

{
    "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参数

参数名示例值参数类型参数描述
padCodesString[]云机集合
├─AC32010921223String云机编号
setProxyFlagtrueBoolean是否设备代理到云机
proxyIds[ 82750 ]Array动态代理唯一ID

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
data1cb0ba24-cdc2-47d3-909d-d7ea2ab10576String批次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参数

参数名示例值参数类型参数描述
taskId1cb0ba24-cdc2-47d3-909d-d7ea2ab10576Integer批次ID,挂载代理是异步操作,因此需要等待5s或者循环查询

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
data[]Array批次ID
├─padCodeACP250317BH33TR6String设备号
├─taskId994365372Long任务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参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─good_size2048Integer续费的流量包大小
├─auto_renew_order1Integer是否开启自动续费 0-关闭 1-开启
├─order_price199Integer自动续费需扣除的金额
├─good_nameTraffic packageString自动续费商品名称
├─good_number1Integer自动续费商品数量

响应示例

{
    "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参数

参数名示例值参数类型参数描述
autoRenewOrder0Integer自动续费开关 0-关 1-开

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳

请求示例

{
    "autoRenewOrder": 0
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745823575860
}

删除动态代理

接口地址

/vcpcloud/api/padApi/delProxyByIds

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型参数描述
idsInteger[]要删除的动态代理ID集合
├─1Integer动态代理唯一ID

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳

请求示例

{
    "ids": [
        1
    ]
}

响应示例

{
    "msg": "success",
    "code": 200,
    "ts": 1745823575860
}

邮箱接码服务

购买邮箱并获取相关服务的验证码

获取邮箱服务列表

接口地址

/vcpcloud/api/padApi/getEmailServiceList

请求方式

GET

请求数据类型

application/json

请求Query参数

无

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─price0.01Float价格
├─stockNum300Integer剩余库存
├─serviceId1String服务列表编号
├─serviceNameGithubString服务名称
├─itemsObject[]子服务列表
├─├─serviceItemId1Integer子服务唯一ID (购买时使用的ID)
├─├─serviceItemNameGithub RegisterString子服务名称

响应示例

{
    "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参数

参数名示例值参数类型参数描述
serviceId1Integer对应 serviceItemId 字段

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1736922808949Integer时间戳
dataObject[]状态码
├─price0.01Float价格
├─nameOutlookString类型名称
├─stockNum630Integer剩余库存
├─id1Integer邮箱类型编号

请求示例

{
    "serviceId": "1"
}

响应示例

{
    "msg": "success",
    "code": 200,
    "data": [
        {
            "price": 0.01,
            "name": "Outlook",
            "stockNum": 300,
            "id": 1
        }
    ],
    "ts": 1745823575860
}

创建购买邮箱订单

接口地址

/vcpcloud/api/padApi/createEmailOrder

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型参数描述
serviceId1Integer对应 serviceItemId 字段
emailTypeId1Integer对应 /getEmailTypeList 返回的 ID 字段
goodNum1Integer购买数量

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject[]数据列表
├─ id7644Integer数据唯一标识
├─ orderIdVMOS-CLOUD173630666722957907String订单编号
├─ outorderIdVMOS-CLOUD173630666722957907String订单编号
├─ email106662Integer设备ID
├─ createTime2026-02-27T10:08:47.372+0800String创建时间
├─ creater14114String创建人
ts1736922808949Integer时间戳

请求示例

{
    "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参数

参数名示例值参数类型参数描述
page1Integer必填,分页参数,当前页
size10Integer必填,分页参数,每页条数
serviceId1Integer非必填,对应 serviceItemId 字段
emailyzxovmqString非必填,邮箱模糊查询
status0Integer非必填,邮箱状态 0-未使用 1-接收中 2-已使用 3-已失效

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745835489149Long时间戳(毫秒)
dataObject数据对象
├─ current1Integer当前页码
├─ total1Integer总记录数
├─ pages1Integer总页数
├─ size10Integer每页大小
├─ recordsObject[]数据记录列表
├─├─ id1Long主键 ID
├─├─ userId10667Long用户 ID
├─├─ emailyzxovmqi828@outlook.comString邮箱地址
├─├─ emailStatus0Integer邮箱状态(0-未使用)
├─├─ emailTypeId1Integer邮箱类型 ID
├─├─ emailTypeNameOutlookString邮箱类型名称
├─├─ emailServiceId2Integer邮箱服务商 ID
├─├─ emailServiceNameAppleString邮箱服务商名称
├─├─ emailCode767170String邮箱验证码
├─├─ useSize1Integer使用次数
├─├─ orderIdVMOS-CLOUD174583355706782096String系统订单号
├─├─ outOrderId1916791090664861697String外部订单号

请求示例

/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参数

参数名示例值参数类型参数描述
orderId1917193290790019073String必填,对应 outOrderId 字段

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
ts1745835489149Long时间戳(毫秒)

请求示例

/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参数

参数名示例值参数类型是否必填参数描述
padCodesString[]是
├─AC22010020062String是实例编号
wipeDatafalseBoolean是是否清除数据
realPhoneTemplateId186Long是云真机模板id

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject响应数据
├─taskId1Integer任务ID
├─padCodeAC21020010001String实例编号
├─vmStatus1Integer实例在线状态(0:离线;1:在线)

请求示例

{
    "padCodes": ["AC32010250011"],
    "wipeData": true,
    "realPhoneTemplateId": 186
}

响应示例

{
    "code": 200,
        "msg": "success",
        "ts": 1736326542985,
        "data": [{
        "taskId": 10074,
        "padCode": "AC32010250011",
        "errorMsg": null
    }]
}

SDK-Token签发(根据padCode)

签发临时 STS Token,用于对接入云手机服务的用户进行鉴权(该token只能用于请求的padCode)。

根据padCode获取SDK临时token

接口地址

/vcpcloud/api/padApi/stsTokenByPadCode

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
padCodeAC32010230001String是实例编号

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject数据列表
├─ token18df5803-48ce-4b53-9457-6a15feb1dacaStringsdk通信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参数

参数名示例值参数类型是否必填参数描述
token123String是

响应参数

参数名示例值参数类型参数描述
msgsuccessString响应消息
code200Integer状态码
dataObject数据列表
请求示例
{"token":1234}

响应示例

{
    "code": 200,
    "msg": "success",
    "ts":1713773577581,
    "data": null
}

流程自动化(RPA)

流程自动化接口面向系统对系统的模板调用与任务下发,由 VMOS Cloud 平台提供。

鉴权:与其他 OpenAPI 接口完全一致,沿用 HMAC-SHA256 V4 签名(详见 Authorization 签名机制),调用方使用相同的 AccessKey / SecretAccessKey。padCode 归属校验在网关层完成,非本账号下的设备会被直接拒绝。

模板来源:流程模板(scripts)由 VMOS Cloud 控制台的流程编辑器可视化编排产出,OpenAPI 仅提供 只读 的 list / get,不开放 create / update / delete —— 直传 raw JSON 实际无法运行。如需创建或修改模板,请使用 VMOS Cloud 控制台。

params 字段:所有 dispatch 类接口的 params 字段为 JSON 字符串(不是 JSON 对象),由调用方序列化后传入,原样透传给模板运行时。非法 JSON 会被网关拒绝。空字符串或省略代表“无参数”。

任务取消语义:cancel 是“尽力取消”—— pending 直接置为 cancelled;dispatched/running 置为 cancel_requested 并通知设备端中止;终态任务(completed/failed/cancelled)调用 cancel 无副作用。

业务错误码透传:上游返回 400 / 403 / 404 时原样透传 message;其他非 200 状态统一翻为 500 系统错误。


流程模板列表

分页查询当前用户可见的流程模板,含官方模板和本人私有模板。

接口地址

/vcpcloud/api/padApi/automation/scripts/list

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
page1Integer否页码,默认 1,最小 1
size20Integer否每页记录数,默认 20,范围 1~100
categoryofficialString否按模板归属类型过滤:official(官方/平台模板)、user(用户私有模板)
platformtiktokString否按业务平台过滤,例如 instagram / tiktok / youtube(仅 official 模板必填,用户模板可为空)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject
├─ total36Long总记录数
├─ listObject[]模板列表
│ ├─ id1024Long模板ID
│ ├─ nameTikTok 自动登录String模板名称(按 Accept-Language 返回对应语言)
│ ├─ description自动登录 TikTok 账号String模板描述
│ ├─ iconhttps://cdn.vmoscloud.com/icons/tiktok.pngString模板图标 URL
│ ├─ categoryofficialString模板归属类型(official / user 等)
│ ├─ platformtiktokString业务平台(official 模板取 instagram / tiktok / youtube 等;用户模板可为空)
│ ├─ userId0Long模板归属用户ID。0 表示官方/平台模板,>0 表示本人私有模板
│ ├─ targetPackagecom.zhiliaoapp.musicallyString目标应用包名(空表示不做安装校验)
│ ├─ minVersionCode0Long最低 versionCode(含);可空
│ ├─ maxVersionCode999999Long最高 versionCode(含);可空
│ ├─ minVersionName30.0.0String最低版本名,仅展示用;可空
│ ├─ maxVersionName39.9.9String最高版本名,仅展示用;可空
│ ├─ version3Integer模板版本号
│ ├─ createdAt2025-12-01T10:00:00String创建时间
│ ├─ updatedAt2026-05-01T18:32:11String更新时间
│ ├─ localezh-CNString实际命中的展示语言
│ ├─ tutorialVideoUrlhttps://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4String教程视频 URL(OSS);为空表示无教程入口,仅部分官方模板有

注:list 接口出于性能不返回模板 content(完整流程 JSON),仅在 get 接口中按需返回。

请求示例

{
  "page": 1,
  "size": 20,
  "category": "official",
  "platform": "tiktok"
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "total": 1,
    "list": [
      {
        "id": 1024,
        "name": "TikTok 自动登录",
        "description": "自动登录 TikTok 账号",
        "icon": "https://cdn.vmoscloud.com/icons/tiktok.png",
        "category": "official",
        "platform": "tiktok",
        "userId": 0,
        "targetPackage": "com.zhiliaoapp.musically",
        "version": 3,
        "createdAt": "2025-12-01T10:00:00",
        "updatedAt": "2026-05-01T18:32:11",
        "locale": "zh-CN",
        "tutorialVideoUrl": "https://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4"
      }
    ]
  }
}

流程模板详情

按 scriptId 查询单个流程模板详情。

接口地址

/vcpcloud/api/padApi/automation/scripts/get

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
scriptId1024Long是模板ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject模板详情
├─ id1024Long模板ID
├─ nameTikTok 自动登录String模板名称(按 Accept-Language 返回对应语言)
├─ description自动登录 TikTok 账号String模板描述
├─ iconhttps://cdn.vmoscloud.com/icons/tiktok.pngString模板图标 URL
├─ categoryofficialString模板归属类型(official / user 等)
├─ platformtiktokString业务平台(official 模板取 instagram / tiktok / youtube 等;用户模板可为空)
├─ userId0Long模板归属用户ID。0 表示官方/平台模板,>0 表示本人私有模板
├─ targetPackagecom.zhiliaoapp.musicallyString目标应用包名(空表示不做安装校验)
├─ minVersionCode0Long最低 versionCode(含);可空
├─ maxVersionCode999999Long最高 versionCode(含);可空
├─ minVersionName30.0.0String最低版本名,仅展示用;可空
├─ maxVersionName39.9.9String最高版本名,仅展示用;可空
├─ content见下方"content 字段返回说明"String流程 JSON 字符串。具体返回内容见本接口下方专门说明
├─ version3Integer模板版本号
├─ createdAt2025-12-01T10:00:00String创建时间
├─ updatedAt2026-05-01T18:32:11String更新时间
├─ localezh-CNString实际命中的展示语言
├─ tutorialVideoUrlhttps://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4String教程视频 URL(OSS);为空表示无教程入口,仅部分官方模板有

content 字段返回说明

content 字段返回的 JSON 字符串依调用方与模板归属关系两种形态:

返回形态触发条件内容
完整流程category != "official" 且 userId != 0 且 userId == 当前用户(即本人创建的私有模板)流程编辑器导出的完整 JSON,含所有可执行步骤
壳文档其他任一情况(官方模板 category=official、userId=0、或模板不属于当前用户)仅保留参数定义,可执行步骤被清空

壳文档 的字段:

字段类型说明
startParamMapArray原参数定义;每个元素含 key / label / placeholder / helpText 等;官方模板的 label/placeholder/helpText 已按 Accept-Language 本地化
contentsArray空数组(可执行步骤已清除)
otherContentsObject子图壳:{"startNode":{"position":{"x":0,"y":0},"type":"start","id":"shell","name":"shell","config":{}},"contents":[],"edges":[],"otherFunctionNode":[]}
contentTypeString透传原值,默认 flow
errorTypeString透传原值,默认 pause

任务实际下发时由服务端从数据库读取完整 content 执行,调用方无需也无法通过 OpenAPI 获取官方模板的完整步骤。

业务错误

code含义
404模板不存在,或无权访问

请求示例

{
  "scriptId": 1024
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "id": 1024,
    "name": "TikTok 自动登录",
    "description": "自动登录 TikTok 账号",
    "icon": "https://cdn.vmoscloud.com/icons/tiktok.png",
    "category": "official",
    "platform": "tiktok",
    "userId": 0,
    "targetPackage": "com.zhiliaoapp.musically",
    "content": "{\"startParamMap\":[{\"key\":\"account\",\"label\":\"账号\",\"placeholder\":\"请输入 TikTok 账号\",\"helpText\":\"\"},{\"key\":\"password\",\"label\":\"密码\",\"placeholder\":\"\",\"helpText\":\"\"}],\"contents\":[],\"otherContents\":{\"startNode\":{\"position\":{\"x\":0,\"y\":0},\"type\":\"start\",\"id\":\"shell\",\"name\":\"shell\",\"config\":{}},\"contents\":[],\"edges\":[],\"otherFunctionNode\":[]},\"contentType\":\"flow\",\"errorType\":\"pause\"}",
    "version": 3,
    "createdAt": "2025-12-01T10:00:00",
    "updatedAt": "2026-05-01T18:32:11",
    "locale": "zh-CN",
    "tutorialVideoUrl": "https://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4"
  }
}

批量派发流程任务

批量对多台云机派发同一模板,单次上限 200 台。支持两种互斥模式:

  • 模式 A(共用参数):用 padCodes 数组列出目标设备,所有设备共用 params
  • 模式 B(逐台独立参数):用 items 数组,每项包含独立的 padCode 和 params

padCodes 与 items 必须恰好二选一(不能同时为空,也不能同时非空),否则参数校验失败。

接口地址

/vcpcloud/api/padApi/automation/tasks/batch-dispatch

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
scriptId1024Long是要执行的模板ID
padCodes["AC2025030770R92X", "AC2025030770R93Y"]String[]二选一模式 A:目标设备列表,最多 200 个,元素非空
params"{"keyword":"summer sale"}"String否模式 A 下所有设备共用的参数(JSON 字符串);模式 B 下被忽略
items[{"padCode":"AC2025030770R92X","params":"{"account":"a@x.com"}"}]Object[]二选一模式 B:逐台独立参数,最多 200 个
├─ padCodeAC2025030770R92XString是目标设备编号
├─ params"{"account":"a@x.com"}"String否该设备独立的参数(JSON 字符串)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject[]任务记录数组;顺序与入参一致
├─ id30215Long任务真实主键
├─ displayId801117955Long任务对外展示ID(脱敏,非自增)
├─ scriptId1024Long模板ID
├─ scriptNameTikTok 自动登录String任务创建时的模板名称快照
├─ deviceIdAC2025030770R92XString设备编号(即 padCode)
├─ userId14114Long任务归属用户
├─ params"{"keyword":"summer sale"}"String任务参数原样回显(模式 A 为共用 params,模式 B 为该 item 的 params)
├─ statuspendingString任务状态
├─ startedAtnullString开始执行时间
├─ endedAtnullString结束时间
├─ createdAt2026-05-25T18:00:01String创建时间

业务错误

code含义
400参数错误(padCodes 与 items 同时为空、超过 200、JSON 参数非法等)
403无权操作其中至少一台设备(任一 padCode 不属于当前账号即整体拒绝)
404模板不存在或无权访问

请求示例(模式 A:共用参数)

{
  "scriptId": 1024,
  "padCodes": ["AC2025030770R92X", "AC2025030770R93Y"],
  "params": "{\"keyword\":\"summer sale\"}"
}

请求示例(模式 B:逐台独立参数)

{
  "scriptId": 1024,
  "items": [
    { "padCode": "AC2025030770R92X", "params": "{\"account\":\"a@x.com\"}" },
    { "padCode": "AC2025030770R93Y", "params": "{\"account\":\"b@x.com\"}" }
  ]
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": [
    {
      "id": 30216, "displayId": 801117992, "scriptId": 1024,
      "scriptName": "TikTok 自动登录", "deviceId": "AC2025030770R92X",
      "userId": 14114, "status": "pending",
      "createdAt": "2026-05-25T18:00:01"
    },
    {
      "id": 30217, "displayId": 801118029, "scriptId": 1024,
      "scriptName": "TikTok 自动登录", "deviceId": "AC2025030770R93Y",
      "userId": 14114, "status": "pending",
      "createdAt": "2026-05-25T18:00:01"
    }
  ]
}

流程任务列表

分页查询当前账号的流程任务记录,按 createdAt 倒序,支持时间范围过滤。

接口地址

/vcpcloud/api/padApi/automation/tasks/list

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
page1Integer否页码,默认 1
size20Integer否每页记录数,默认 20,范围 1~100
startTime2026-05-01T00:00:00ZString否起始时间(ISO-8601 UTC 字符串);非法格式视为不传
endTime2026-05-31T23:59:59ZString否截止时间(ISO-8601 UTC 字符串);非法格式视为不传

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject
├─ total128Long总记录数
├─ listObject[]任务列表
│ ├─ id30215Long任务真实主键
│ ├─ displayId801117955Long任务对外展示ID(脱敏,非自增)
│ ├─ scriptId1024Long模板ID
│ ├─ scriptNameTikTok 自动登录String任务创建时的模板名称快照
│ ├─ deviceIdAC2025030770R92XString设备编号(即 padCode)
│ ├─ userId14114Long任务归属用户
│ ├─ params"{"account":"foo@example.com"}"String任务参数原样回显
│ ├─ statuscompletedString任务状态(pending / dispatched / running / success / failed / cancelled / cancel_requested)
│ ├─ startedAt2026-05-25T18:00:05String开始执行时间
│ ├─ endedAt2026-05-25T18:02:30String结束时间
│ ├─ createdAt2026-05-25T18:00:01String创建时间

请求示例

{
  "page": 1,
  "size": 20,
  "startTime": "2026-05-25T00:00:00Z",
  "endTime": "2026-05-26T00:00:00Z"
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "total": 2,
    "list": [
      {
        "id": 30217, "displayId": 801118029, "scriptId": 1024,
        "scriptName": "TikTok 自动登录", "deviceId": "AC2025030770R93Y",
        "userId": 14114, "status": "success",
        "startedAt": "2026-05-25T18:00:05", "endedAt": "2026-05-25T18:02:30",
        "createdAt": "2026-05-25T18:00:01"
      },
      {
        "id": 30216, "displayId": 801117992, "scriptId": 1024,
        "scriptName": "TikTok 自动登录", "deviceId": "AC2025030770R92X",
        "userId": 14114, "status": "failed",
        "startedAt": "2026-05-25T18:00:05", "endedAt": "2026-05-25T18:01:42",
        "createdAt": "2026-05-25T18:00:01"
      }
    ]
  }
}

流程任务详情

按 taskId 查询单个任务的详情。

接口地址

/vcpcloud/api/padApi/automation/tasks/get

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskId30215Long是任务真实主键(dispatch 返回的 id,非 displayId)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject任务记录
├─ id30215Long任务真实主键
├─ displayId801117955Long任务对外展示ID(脱敏,非自增)
├─ scriptId1024Long模板ID
├─ scriptNameTikTok 自动登录String任务创建时的模板名称快照
├─ deviceIdAC2025030770R92XString设备编号(即 padCode)
├─ userId14114Long任务归属用户
├─ params"{"account":"foo@example.com"}"String任务参数原样回显
├─ statusrunningString任务状态(pending / dispatched / running / success / failed / cancelled / cancel_requested)
├─ startedAt2026-05-25T18:00:05String开始执行时间
├─ endedAtnullString结束时间
├─ createdAt2026-05-25T18:00:01String创建时间

业务错误

code含义
404任务不存在,或不属于当前账号

请求示例

{
  "taskId": 30215
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "id": 30215,
    "displayId": 801117955,
    "scriptId": 1024,
    "scriptName": "TikTok 自动登录",
    "deviceId": "AC2025030770R92X",
    "userId": 14114,
    "params": "{\"account\":\"foo@example.com\"}",
    "status": "running",
    "startedAt": "2026-05-25T18:00:05",
    "endedAt": null,
    "createdAt": "2026-05-25T18:00:01"
  }
}

流程任务日志

按 taskId 查询任务执行的步骤日志(按时间正序)。

接口地址

/vcpcloud/api/padApi/automation/tasks/logs

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskId30215Long是任务真实主键

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject[]步骤日志列表
├─ id50001Long日志ID
├─ taskId30215Long所属任务ID
├─ userId14114Long任务归属用户
├─ timestamp2026-05-25T18:00:05String步骤执行时间
├─ levelINFOString日志级别(INFO / WARN / ERROR)
├─ actionclick_elementString执行的指令名(见流程模板指令集)
├─ detail点击登录按钮String步骤描述
├─ result执行成功String执行结果描述(自由文本,如「执行成功」/「任务成功:正常完成」,非固定枚举)
├─ screenshotUrlhttps://oss-cn-hongkong.aliyuncs.com/vmosauto/shots/30215/01.jpgString步骤截图地址(OSS URL,可为空)

业务错误

code含义
404任务不存在,或不属于当前账号

请求示例

{
  "taskId": 30215
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": [
    {
      "id": 50001, "taskId": 30215, "userId": 14114,
      "timestamp": "2026-05-25T18:00:05",
      "level": "INFO", "action": "open_app",
      "detail": "启动 TikTok", "result": "执行成功",
      "screenshotUrl": null
    },
    {
      "id": 50002, "taskId": 30215, "userId": 14114,
      "timestamp": "2026-05-25T18:00:12",
      "level": "INFO", "action": "click_element",
      "detail": "点击登录按钮", "result": "执行成功",
      "screenshotUrl": "https://oss-cn-hongkong.aliyuncs.com/vmosauto/shots/30215/02.jpg"
    }
  ]
}

取消流程任务

取消指定任务。语义如下(尽力取消):

  • pending:直接置为 cancelled,不联系设备端
  • dispatched / running / cancel_requested:置为 cancel_requested,并通知设备端中止;设备端收到后将任务推入终态
  • 已是终态(completed / failed / cancelled):无副作用,幂等返回成功

接口地址

/vcpcloud/api/padApi/automation/tasks/cancel

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskId30215Long是任务真实主键

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
datanull取消请求无返回体

业务错误

code含义
404任务不存在,或不属于当前账号

请求示例

{
  "taskId": 30215
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": null
}

账号列表

分页查询当前用户的账号,支持平台 / 分组 / 状态 / 关键词 / 绑定状态过滤与排序。

接口地址

/vcpcloud/api/padApi/automation/accounts/list

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
page1Integer否页码,默认 1,最小 1
size20Integer否每页记录数,默认 20,范围 1~100
platforminstagramString否业务平台过滤,如 instagram / tiktok / youtube
groupId12Long否账号分组ID过滤
statusactiveString否账号状态过滤(登录态):inactive(新建未登录) / active(登录成功) / login_failed(登录失败);是否绑定云机请用 deviceBound 过滤
keywordaliceString否关键词,匹配 handle / 显示名
deviceBoundtrueBoolean否是否已绑定云机:true 仅已绑定,false 仅未绑定,省略=不过滤
sortBycreatedAtString否排序字段:createdAt / lastActiveAt / cachedFollowers 等
sortDirdescString否排序方向:asc / desc

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject
├─ total36Long总记录数
├─ listObject[]账号列表
│ ├─ id22Long账号ID
│ ├─ platforminstagramString业务平台
│ ├─ handlealice_igString账号 handle(可空)
│ ├─ displayNameAliceString显示名
│ ├─ usernamealice_loginString登录账号(用户名),用于识别账号;不含密码
│ ├─ emailuser@example.comString备用邮箱;不含邮箱密码
│ ├─ avatarUrlhttps://...String头像 URL
│ ├─ countryUSString国家/地区
│ ├─ groupId12Long所属分组ID(可空)
│ ├─ tags主力,运营AString标签(逗号分隔,可空)
│ ├─ statusactiveString账号状态
│ ├─ automationEnabled1Integer是否启用自动化:1 启用 / 0 停用
│ ├─ boundDeviceIdAC2025030770R92XString已绑定云机编号(padCode,可空)
│ ├─ lastLoginAt2026-05-30T21:00:00String最近登录时间(可空)
│ ├─ lastActiveAt2026-05-31T00:01:00String最近活跃时间(可空)
│ ├─ cachedFollowers12000Long缓存粉丝数(可空)
│ ├─ cachedFollowing320Long缓存关注数(可空)
│ ├─ cachedWorksCount48Integer缓存作品数(可空)
│ ├─ cachedLikesTotal95000Long缓存获赞总数(可空)
│ ├─ cachedUnreadMessages3Integer缓存未读消息数(可空)
│ ├─ cachedSnapshotAt2026-05-31T00:01:00String缓存指标采集时间(可空)
│ ├─ note备注内容String备注(可空)
│ ├─ createdAt2026-05-01T10:00:00String创建时间
│ ├─ updatedAt2026-05-31T00:01:00String更新时间

请求示例

{
  "page": 1,
  "size": 20,
  "platform": "instagram",
  "status": "active",
  "deviceBound": true,
  "sortBy": "createdAt",
  "sortDir": "desc"
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "total": 1,
    "list": [
      {
        "id": 22,
        "platform": "instagram",
        "handle": "alice_ig",
        "displayName": "Alice",
        "username": "alice_login",
        "email": "user@example.com",
        "avatarUrl": "https://cdn.vmoscloud.com/avatar/22.png",
        "country": "US",
        "groupId": 12,
        "tags": "主力,运营A",
        "status": "active",
        "automationEnabled": 1,
        "boundDeviceId": "AC2025030770R92X",
        "lastLoginAt": "2026-05-30T21:00:00",
        "lastActiveAt": "2026-05-31T00:01:00",
        "cachedFollowers": 12000,
        "cachedFollowing": 320,
        "cachedWorksCount": 48,
        "cachedLikesTotal": 95000,
        "cachedUnreadMessages": 3,
        "cachedSnapshotAt": "2026-05-31T00:01:00",
        "note": null,
        "createdAt": "2026-05-01T10:00:00",
        "updatedAt": "2026-05-31T00:01:00"
      }
    ]
  }
}

账号详情

按 accountId 查询单个账号详情,返回字段同 账号列表 的 list 元素。

接口地址

/vcpcloud/api/padApi/automation/accounts/get

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID

业务错误

code含义
404账号不存在,或不属于当前账号

请求示例

{
  "accountId": 22
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "id": 22,
    "platform": "instagram",
    "handle": "alice_ig",
    "displayName": "Alice",
    "username": "alice_login",
    "email": "user@example.com",
    "avatarUrl": "https://cdn.vmoscloud.com/avatar/22.png",
    "country": "US",
    "groupId": 12,
    "tags": "主力,运营A",
    "status": "active",
    "automationEnabled": 1,
    "boundDeviceId": "AC2025030770R92X",
    "lastLoginAt": "2026-05-30T21:00:00",
    "lastActiveAt": "2026-05-31T00:01:00",
    "cachedFollowers": 12000,
    "cachedFollowing": 320,
    "cachedWorksCount": 48,
    "cachedLikesTotal": 95000,
    "cachedUnreadMessages": 3,
    "cachedSnapshotAt": "2026-05-31T00:01:00",
    "note": null,
    "createdAt": "2026-05-01T10:00:00",
    "updatedAt": "2026-05-31T00:01:00"
  }
}

账号数据快照

按 accountId 查询账号粒度的历史数据快照(粉丝 / 关注 / 作品数 / 获赞时序),按采集时间倒序返回。

接口地址

/vcpcloud/api/padApi/automation/accounts/snapshots

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject[]快照列表
├─ id5001Long快照ID
├─ accountId22Long账号ID
├─ userId14114Long数据归属用户ID
├─ taskId30215Long来源任务ID(可空)
├─ followers12000Long粉丝数(可空)
├─ following320Long关注数(可空)
├─ worksCount48Integer作品数(可空)
├─ likesTotal95000Long获赞总数(可空)
├─ collectedAt2026-05-31T00:01:00String采集时间

请求示例

{
  "accountId": 22
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": [
    {
      "id": 5001,
      "accountId": 22,
      "userId": 14114,
      "taskId": 30215,
      "followers": 12000,
      "following": 320,
      "worksCount": 48,
      "likesTotal": 95000,
      "collectedAt": "2026-05-31T00:01:00"
    }
  ]
}

账号作品列表

分页查询账号已采集的作品(按 platformWorkId 去重维度)。每条作品附带最近一次采集到的指标快照。

接口地址

/vcpcloud/api/padApi/automation/accounts/works

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID
page1Integer否页码,默认 1,最小 1
size20Integer否每页记录数,默认 20,范围 1~100

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject
├─ total48Long总记录数
├─ listObject[]作品列表
│ ├─ id9001Long作品记录ID
│ ├─ accountId22Long账号ID
│ ├─ userId14114Long归属用户ID
│ ├─ platformWorkIdC9xYz...String平台侧作品ID
│ ├─ urlhttps://...String作品分享链接(可空)
│ ├─ title标题String标题(可空)
│ ├─ caption文案内容String作品文案(可空)
│ ├─ coverUrlhttps://...String封面 URL(可空)
│ ├─ publishedAt2026-05-20T12:00:00String发布时间(可空)
│ ├─ durationSec30Integer时长秒(部分平台有,可空)
│ ├─ deletedOnPlatform0Integer是否已在平台删除:1 已删 / 0 在线
│ ├─ firstSeenAt2026-05-20T13:00:00String首次采集到的时间
│ ├─ latestCollectedAt2026-05-31T00:01:00String最近一次指标采集时间(可空)
│ ├─ views10000Long播放量(可空)
│ ├─ likes800Long点赞(可空)
│ ├─ comments60Long评论(可空)
│ ├─ shares25Long分享(可空)
│ ├─ saves40Long收藏(可空)
│ ├─ reposts5Long转发(可空)
│ ├─ profileVisits120Long主页访问(可空)
│ ├─ followConversions12Long关注转化(可空)
│ ├─ avgWatchTimeSec8.50Number平均观看时长秒(可空)
│ ├─ completionRate0.42Number完播率(可空)

请求示例

{
  "accountId": 22,
  "page": 1,
  "size": 20
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "total": 1,
    "list": [
      {
        "id": 9001,
        "accountId": 22,
        "userId": 14114,
        "platformWorkId": "C9xYzAbc123",
        "url": "https://www.instagram.com/reel/C9xYzAbc123/",
        "title": null,
        "caption": "今天的分享",
        "coverUrl": "https://cdn.vmoscloud.com/cover/9001.jpg",
        "publishedAt": "2026-05-20T12:00:00",
        "durationSec": 30,
        "deletedOnPlatform": 0,
        "firstSeenAt": "2026-05-20T13:00:00",
        "latestCollectedAt": "2026-05-31T00:01:00",
        "views": 10000,
        "likes": 800,
        "comments": 60,
        "shares": 25,
        "saves": 40,
        "reposts": 5,
        "profileVisits": 120,
        "followConversions": 12,
        "avgWatchTimeSec": 8.50,
        "completionRate": 0.42
      }
    ]
  }
}

账号作品数据快照

按 accountId + workId 查询单个作品的指标时序(每次采集一条),按采集时间倒序返回。accountId 用于归属校验。

接口地址

/vcpcloud/api/padApi/automation/accounts/work-snapshots

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID(归属校验)
workId9001Long是作品记录ID

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject[]指标快照列表
├─ id7001Long快照ID
├─ workId9001Long作品记录ID
├─ views10000Long播放量(可空)
├─ likes800Long点赞(可空)
├─ comments60Long评论(可空)
├─ shares25Long分享(可空)
├─ saves40Long收藏(可空)
├─ reposts5Long转发(可空)
├─ profileVisits120Long主页访问(可空)
├─ followConversions12Long关注转化(可空)
├─ avgWatchTimeSec8.50Number平均观看时长秒(可空)
├─ completionRate0.42Number完播率(可空)
├─ collectedAt2026-05-31T00:01:00String采集时间

请求示例

{
  "accountId": 22,
  "workId": 9001
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": [
    {
      "id": 7001,
      "workId": 9001,
      "views": 10000,
      "likes": 800,
      "comments": 60,
      "shares": 25,
      "saves": 40,
      "reposts": 5,
      "profileVisits": 120,
      "followConversions": 12,
      "avgWatchTimeSec": 8.50,
      "completionRate": 0.42,
      "collectedAt": "2026-05-31T00:01:00"
    }
  ]
}

账号分组列表

查询当前用户的全部账号分组,按 sortOrder 升序返回。

接口地址

/vcpcloud/api/padApi/automation/accounts/groups/list

请求方式

POST

请求数据类型

application/json

请求Body参数

无(userId 由签名派生)

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject[]分组列表
├─ id12Long分组ID
├─ name主力账号String分组名称
├─ color#FF8800String分组颜色(可空)
├─ sortOrder1Integer排序序号(可空)
├─ createdAt2026-05-01T10:00:00String创建时间

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": [
    {
      "id": 12,
      "name": "主力账号",
      "color": "#FF8800",
      "sortOrder": 1,
      "createdAt": "2026-05-01T10:00:00"
    }
  ]
}

批量触发账号操作

对多个账号批量触发模板立即执行。每个账号的目标云机由其当前已绑定云机推导(不传 padCode);凭据由服务端按 fromCredential 解密注入(不经前端、不可读出)。一次请求建多条任务并并发派发,任务记录结构同 批量派发流程任务。

接口地址

/vcpcloud/api/padApi/automation/accounts/operations/batch

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
scriptId1024Long是要执行的模板ID
accountIds[22, 17]Long[]是目标账号ID列表
taskNameInstagram批量采集String否计划名(任务列表展示用)
sharedOptions见下Object[]二选一共用参数:所有账号同一份
perAccountOptions{"22":[...]}Object二选一逐账号参数:accountId → option 列表

option 项结构(sharedOptions / perAccountOptions 的元素):

字段示例值参数类型是否必填参数描述
key搜索关键字String是模板参数名(startTaskOptions 的 key)
valuetravelString否非凭据参数的明文值
fromCredentialpasswordString否凭据字段名(username/password/twofa_secret/email/email_password);非空则服务端按账号解密注入到该 key

业务错误

code含义
400scriptId / accountIds 缺失
404模板不存在或无权访问

请求示例

{
  "scriptId": 1024,
  "accountIds": [22, 17],
  "taskName": "Instagram批量采集",
  "sharedOptions": [
    { "key": "搜索关键字", "value": "travel" },
    { "key": "account", "fromCredential": "username" },
    { "key": "password", "fromCredential": "password" }
  ]
}

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject
├─ ok2Integer成功创建并进入后台派发的任务数
├─ fail0Integer派发前被跳过的账号数(未绑定云机 / 不可访问)
├─ resultsObject[]逐账号结果
│ ├─ accountId22Long账号ID
│ ├─ successtrueBoolean是否已创建并入队
│ ├─ taskId30216Long任务ID(失败为 null)
│ ├─ errornullString失败原因(成功为 null)

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "ok": 2,
    "fail": 0,
    "results": [
      { "accountId": 22, "success": true, "taskId": 30216, "error": null },
      { "accountId": 17, "success": true, "taskId": 30217, "error": null }
    ]
  }
}

账号批量定时任务

对多个账号批量创建定时任务:每个账号生成一条定时任务,按 Cron 表达式定时触发。fire 时按账号实时取绑定云机 + 解密注入凭据(params 落库不含明文,只存 fromCredential 映射)。

接口地址

/vcpcloud/api/padApi/automation/accounts/scheduled-tasks/batch

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
scriptId1024Long是模板ID
accountIds[22, 17]Long[]是目标账号ID列表
cronExpr0 0 9 * * *String是Cron 表达式(6 段,含秒);oneShot 任务也用它表达单次触发时刻
oneShotfalseBoolean否是否一次性任务(fire 后自动停用),默认 false
enabledtrueBoolean否创建后是否立即启用,默认 true
taskName每日采集String否计划名
sharedOptions见下Object[]二选一共用参数;option 项结构同 批量触发账号操作
perAccountOptions{"22":[...]}Object二选一逐账号参数:accountId → option 列表

业务错误

code含义
400scriptId / accountIds / cronExpr 缺失或 cron 非法
403存在不属于当前账号的 account
404模板不存在或无权访问

请求示例

{
  "scriptId": 1024,
  "accountIds": [22, 17],
  "cronExpr": "0 0 9 * * *",
  "oneShot": false,
  "taskName": "每日采集",
  "sharedOptions": [
    { "key": "account", "fromCredential": "username" },
    { "key": "password", "fromCredential": "password" }
  ]
}

响应示例(每账号一条定时任务记录)

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": [
    {
      "id": 501,
      "taskName": "每日采集",
      "scriptId": 1024,
      "deviceId": "AC2025030770R92X",
      "cronExpr": "0 0 9 * * *",
      "oneShot": false,
      "enabled": true,
      "createdAt": "2026-06-02T10:00:00"
    }
  ]
}

创建账号

写入一个账号到账号矩阵(含凭据,服务端 AES-GCM 加密落库)。同一平台下 handle 唯一。

接口地址

/vcpcloud/api/padApi/automation/accounts/create

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
platforminstagramString是业务平台
usernamealice_igString是登录账号(凭据,加密存储)
password******String是登录密码(凭据,加密存储)
handlealice_igString否账号 @handle(同平台唯一,可留空)
twofaSecretJBSWY3DPEH…String否2FA 密钥(凭据)
emaila@x.comString否邮箱(凭据)
emailPassword******String否邮箱密码(凭据)
groupId12Long否分组ID
countryUSString否国家/地区
note备注String否备注
tags主力,运营AString否标签(逗号分隔)

业务错误

code含义
409账号已存在(同平台同 handle 唯一),请换 handle 或留空

请求示例

{
  "platform": "instagram",
  "username": "alice_ig",
  "password": "secret",
  "handle": "alice_ig",
  "groupId": 12
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "id": 22,
    "platform": "instagram",
    "handle": "alice_ig",
    "status": "active",
    "boundDeviceId": null,
    "createdAt": "2026-06-02T10:00:00"
  }
}

绑定云机

把账号绑定到一台云机。同一云机同一平台只能有 1 个 active 账号;冲突时 force=false 返回 409、force=true 强制换绑(旧账号自动解绑)。padCode 归属在网关侧预校验。

接口地址

/vcpcloud/api/padApi/automation/accounts/bind

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID
padCodeAC2025030770R92XString是目标云机编号
forcefalseBoolean否冲突时是否强制换绑,默认 false

业务错误

code含义
403padCode 不属于当前账号
409云机已被同平台其它账号占用(force=false);data 含占用账号信息

请求示例

{ "accountId": 22, "padCode": "AC2025030770R92X", "force": false }

响应示例(成功 data 为 null;冲突 409)

{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }
{ "code": 409, "msg": "device occupied by same-platform account", "data": { "occupiedBy": 17, "occupiedByHandle": "bob_ig" } }

解绑云机

解除账号与其当前绑定云机的关系。

接口地址

/vcpcloud/api/padApi/automation/accounts/unbind

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID

响应示例

{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }

删除账号

软删除账号,凭据一并清除(可由后台恢复,但凭据需重填)。

接口地址

/vcpcloud/api/padApi/automation/accounts/delete

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID

业务错误

code含义
404账号不存在,或不属于当前账号

响应示例

{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }

移动账号分组

把账号移动到指定分组;groupId 传 null 表示移出分组(未分组)。

接口地址

/vcpcloud/api/padApi/automation/accounts/group

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
accountId22Long是账号ID
groupId12Long否目标分组ID;null = 移出分组

业务错误

code含义
404账号不存在,或不属于当前账号

请求示例

{ "accountId": 22, "groupId": 12 }

响应示例

{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }

定时任务列表

分页查询当前用户的定时任务。

接口地址

/vcpcloud/api/padApi/automation/scheduled-tasks/list

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
page1Integer否页码,默认 1,最小 1
size20Integer否每页记录数,默认 20,范围 1~100

响应参数

参数名示例值参数类型参数描述
code200Integer状态码
msgsuccessString响应消息
ts1748400000000Long时间戳
dataObject
├─ total8Long总记录数
├─ listObject[]定时任务列表
│ ├─ id501Long定时任务ID
│ ├─ taskNameInstagram自动采集20260531String计划名称
│ ├─ scriptId1024Long模板ID
│ ├─ scriptNameInstagram 自动采集String模板名称快照
│ ├─ deviceIdAC2025030770R92XString目标云机编号(单设备)
│ ├─ cronExpr0 0 9 * * *StringCron 表达式(6 段,含秒)
│ ├─ oneShotfalseBoolean是否一次性任务
│ ├─ enabledtrueBoolean是否启用
│ ├─ params"{...}"String运行参数 JSON 字符串
│ ├─ lastRunAt2026-05-31T09:00:00String上次触发时间(可空)
│ ├─ nextRunAt2026-06-01T09:00:00String下次触发时间(由 Cron 推算,可空)
│ ├─ createdAt2026-05-30T18:00:00String创建时间

请求示例

{
  "page": 1,
  "size": 20
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "total": 1,
    "list": [
      {
        "id": 501,
        "taskName": "Instagram自动采集20260531090000",
        "scriptId": 1024,
        "scriptName": "Instagram 自动采集",
        "deviceId": "AC2025030770R92X",
        "cronExpr": "0 0 9 * * *",
        "oneShot": false,
        "enabled": true,
        "params": "{\"flowName\":\"Instagram自动采集20260531090000\",\"startTaskOptions\":[]}",
        "lastRunAt": "2026-05-31T09:00:00",
        "nextRunAt": "2026-06-01T09:00:00",
        "createdAt": "2026-05-30T18:00:00"
      }
    ]
  }
}

创建定时任务

创建定时任务。可一次指定多台云机(padCodes),每台云机生成一条独立的定时任务。支持周期任务(cronExpr)与一次性任务(oneShot=true)。

Cron 表达式为 6 段格式(秒 分 时 日 月 周),例如每天 9:00 为 0 0 9 * * *。周期任务必填;oneShot=true 的一次性任务也用 Cron 表达单次触发时刻。

接口地址

/vcpcloud/api/padApi/automation/scheduled-tasks/create

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskNameInstagram自动采集20260531String是计划名称
scriptId1024Long是要执行的模板ID
padCodes["AC2025030770R92X"]String[]是目标云机编号列表,每台生成一条定时任务
cronExpr0 0 9 * * *String否Cron 表达式(6 段),周期任务必填;oneShot 任务可空
oneShotfalseBoolean否是否一次性任务,默认 false
params"{"keyword":"travel"}"String否模板运行参数,JSON 字符串,非法 JSON 会被拒绝
enabledtrueBoolean否是否创建后立即启用,默认 true

业务错误

code含义
403存在不属于当前账号的 padCode
404模板不存在或无权访问

请求示例

{
  "taskName": "Instagram自动采集20260531",
  "scriptId": 1024,
  "padCodes": ["AC2025030770R92X"],
  "cronExpr": "0 0 9 * * *",
  "oneShot": false,
  "params": "{\"keyword\":\"travel\"}",
  "enabled": true
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": [
    {
      "id": 501,
      "taskName": "Instagram自动采集20260531",
      "scriptId": 1024,
      "deviceId": "AC2025030770R92X",
      "cronExpr": "0 0 9 * * *",
      "oneShot": false,
      "enabled": true,
      "createdAt": "2026-05-30T18:00:00"
    }
  ]
}

修改定时任务

修改单条定时任务。一条定时任务对应单台云机,故用单数 padCode;如需改为多设备请删除后重新创建。

接口地址

/vcpcloud/api/padApi/automation/scheduled-tasks/update

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskId501Long是定时任务ID
taskNameInstagram自动采集(改)String是计划名称
scriptId1024Long是模板ID
padCodeAC2025030770R92XString是目标云机编号(单个)
cronExpr0 30 9 * * *String否Cron 表达式(6 段)
oneShotfalseBoolean否是否一次性任务
params"{"keyword":"food"}"String否模板运行参数,JSON 字符串
enabledtrueBoolean否是否启用

业务错误

code含义
403padCode 不属于当前账号
404定时任务 / 模板不存在或无权访问

请求示例

{
  "taskId": 501,
  "taskName": "Instagram自动采集(改)",
  "scriptId": 1024,
  "padCode": "AC2025030770R92X",
  "cronExpr": "0 30 9 * * *",
  "oneShot": false,
  "params": "{\"keyword\":\"food\"}",
  "enabled": true
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": {
    "id": 501,
    "taskName": "Instagram自动采集(改)",
    "scriptId": 1024,
    "deviceId": "AC2025030770R92X",
    "cronExpr": "0 30 9 * * *",
    "oneShot": false,
    "enabled": true
  }
}

启停定时任务

启用 / 停用一条定时任务。停用后调度器不再触发,启用后恢复。

接口地址

/vcpcloud/api/padApi/automation/scheduled-tasks/toggle

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskId501Long是定时任务ID
enabledfalseBoolean是true 启用 / false 停用

业务错误

code含义
404定时任务不存在,或不属于当前账号

请求示例

{
  "taskId": 501,
  "enabled": false
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": null
}

删除定时任务

删除一条定时任务。

接口地址

/vcpcloud/api/padApi/automation/scheduled-tasks/delete

请求方式

POST

请求数据类型

application/json

请求Body参数

参数名示例值参数类型是否必填参数描述
taskId501Long是定时任务ID

业务错误

code含义
404定时任务不存在,或不属于当前账号

请求示例

{
  "taskId": 501
}

响应示例

{
  "code": 200,
  "msg": "success",
  "ts": 1748400000000,
  "data": null
}

回调相关

配置说明

需要客户在WEB端配置回调地址,配置地址成功则默认开启接收回调信息

异步执行ADB命令回调

使用场景

客户调用异步执行ADB命令,会通过该回调接口通知给客户。

字段类型示例说明
taskBusinessTypeInteger1002任务业务类型
taskIdInteger1任务id
padCodeStringAC22030022001实例标识
taskStatusInteger3任务状态(-1:全失败;-2:部分失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
endTimeLong1756021166163任务执行结束时间
taskResultStringSuccess任务结果
taskContentString任务内容
cmdStringcd /root;ls执行的命令
cmdResultString/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,会通过该回调接口通知客户。

字段类型示例说明
taskBusinessTypeInteger1009任务业务类型
taskIdInteger1任务ID
resultbooleantrue执行结果:true-成功,false-失败
errorCodeString错误码
padCodeStringAC22030022001实例编号
fileIdStringcf08f7b685ab3a7b6a793b30de1b33ae34文件id

示例

{
    "errorCode": null,
    "fileId": "cfec132ab3c4e1aff5515c4467d9bbe460",
    "padCode": "AC22030022001",
    "result": true,
    "taskBusinessType": 1009,
    "taskId": 10659,
    "taskResult": "Success", 
    "taskStatus": 3
}

应用安装回调

使用场景

客户调用应用安装,应用的安装情况会通过该回调接口通知给客户。

字段类型示例说明
taskBusinessTypeInteger1003任务业务类型
taskIdInteger1任务ID
appsObject[]应用信息
├─ appIdInteger10001应用ID
├─ appNameStringdemo应用名称
├─ pkgNameStringcom.xxx.demo包名
├─ padCodeStringAC22030022001实例编号
├─ resultbooleantrue安装结果的标识。true:成功,false:失败
├─ failMsgString此应用已加入黑名单,禁止安装失败信息

示例

{
    "endTime": 1734939747000,
    "padCode": "AC22030022001",
    "taskBusinessType": 1003,
    "taskContent": "",
    "taskId": 10613,
    "taskResult": "Success",
    "taskStatus": 3
}

应用卸载回调

使用场景

客户调用应用卸载,应用卸载的情况会通过该回调接口通知给客户。

字段类型示例说明
taskBusinessTypeInteger1004任务业务类型
taskIdInteger1任务ID
appsObject应用信息
├─ appIdInteger10001应用ID
├─ appNameStringdemo应用名称
├─ pkgNameStringcom.xxx.demo包名
├─ padCodeStringAC22030022001实例编号
├─ resultbooleantrue安装结果的标识。true:成功,false:失败

示例

{
    "endTime": 1734940052000,
    "padCode": "AC22030022001",
    "taskBusinessType": 1004,
    "taskContent": "",
    "taskId": null,
    "taskResult": "Success",
    "taskStatus": 3
}

应用启动回调

使用场景

客户调用应用启动,应用启动的情况会通过该回调接口通知给客户。

字段类型示例说明
taskBusinessTypeInteger1007任务业务类型
taskIdInteger1任务ID
taskStatusInteger3任务状态(-1:全失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
padCodeStringAC22030022001实例标识
pkgNameStringxxx.test.com包名

示例

{
    "taskBusinessType": 1007,
    "packageName": "com.quark.browser",
    "padCode": "AC22030022001",
    "taskId": 10618,
    "taskStatus": 3
}

应用停止回调

使用场景

客户调用应用停止,应用停止的情况会通过该回调接口通知给客户。

字段类型示例说明
taskBusinessTypeInteger1005任务业务类型
taskIdInteger1任务ID
taskStatusInteger3任务状态(-1:全失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
padCodeStringAC22030022001实例标识
pkgNameStringxxx.test.com包名

示例

{
    "taskBusinessType": 1005,
    "packageName": "com.quark.browser",
    "padCode": "AC22030022001",
    "taskId": 10618,
    "taskStatus": 3
}

应用重启回调

使用场景

客户调用应用重启,应用重启的情况会通过该回调接口通知给客户。

字段类型示例说明
taskBusinessTypeInteger1006任务业务类型
taskIdInteger1任务ID
taskStatusInteger3任务状态(-1:全失败;-3:取消;-4:超时;1:待执行;2:执行中;3:完成)
padCodeStringAC22030022001实例标识
pkgNameStringxxx.test.com包名

示例

{
    "taskBusinessType": 1006,
    "packageName": "com.quark.browser",
    "padCode": "AC22030022001",
    "taskId": 10618,
    "taskStatus": 3
}

用户镜像上传回调

使用场景

用户镜像上传,结果通过该回调接口通知给客户。

字段类型示例说明
taskBusinessTypeInteger4001任务业务类型
imageIdStringimg-2505244083302766镜像id
taskStatusInteger3任务状态(-1:失败;3:完成)

示例

{
    "imageId": "img-2505244083302766",
    "taskBusinessType": 4001,
    "taskStatus": 3
}

一键新机回调

使用场景: 一键新机任务执行完成后,系统通过此接口通知客户。

字段类型示例说明
taskBusinessTypeInteger1124任务业务类型
padCodeString212254实例编号
taskStatusInteger3任务状态(-1:全失败; -3:取消; -4:超时; 1:待执行; 2:执行中; 3:完成)
taskIdInteger1任务ID
taskContentString-任务内容
endTimeLong1756021166163结束时间(毫秒时间戳)
taskResultStringSuccess任务结果描述

实例升级镜像任务回调

使用场景: 实例升级镜像任务状态变更时发送通知。

字段类型示例说明
taskBusinessTypeInteger1012任务业务类型
padCodeString212254实例编号
taskStatusInteger3任务状态(同上)
taskIdInteger1任务ID
taskContentString-任务内容
endTimeLong1756021166163结束时间
taskResultStringSuccess任务结果

实例状态回调

使用场景: 实例本身的运行状态或连接状态发生变更时通知客户。

字段类型示例说明
taskBusinessTypeInteger999任务业务类型
padCodeString212254实例标识
padStatusInteger10实例状态: -1:已删除; 10:运行中; 11:重启中; 12:重置中; 13:升级中; 14:异常; 15:未就绪; 16:备份中; 17:还原中; 18:关机; 19:关机中; 20:开机中; 21:关机失败; 22:开机失败
padConnectStatusInteger1实例连接状态: 1:在线; 0:离线

实例重启/重置任务回调

使用场景: 针对实例重启(1000)或重置(1001)操作的结果通知。

字段类型示例说明
taskBusinessTypeInteger1000/10011000为重启,1001为重置
padCodeString212254实例编号
taskStatusInteger3任务状态(-1:失败; 1:待执行; 2:执行中; 3:完成)
taskIdInteger1任务ID
endTimeLong1756021166163结束时间
taskResultStringSuccess任务结果
Prev
V2 简化签名
Next
LLMs.txt(AI快速参考)