Introduction
This document provides detailed API descriptions, syntax, parameter explanations, and examples, allowing you to manage cloud phone service resources through API calls.
API Overview
Instance Management
| API | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/setWifiList | Modify Instance WIFI Properties | Modify the WIFI list properties of the specified instance |
| /vcpcloud/api/padApi/padDetail | Query Cloud Phone Base Info List | Support paginated query of cloud phone base information including running status, online status, compute occupation |
| /vcpcloud/api/padApi/restart | Instance Restart | Perform restart operation on the specified instance to resolve issues like system unresponsiveness or freezing |
| /vcpcloud/api/padApi/reset | Instance Reset | Perform reset operation on the instance, clearing all cloud instance data |
| /vcpcloud/api/padApi/padProperties | Query Instance Properties | Query the property information of the specified instance, including system properties and settings |
| /vcpcloud/api/padApi/batchPadProperties | Batch Query Instance Properties | Batch query the property information of specified instances, including system properties and settings |
| /vcpcloud/api/padApi/updatePadProperties | Modify Instance Properties | Dynamically modify instance properties, including system and settings |
| /vcpcloud/api/padApi/updatePadAndroidProp | Modify Instance Android Modification Properties | Static setting of Android modification properties, requires instance restart to take effect |
| /vcpcloud/api/padApi/updateSIM | Modify SIM Card Information Based on Country Code | Static setting of Android modification properties, randomly generates SIM info and restarts instance |
| /vcpcloud/api/padApi/dissolveRoom | Stop Streaming | Stop streaming for specified instance, disconnect connection |
| /vcpcloud/api/padApi/checkIP | Smart IP Proxy Detection | Detect if proxy IP is available and if location information is correct |
| /vcpcloud/api/padApi/smartIp | Set Smart IP | Set smart IP for cloud device; automatically change exit IP, SIM info, GPS, etc. |
| /vcpcloud/api/padApi/notSmartIp | Cancel Smart IP | Cancel smart IP, restore exit IP, SIM info, GPS, etc. |
| /vcpcloud/api/padApi/getTaskStatus | Device Task Execution Result Query | Query task execution result using task number (for smart IP) |
| /vcpcloud/api/padApi/getListInstalledApp | Get All Installed Apps in Specified Cloud Instance List | Get all installed apps in specified cloud instance list |
| /vcpcloud/api/padApi/updateTimeZone | Modify Instance Timezone | Modify instance timezone |
| /vcpcloud/api/padApi/updateLanguage | Modify Instance Language | Modify instance language |
| /vcpcloud/api/padApi/gpsInjectInfo | Set Instance Latitude and Longitude | Set instance latitude and longitude |
| /vcpcloud/open/network/proxy/info | Query Instance Proxy Information (Pending Launch) | Query instance proxy information (Pending Launch) |
| /vcpcloud/api/padApi/replacePad | One-Key New Device ⭐ | One-key new device clears all current instance data and resets Android properties |
| /vcpcloud/api/padApi/padReplaceNew | One-Key New Device (Auto SIM/GPS/Timezone) ⭐ | One-key new device automatically writes SIM/GPS/timezone based on deployment location |
| /vcpcloud/api/padApi/country | Query One-Key New Device Supported Countries List | Query supported countries list for one-key new device |
| /vcpcloud/api/padApi/webview/version/list | Query Available WebView Versions | Query the list of all available WebView versions |
| /vcpcloud/api/padApi/updateContacts | Update Contacts | Update contacts |
| /vcpcloud/api/padApi/setProxy | Instance Set Proxy | Set proxy information for specified instance |
| /vcpcloud/api/padApi/listInstalledApp | Real-Time Query Installed Apps List | Real-time query installed apps list |
| /vcpcloud/api/padApi/setKeepAliveApp | Set App Keep-Alive | Set app keep-alive (currently supports Android 13,14,15 only) |
| /vcpcloud/api/padApi/setHideAppList | Set App Hide (Pending Launch) | Send hide package list to specified instance (Pending Launch) |
| /vcpcloud/api/padApi/replaceRealAdiTemplate | Modify Real Device ADI Template | Modify cloud real device ADI template |
| /vcpcloud/api/padApi/asyncCmd | Async Execute ADB Commands | Async execute commands in one or more cloud instances |
| /vcpcloud/api/padApi/switchRoot | Switch Root Permissions | Switch root permissions in one or more cloud instances |
| /vcpcloud/api/padApi/screenshot | Local Screenshot | Instance screenshot |
| /vcpcloud/api/padApi/getLongGenerateUrl | Get Instance Real-Time Preview Image | Get current screen screenshot for specified instance |
| /vcpcloud/api/padApi/upgradeImage | Upgrade Image | Batch instance image upgrade |
| /vcpcloud/api/padApi/virtualRealSwitch | Upgrade Real Device Image | Batch real device image upgrade |
| /vcpcloud/api/padApi/templateList | Paginated Get Real Device Templates | Paginated retrieval of real device templates |
| /vcpcloud/api/padApi/modelInfo | Batch Get Instance Device Model Information (Pending Launch) | Batch get device model information for instances (Pending Launch) |
| /vcpcloud/api/padApi/openOnlineAdb | Enable/Disable ADB | Enable or disable ADB for instance |
| /vcpcloud/api/padApi/adb | Get ADB Connection Information | Get ADB connection information |
| /vcpcloud/api/padApi/batch/adb | Batch Get ADB Connection Information (Pending Launch) | Batch get or disable ADB connection information (Pending Launch) |
| /vcpcloud/api/padApi/simulateTouch | Simulate Touch | Simulate touch events in instance via XY coordinates |
| /vcpcloud/api/padApi/simulateClick | Simulate Click (Humanized) | Generate humanized click trajectory at given coordinates |
| /vcpcloud/api/padApi/simulateSwipe | Simulate Swipe (Humanized) | Generate humanized swipe trajectory in a given direction or custom start/end |
| /vcpcloud/api/padApi/simulateLongPress | Simulate Long Press (Humanized) | Generate humanized long-press trajectory; hold duration configurable |
| /vcpcloud/api/padApi/padTaskDetail | Instance Operation Task Details | Query detailed execution results for specified instance operation task |
| /vcpcloud/api/padApi/executeScriptInfo | Get Instance Script Execution Result (Pending Launch) | Get script execution result via task ID (Pending Launch) |
| /vcpcloud/api/padApi/screenshotInfo | Get Instance Screenshot Result (Pending Launch) | Get instance screenshot result via task ID (Pending Launch) |
| /vcpcloud/api/padApi/padExecuteTaskInfo | Instance Restart/Reset Execution Result (Pending Launch) | Get restart/reset execution result via task ID (Pending Launch) |
| /vcpcloud/api/padApi/infos | Instance Group List | Get all instance group list information |
| /vcpcloud/api/padApi/addPhoneRecord | Import Call Logs | Import call log data into cloud phone |
| /vcpcloud/api/padApi/inputText | Cloud Phone Text Input | Input specified text after focusing input box |
| /vcpcloud/api/padApi/simulateSendSms | Simulate Send SMS | Simulate sending SMS to instance |
| /vcpcloud/api/padApi/resetGAID | Reset GAID | Reset advertising ID in cloud phone |
| /vcpcloud/api/padApi/injectAudioToMic | Inject Audio to Instance Microphone | Inject audio file to instance microphone |
| /vcpcloud/api/padApi/cleanAppHome | Clear Processes and Return to Desktop (Pending Launch) | Clear all processes except system and return to desktop (Pending Launch) |
| /vcpcloud/api/padApi/unmannedLive | Unmanned Live Streaming | Instance video injection |
| /vcpcloud/api/padApi/injectPicture | Image Injection (Pending Launch) | Instance image injection (Pending Launch) |
| /vcpcloud/api/padApi/addUserRom | Upload User Image | Upload user image |
| /vcpcloud/api/padApi/replacement | Device Replacement | Device replacement |
| /vcpcloud/api/padApi/confirmTransfer | Transfer Cloud Phone | Transfer Cloud Phone |
| /vcpcloud/api/padApi/setHideAccessibilityAppList | Hide Accessibility Service | Transfer Cloud Phone |
Resource Management
| API Endpoint | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/infos | Instance List Information | Query information about all ordered instances. |
Application Management
| API Endpoint | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/installApp | Application Installation | Install one or more apps on one or more instances at once; async operation with allowlist/blocklist support. |
| /vcpcloud/api/padApi/startApp | Start App | Start App |
| /vcpcloud/api/padApi/stopApp | Stop App | Stop App |
| /vcpcloud/api/padApi/restartApp | Restart App | Restart App |
| /vcpcloud/api/padApi/listInstalledApp | Instance installed application list query | Query the list of installed applications for an instance |
| /vcpcloud/api/padApi/updateSIM | Modify sim card information according to country code | Modify sim card information according to country code |
| /vcpcloud/api/padApi/uploadFileV3 | File upload interface directly through link | File upload interface directly through link |
| /vcpcloud/api/padApi/setKeepAliveApp | Set keepalive application interface | Set keepalive application interface |
| /vcpcloud/api/padApi/addUserRom | Upload user image | Upload user image |
Task Management
| API Endpoint | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/padTaskDetail | Instance Operation Task Details | Query detailed execution results of a specified instance operation task. |
| /vcpcloud/api/padApi/fileTaskDetail | File Task Details | Query detailed execution results of a specified file task. |
Cloud Phone Management
| API Endpoint | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/createMoneyOrder | Create Cloud Phone | Create a new cloud phone instance. |
| /vcpcloud/api/padApi/userPadList | Cloud Phone List | List of cloud phones. |
| /vcpcloud/api/padApi/padInfo | Cloud Phone Information Query | Query the information of a cloud phone instance. |
| /vcpcloud/api/padApi/getCloudGoodList | SKU Package List | List of SKU packages. |
| /vcpcloud/api/padApi/replaceRealAdiTemplate | Modify Real Machine ADI Template | Modify the ADI template of a physical machine. |
| /vcpcloud/api/padApi/createMoneyProOrder | Equipment Pre-sale Purchase | Equipment Pre-sale Purchase |
| /vcpcloud/api/padApi/queryProOrderList | Query pre-sale order result details | Query pre-sale order result details |
| /vcpcloud/api/padApi/imageVersionList | Android image version collection | Android image version collection |
| /vcpcloud/api/padApi/simulateTouch | Cloud machine simulated touch | Cloud machine simulated touch |
| /vcpcloud/api/padApi/queryPadIdChangeRecords | Query padCode change records | Query padCode change records |
| /vcpcloud/api/padApi/listPadBackupIds | List pad backup IDs | List all available cloud-disk backup IDs owned by the current user |
| /vcpcloud/api/padApi/addBackup | Create pad backups | Batch create cloud-disk backups for given cloud phones (async) |
| /vcpcloud/api/padApi/queryBackupBatch | Query backup batch progress | Query per-pad backup progress by batchId |
| /vcpcloud/api/padApi/clonePadBackup | Clone pad backup to multiple pads | Batch clone a cloud-disk backup onto multiple cloud phones (async) |
| /vcpcloud/api/padApi/openAutoRenew | Enable Cloud Phone Auto-Renewal | Enable auto-renewal for a single cloud phone |
| /vcpcloud/api/padApi/closeAutoRenew | Disable Cloud Phone Auto-Renewal | Disable auto-renewal for a single cloud phone |
| /vcpcloud/api/padApi/updatePadName | Rename Cloud Phone | Rename a single cloud phone |
| /vcpcloud/api/padApi/authorizePad | Authorize Device to Another Account | Temporarily grant a single cloud phone to another account |
| /vcpcloud/api/padApi/activateByCode | Activate Cloud Phone with Activation Code | Batch-activate cloud phones using activation codes (async) |
| /vcpcloud/api/padApi/queryActivationBatch | Query Batch Activation Progress | Query batch activation progress by batchId |
###Email Verification Service
| Interface | Interface Name | Interface Description |
|---|---|---|
| /vcpcloud/api/padApi/getEmailServiceList | Retrieve Email Service List | Retrieve Email Service List |
| /vcpcloud/api/padApi/getEmailTypeList | Retrieve email types and remaining inventory | Retrieve email types and remaining inventory |
| /vcpcloud/api/padApi/createEmailOrder | Create email purchase order | Create email purchase order |
| /vcpcloud/api/padApi/getEmailOrder | Query Purchased Email List | Query Purchased Email List |
Flow Automation (RPA)
System-to-system automation endpoints, split into Automation (flow template dispatch & scheduling) and Account Matrix (account-centric operations).
📦 Java integration demo: Download vmos-openapi-java-demo.zip — a minimal runnable example using V2 signing (JDK 11+, Gson only) that covers every endpoint in this group, with one documented method per API. After unzipping, fill in
ACCESS_KEY/SECRET_KEYat the top ofDemo.javaand runmvn -q exec:java(read-only endpoints run by default). YourACCESS_KEY/SECRET_KEYcan be found in the console's left menu under Developer → API.
Automation
Scripts are authored visually in the VMOS Cloud console's flow editor; this group exposes script queries, batch task dispatch/inspection, and scheduling (dispatch a template to instances on a Cron schedule).
| API Endpoint | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/automation/scripts/list | Flow Script List | Paginate flow scripts visible to the current user (official scripts + your private scripts). |
| /vcpcloud/api/padApi/automation/scripts/get | Flow Script Details | Fetch a single script by scriptId. |
| /vcpcloud/api/padApi/automation/tasks/batch-dispatch | Batch Dispatch Flow Task | Dispatch a flow task to up to 200 instances (shared params or per-device params). |
| /vcpcloud/api/padApi/automation/tasks/list | Flow Task List | Paginate the current account's flow tasks; supports time-range filtering. |
| /vcpcloud/api/padApi/automation/tasks/get | Flow Task Details | Fetch a single task by taskId. |
| /vcpcloud/api/padApi/automation/tasks/logs | Flow Task Logs | Step-level execution logs of a task. |
| /vcpcloud/api/padApi/automation/tasks/cancel | Cancel Flow Task | Cancel a pending or running flow task. |
| /vcpcloud/api/padApi/automation/scheduled-tasks/list | Scheduled Task List | Paginate the current user's scheduled tasks. |
| /vcpcloud/api/padApi/automation/scheduled-tasks/create | Create Scheduled Task | Create a scheduled task; can target multiple instances (one record per instance); recurring or one-shot. |
| /vcpcloud/api/padApi/automation/scheduled-tasks/update | Update Scheduled Task | Update a single scheduled task (single device). |
| /vcpcloud/api/padApi/automation/scheduled-tasks/toggle | Toggle Scheduled Task | Enable / disable a scheduled task. |
| /vcpcloud/api/padApi/automation/scheduled-tasks/delete | Delete Scheduled Task | Delete a scheduled task. |
Account Matrix
Account-centric operational endpoints: account queries, lifecycle management (create / bind / unbind / delete / group), and batch-triggering templates on accounts (immediate or scheduled). The target instance is derived from each account's currently bound instance. Credentials are write-only: written on create (AES-GCM encrypted at rest) and injected per account at execution via fromCredential, but plaintext is never readable via OpenAPI (credential read is console-only).
| API Endpoint | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/automation/accounts/list | Account List | Paginate the current user's accounts; supports platform / group / status / keyword / bind-status filtering and sorting. |
| /vcpcloud/api/padApi/automation/accounts/get | Account Details | Fetch a single account by accountId. |
| /vcpcloud/api/padApi/automation/accounts/snapshots | Account Data Snapshots | Query account-level historical snapshots by accountId (followers / following / works / likes time series). |
| /vcpcloud/api/padApi/automation/accounts/works | Account Works List | Paginate the account's collected works (deduplicated). |
| /vcpcloud/api/padApi/automation/accounts/work-snapshots | Account Work Data Snapshots | Query a single work's metric time series by accountId + workId. |
| /vcpcloud/api/padApi/automation/accounts/groups/list | Account Group List | List the current user's account groups. |
| /vcpcloud/api/padApi/automation/accounts/operations/batch | Batch Trigger Account Operation | Batch-trigger a template to run immediately on multiple accounts; target instances derived from bound instances, credentials injected server-side. |
| /vcpcloud/api/padApi/automation/accounts/scheduled-tasks/batch | Account Batch Scheduled Tasks | Batch-create scheduled tasks for multiple accounts (one record each); credentials injected per account at fire time. |
| /vcpcloud/api/padApi/automation/accounts/create | Create Account | Create an account (with credentials, encrypted at rest); handle is unique per platform. |
| /vcpcloud/api/padApi/automation/accounts/bind | Bind Instance | Bind an account to an instance (padCode); one active account per instance+platform, force to rebind. |
| /vcpcloud/api/padApi/automation/accounts/unbind | Unbind Instance | Unbind the account from its instance. |
| /vcpcloud/api/padApi/automation/accounts/delete | Delete Account | Soft-delete an account (credentials cleared, recoverable by admin). |
| /vcpcloud/api/padApi/automation/accounts/group | Move Account Group | Move account to a group (pass null groupId to ungroup). |
SDK Token
| API Endpoint | API Name | API Description |
|---|---|---|
| /vcpcloud/api/padApi/stsTokenByPadCode | Get SDK Temporary Token | Issue a temporary SDK token for user authentication of cloud phone services, based on pad code. |
| /vcpcloud/api/padApi/clearStsToken | Clear SDK Authorization Token | Clear the SDK authorization token. |
OpenAPI Interface List
Instance Management
Modify Instance WIFI Properties
Modify the WIFI list properties of the specified instance (this interface and one-key new device WIFI setup are mutually exclusive, otherwise overwriting issues may occur)
API Endpoint
/vcpcloud/api/padApi/setWifiList
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | Instance codes | |
| wifiJsonList | String[] | Yes | WIFI properties list | |
| ├─ SSID | 110101 | String | Yes | WIFI name (Chinese not supported) |
| ├─ BSSID | 02:31:00:00:00:01 | String | Yes | Access point MAC address |
| ├─ MAC | 02:00:10:00:00:00 | String | Yes | WIFI adapter MAC address |
| ├─ IP | 192.168.120.15 | String | Yes | WIFI network IP |
| ├─ gateway | 192.168.120.1 | String | Yes | WIFI gateway |
| ├─ DNS1 | 1.1.1.1 | String | Yes | DNS1 |
| ├─ DNS2 | 8.8.8.8 | String | Yes | DNS2 |
| ├─ hessid | 0 | Integer | No | Network identifier |
| ├─ anqpDomainId | 0 | Integer | No | ANQP (Access Network Query Protocol) domain ID |
| ├─ capabilities | "" | String | No | WPA/WPA2 etc. information |
| ├─ level | 0 | Integer | No | Signal strength (RSSI) |
| ├─ linkSpeed | 500 | Integer | No | Current Wi-Fi connection speed |
| ├─ txLinkSpeed | 600 | Integer | No | Upload link speed |
| ├─ rxLinkSpeed | 700 | Integer | No | Download link speed |
| ├─ frequency | 2134 | Integer | No | Wi-Fi channel frequency |
| ├─ distance | -1 | Integer | No | Estimated AP distance |
| ├─ distanceSd | -1 | Integer | No | Estimated distance standard deviation |
| ├─ channelWidth | 0 | Integer | No | Channel bandwidth |
| ├─ centerFreq0 | 0 | Integer | No | Center frequency 0 |
| ├─ centerFreq1 | -1 | Integer | No | Center frequency 1 |
| ├─ is80211McRTTResponder | false | Boolean | No | Whether supports 802.11mc (Wi-Fi RTT ranging technology) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC2025030770R | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status: 0-offline, 1-online |
Request Example
{
"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
}
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1741676855566,
"data": [
{
"taskId": 14904,
"padCode": "AC2025030770R92X",
"vmStatus": 0
}
]
}
Query Cloud Phone Base Info List
Support paginated query of cloud phone base information including running status, online status, compute occupation, etc.
API Endpoint
/vcpcloud/api/padApi/padDetail
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| lastId | 1234 | Long | No | Last query returned lastId; null for first query |
| rows | 10 | Integer | No | Records per page, max 1000 per page |
| padCodes | String[] | No | ||
| ├─ | ACP250331GLXXXXX | String | No | Instance code |
| padIps | String[] | No | ||
| ├─ | 192.168.1.1 | String | No | Instance IP |
| online | 1 | Integer | No | Instance online status: 0-offline, 1-online |
| padStatus | 14 | Integer | No | Instance running status: 14-abnormal, others-normal |
| computeOccupied | true | Boolean | No | Filter compute occupation: true-occupied, false-not occupied |
| netStorageResFlag | 1 | Integer | No | Net storage flag: 1-net storage instance, 0-local instance |
| brand | samsung | String | No | Instance brand (exact match) |
| brandModel | SM-G996U1(8G) | String | No | Brand model (exact match) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756360093771 | Long | Timestamp |
| traceId | ewc83bwudvr4 | String | Trace ID |
| data | Object | Response data | |
| ├─ rows | 10 | Integer | Records per page |
| ├─ size | 10 | Integer | Current page count |
| ├─ lastId | 1234 | Long | Last record ID for next pagination query |
| ├─ hasNext | true | Boolean | Whether has next page |
| ├─ pageData | object[] | List | |
| ├─ ├─ padCode | ACP250331GLXXXXX | String | Instance code |
| ├─ ├─ padIp | null | String | Instance IP |
| ├─ ├─ padStatus | 15 | Integer | Instance running status (10-running, 11-restarting, 12-resetting, 13-upgrading, 14-abnormal, 15-not ready, 16-backing up, 17-restoring data, 18-shutdown, 19-shutting down, 20-booting, 21-shutdown failed, 22-boot failed, 23-deleting, 24-delete failed, 25-deleted, 26-cloning) |
| ├─ ├─ online | 0 | Integer | Instance online status (0-offline, 1-online) |
| ├─ ├─ computeOccupied | true | Boolean | Compute occupation: true-occupied, false-not occupied |
| ├─ ├─ netStorageResFlag | 1 | Integer | Net storage flag: 1-net storage instance, 0-local instance |
| ├─ ├─ deviceStatus | 1 | Integer | Board status: 0-offline, 1-online |
Request Example
{
"lastId": null,
"rows": 10,
"padCodes": ["ACP250331GLXXXXX"],
"padIps":["192.168.1.1"],
"online":1,
"padStatus":10,
"computeOccupied":true,
"netStorageResFlag":1
}
Response Example
{
"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"
}
Instance Restart
Perform restart operation on the specified instance to resolve issues like system unresponsiveness or freezing.
API Endpoint
/vcpcloud/api/padApi/restart
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists, do not resubmit; 1: task added) |
Request Example
{
"padCodes": [
"AC22030022693"
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313806284,
"data": [
{
"taskId": 4844869,
"padCode": "ATP250818261XVMO",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab9x88fkzk"
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 10001 | Restart failed | Contact administrator |
| 110004 | Restart command execution failed | Restart later |
| 110028 | Instance does not exist | Check if instance exists |
Instance Reset
Note: Instance reset clears all system data. Use with caution. After each reset, the public IP will be restored to default. Perform reset operation on the instance, clearing all cloud instance data.
API Endpoint
/vcpcloud/api/padApi/reset
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists, do not resubmit; 1: task added) |
Request Example
{
"padCodes": [
"AC21020010001"
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313781715,
"data": [
{
"taskId": 760459892,
"padCode": "ATP250817PIJLWRP",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab8lv65yio"
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 10002 | Reset failed | Contact administrator |
| 110005 | Reset command execution failed | Reset later |
Query Instance Properties
Query the property information of the specified instance, including system properties and settings.
API Endpoint
/vcpcloud/api/padApi/padProperties
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | AC21020010001 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ modemPropertiesList | Object[] | Modem properties list | |
| ├─ ├─ propertiesName | IMEI | String | Property name |
| ├─ ├─ propertiesValue | 412327621057784 | String | Property value |
| ├─ systemPropertiesList | Object[] | System properties list | |
| ├─ ├─ propertiesName | ro.build.id | String | Property name |
| ├─ ├─ propertiesValue | QQ3A.200805.001 | String | Property value |
| ├─ settingPropertiesList | Object[] | Setting properties list | |
| ├─ ├─ propertiesName | ro.build.tags | String | Property name |
| ├─ ├─ propertiesValue | release-keys | String | Property value |
| ├─ oaidPropertiesList | Object[] | OAID properties list | |
| ├─ ├─ propertiesName | oaid | String | Property name |
| ├─ ├─ propertiesValue | 001 | String | Property value |
Request Example
{
"padCode": "AC21020010001"
}
Response Example
{
"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"
}
]
}
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110028 | Instance does not exist | Check if instance is correct |
Batch Query Instance Properties
Batch query the property information of specified instances, including system properties and settings.
API Endpoint
/vcpcloud/api/padApi/batchPadProperties
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | Instance count not exceeding 200 | |
| ├─ | AC21020010001 | String | Yes | Instance code |
| ├─ | AC21020010002 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ modemPropertiesList | Object[] | Modem properties list | |
| ├─ ├─ propertiesName | IMEI | String | Property name |
| ├─ ├─ propertiesValue | 412327621057784 | String | Property value |
| ├─ systemPropertiesList | Object[] | System properties list | |
| ├─ ├─ propertiesName | ro.build.id | String | Property name |
| ├─ ├─ propertiesValue | QQ3A.200805.001 | String | Property value |
| ├─ settingPropertiesList | Object[] | Setting properties list | |
| ├─ ├─ propertiesName | ro.build.tags | String | Property name |
| ├─ ├─ propertiesValue | release-keys | String | Property value |
| ├─ oaidPropertiesList | Object[] | OAID properties list | |
| ├─ ├─ propertiesName | oaid | String | Property name |
| ├─ ├─ propertiesValue | 001 | String | Property value |
Request Example
{
"padCodes": [
"AC21020010001",
"AC21020010002"
]
}
Response Example
{
"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"
}
]
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110028 | Instance does not exist | Check if instance is correct |
Modify Instance Properties
Dynamically modify instance properties, including system and settings.
Instance must be powered on; this interface takes effect immediately.
Refer to Instance Properties List
API Endpoint
/vcpcloud/api/padApi/updatePadProperties
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Instance code |
| modemPersistPropertiesList | Object[] | No | Modem persistent properties list | |
| ├─ propertiesName | IMEI | String | No | Property name |
| ├─ propertiesValue | 412327621057784 | String | No | Property value |
| modemPropertiesList | Object[] | No | Modem non-persistent properties list | |
| ├─ propertiesName | IMEI | String | No | Property name |
| ├─ propertiesValue | 412327621057784 | String | No | Property value |
| systemPersistPropertiesList | Object[] | No | System persistent properties list | |
| ├─ propertiesName | ro.build.id | String | No | Property name |
| ├─ propertiesValue | QQ3A.200805.001 | String | No | Property value |
| systemPropertiesList | Object[] | No | System non-persistent properties list | |
| ├─ propertiesName | ro.build.id | String | No | Property name |
| ├─ propertiesValue | QQ3A.200805.001 | String | No | Property value |
| settingPropertiesList | Object[] | No | Setting properties list | |
| ├─ propertiesName | ro.build.tags | String | No | Property name |
| ├─ propertiesValue | release-keys | String | No | Property value |
| oaidPropertiesList | Object[] | No | OAID properties list | |
| ├─ propertiesName | oaid | String | No | Property name |
| ├─ propertiesValue | 001 | String | No | Property value |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
Request Example
{
"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"
}
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570916196,
"data": [
{
"taskId": 36,
"padCode": "AC22030010001",
"vmStatus": 1
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110011 | Modify property command failed | Retry later |
| 110028 | Instance does not exist | Check instance |
| 110027 | Duplicate instances in list | Check duplicates |
Modify Instance Android Modification Properties
Static setting of Android modification properties, requires instance restart to take effect, generally used for modifying device information.
Difference from [Modify Instance Properties]: this takes effect on each boot initialization.
Properties are persistently stored; no need to call again after restart or reset.
Refer to Android Modification Properties List
Requires understanding of Android system. Some properties may affect normal boot. If abnormal after modification, reset instance to recover.
API Endpoint
/vcpcloud/api/padApi/updatePadAndroidProp
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | AC32010210001 | String | No | Instance ID |
| restart | false | Boolean | No | Auto restart after setting (default false) |
| props | {} | Object | Yes | System properties (key-value) |
| ├─ ro.product.vendor.name | OP52D1L1 | String | Yes | Property setting |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─ taskId | 24 | Long | Task ID |
| ├─ padCode | AC32010210001 | String | Instance ID |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists, do not resubmit; 1: task added) |
Request Example
{
"padCode": "AC32010210001",
"props": {
"ro.product.vendor.name": "OP52D1L1"
},
"restart": false
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313781338,
"data": {
"taskId": 760459884,
"padCode": "AC32010160134",
"vmStatus": 0,
"taskStatus": 1
},
"traceId": "ewab8l4lqu4g"
}
Modify SIM Card Information Based on Country Code
Static setting of Android modification properties, requires instance restart to take effect, generally used for modifying device information.
Same function as [Modify Instance Android Modification Properties], difference: randomly generates SIM info and always restarts.
Properties persistently stored.
API Endpoint
/vcpcloud/api/padApi/updateSIM
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | AC32010210001 | String | Yes | Instance ID |
| countryCode | US | String | No | Country code |
| props | {} | Object | No | System properties (key-value) |
| ├─ ro.product.vendor.name | OP52D1L1 | String | No | Property setting |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756360113813 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object | Response data | |
| ├─ taskId | 10002486 | Long | Task ID |
| ├─ padCode | ACN342712020172800 | String | Instance code |
| ├─ vmStatus | 0 | Integer | Instance online status (0: offline; 1: online) |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists, do not resubmit; 1: task added) |
Request Example
{
"padCode": "AC32010250001",
"props": {
"persist.sys.cloud.phonenum": "1234578998"
},
"countryCode": "US"
}
Response Example 1
{
"code": 200,
"msg": "success",
"ts": 1756360113813,
"data": {
"taskId": 10002486,
"padCode": "ACN342712020172800",
"vmStatus": 0,
"taskStatus": 1
},
"traceId": "ewc84g8si0oy"
}
Response Example 2
{
"code": 500,
"msg": "Currently not supporting country code: XX",
"ts": 1753521350163,
"data": null
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110065 | Invalid request parameters, refer to documentation | Check parameters |
| 110028 | Instance does not exist | Check instance code |
Stop Streaming
Stop streaming for specified instance, disconnect connection.
API Endpoint
/vcpcloud/api/padApi/dissolveRoom
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC11010000031 | String | Yes | Instance code |
| ├─ | AC22020020700 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object[] | ||
| ├─ successList | Object[] | Success list | |
| ├─ ├─ padCode | AC11010000031 | String | Instance code |
| ├─ failList | Object[] | Failure list | |
| ├─ ├─ padCode | AC22020020700 | String | Instance code |
| ├─ ├─ errorCode | 120005 | Integer | Error code |
| ├─ ├─ errorMsg | Instance does not exist | String | Failure reason |
Request Example
{
"padCodes": ["AC11010000031","AC22020020700"]
}
Response Example
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"successList": [
{
"padCode": "AC11010000031"
}
],
"failList": [
{
"padCode": "AC22020020700",
"errorCode": 120005,
"errorMsg": "实例不存在"
}
]
},
"traceId": "ewab9njt3gn4"
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 120005 | Instance does not exist | Check instance code |
| 120004 | Stop streaming error, service abnormal | Retry later |
Smart IP Proxy Detection
Detect if proxy IP is available and if location information is correct.
API Endpoint
/vcpcloud/api/padApi/checkIP
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| host | 127.0.0.1 | String | Yes | Proxy info (IP or host) |
| port | 8080 | Integer | Yes | Proxy port (numeric) |
| account | xxxx | String | Yes | Proxy username |
| password | xxxx | String | Yes | Proxy password |
| type | Socks5 | String | Yes | Proxy protocol: Socks5, http, https |
| country | US | String | No | Country - required when forcing specification |
| ip | 156.228.84.62 | String | No | IP - required when forcing |
| loc | 39.0438,-77.4874 | String | No | Latitude, longitude - required when forcing |
| city | Ashburn | String | No | City - required when forcing |
| region | Virginia | String | No | Region - required when forcing |
| timezone | America/New_York | String | No | Timezone - required when forcing |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─ proxyLocation | US-Los Angeles | String | Location |
| ├─ publicIp | 62.112.132.92 | String | Exit IP |
| ├─ proxyWorking | true | Boolean | Detection success - true, failure - false |
Request Example
{
"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"
}
Response Example
{
"msg": "success",
"code": 200,
"data": {
"proxyLocation": "US-Los Angeles",
"publicIp": "62.112.132.92",
"proxyWorking": true
},
"ts": 1737601218580
}
Set Smart IP
Set smart IP for cloud device; exit IP, SIM info, GPS coordinates, timezone etc. automatically change to proxy's country (device restarts after setting, takes effect within 1 minute after restart; status changes to 119-initializing; returns to 100-normal on success/failure/timeout; timeout 5 minutes).
(Smart IP must be detected first via detection interface) Direct setting may cause country mismatch.
API Endpoint
/vcpcloud/api/padApi/smartIp
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22030010182 | String | Yes | Instance code |
| host | 127.0.0.1 | String | Yes | Proxy info (IP or host) |
| port | 8080 | Integer | Yes | Proxy port |
| account | xxxx | String | Yes | Proxy username |
| password | xxxx | String | Yes | Proxy password |
| type | Socks5 | String | Yes | Proxy protocol: socks5, http, https |
| mode | vpn | String | Yes | Proxy mode: vpn / proxy |
| bypassPackageList | Array | No | Bypass packages | |
| bypassIpList | Array | No | Bypass IPs | |
| bypassDomainList | Array | No | Bypass domains | |
| Response Parameters |
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| data | TASK-278784482960609280 | String | Task number |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
Request Example
{
"padCodes": [
"AC32010160334"
],
"host": "62.112.132.92",
"port": 45001,
"account": "xxxxxx",
"password": "xxxxxxx",
"type": "socks5",
"mode": "vpn"
}
Response Example
{
"msg": "success",
"code": 200,
"data": "TASK-278784482960609280",
"ts": 1737604726812
}
Cancel Smart IP
Cancel smart IP, restore exit IP, SIM info, GPS, timezone (device restarts, takes effect within 1 minute; status 119-initializing; returns to 100-normal on success/failure/timeout; timeout 5 minutes).
API Endpoint
/vcpcloud/api/padApi/notSmartIp
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22030010182 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| data | TASK-278784482960609280 | String | Task number |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
Request Example
{
"padCodes": [
"AC32010160334"
]
}
Response Example
{
"msg": "success",
"code": 200,
"data": "TASK-278784482960609280",
"ts": 1737604726812
}
Device Task Execution Result Query
Query task execution result using task number (for smart IP).
API Endpoint
/vcpcloud/api/padApi/getTaskStatus
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| taskId | TASK-278784482960609280 | String | Yes | Task ID |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| data | Object[] | Task results | |
| ├─ padCode | AC32010150162 | String | Instance code |
| ├─ taskStatus | Successfully | String | Task status: Executing-in progress, Successfully-success, Failed-failure, Timedout-timeout |
| ├─ taskType | 10010 | Integer | Task type: 10010-set smart IP, 10011-cancel smart IP |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
Request Example
{
"taskId": "TASK-278784482960609280"
}
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "AC32010150162",
"taskStatus": "Successfully",
"taskType": 10010
}
],
"ts": 1738999472135
}
Get All Installed Apps in Specified Cloud Instance List
API Endpoint
/vcpcloud/api/padApi/getListInstalledApp
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodeList | String[] | Yes | ||
| ├─ | AC22020020793 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─ appName | VMOSCloud | String | App name |
| ├─ packageName | com.geniuscloud.overseas | String | Package name |
Request Example
{
"padCodeList": ["AC32010601132"]
}
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"appName": "VMOSCloud",
"packageName": "com.geniuscloud.overseas"
},
{
"appName": "快手极速版",
"packageName": "com.kuaishou.nebula"
}
],
"ts": 1746694111364
}
File Upload via Link Directly
Push file from file management center to cloud phone instance (async task). If file found by md5 or file ID, directly use OSS path for download. If not in OSS, send URL for download and upload content to OSS. If auto install app, check package name; if empty, throw exception. (Auto install grants all permissions by default; use isAuthorization to disable).
API Endpoint
/vcpcloud/api/padApi/uploadFileV3
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ padCode | AC32010250011 | String | No | Instance code |
| autoInstall | 1 | Integer | No | Auto install: 1-yes, 0-no (default no). Only for APK |
| fileUniqueId | 1e5d3bf00576ee8f3d094908c0456722 | String | No | File unique ID |
| customizeFilePath | /Documents/ | String | No | Custom path (start with /, e.g. "/DCIM/", "/Documents/" etc.) |
| fileName | threads | String | No | File name |
| packageName | com.zhiliaoapp.musically | String | No | Package name |
| url | https://file.vmoscloud.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.apk | String | No | File URL |
| md5 | 1e5d3bf00576ee8f3d094908c0456722 | String | No | File MD5 |
| isAuthorization | false | Boolean | No | Grant permissions (default all) |
| iconPath | https://file.vmoscloud.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.png | String | No | Icon for install |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC22010020062 | String | Instance code |
| ├─ taskId | 1 | Integer | Task ID |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
Request Example
{
"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
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1737431505379,
"data": [
{
"taskId": 13469,
"padCode": "AC32010250022",
"vmStatus": 0
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110065 | Invalid request parameters | Check parameters, refer to doc |
| 120005 | Instance does not exist | Check instance code |
Modify Instance Timezone
API Endpoint
/vcpcloud/api/padApi/updateTimeZone
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| timeZone | Asia/Shanghai | String | Yes | UTC standard timezone |
| padCodes | Array | Yes | Instance list |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object | ||
| ├─ taskId | 24 | Long | Task ID |
| ├─ padCode | AC22030010001 | String | Instance code |
| ├─ vmStatus | Integer | Instance online status (0: offline; 1: online) | |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"padCodes": [
"AC32010140003"
],
"timeZone": "Asia/Shanghai"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313802157,
"data": [
{
"taskId": 760460229,
"padCode": "ACP250417QAGGQ3S",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab9p712ww0"
}
Modify Instance Language
API Endpoint
/vcpcloud/api/padApi/updateLanguage
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| language | zh | String | Yes | Language |
| country | CN | String | No | Country |
| padCodes | Array | Yes | Instance list |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object | ||
| ├─ taskId | 24 | Long | Task ID |
| ├─ padCode | AC22030010001 | String | Instance code |
| ├─ vmStatus | Integer | Instance online status (0: offline; 1: online) | |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"padCodes": [
"AC32010140026"
],
"language": "zh",
"country": ""
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"traceId": "ewab9p712ww0",
"data": [
{
"taskId": 24,
"padCode": "AC32010140026",
"vmStatus": 1,
"taskStatus": 1
}
]
}
Enable Cloud Phone Auto-Renewal
Enable auto-renewal for a single cloud phone; it will be renewed automatically with the current package before expiration.
API Endpoint
/vcpcloud/api/padApi/openAutoRenew
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | ACP250417QAGGQ3S | String | Yes | Instance code |
Notes
Single-instance operation; only one padCode per request. The cloud phone must belong to the current account and must not be expired. Repeated submissions within a short period are rate-limited, so avoid calling frequently.
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756313802157 | Long | Timestamp |
| traceId | ewab9p712ww0 | String | Trace ID |
Request Example
{
"padCode": "ACP250417QAGGQ3S"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313802157,
"traceId": "ewab9p712ww0"
}
Disable Cloud Phone Auto-Renewal
Disable auto-renewal for a single cloud phone; once disabled, it will no longer be renewed automatically upon expiration.
API Endpoint
/vcpcloud/api/padApi/closeAutoRenew
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | ACP250417QAGGQ3S | String | Yes | Instance code |
Notes
Single-instance operation; only one padCode per request. The cloud phone must belong to the current account. Repeated submissions within a short period are rate-limited, so avoid calling frequently.
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756313802157 | Long | Timestamp |
| traceId | ewab9p712ww0 | String | Trace ID |
Request Example
{
"padCode": "ACP250417QAGGQ3S"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313802157,
"traceId": "ewab9p712ww0"
}
Rename Cloud Phone
Rename a single cloud phone.
API Endpoint
/vcpcloud/api/padApi/updatePadName
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | ACP250417QAGGQ3S | String | Yes | Instance code |
| padName | My Cloud Phone 01 | String | Yes | New cloud phone name |
Notes
Single-instance operation; only one padCode per request. The cloud phone must belong to the current account, and padName must not be empty.
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756313802157 | Long | Timestamp |
| traceId | ewab9p712ww0 | String | Trace ID |
Request Example
{
"padCode": "ACP250417QAGGQ3S",
"padName": "My Cloud Phone 01"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313802157,
"traceId": "ewab9p712ww0"
}
Authorize Device to Another Account
Temporarily grant a single cloud phone to another account. During the authorization the granted account can access the cloud phone; device ownership does not change.
API Endpoint
/vcpcloud/api/padApi/authorizePad
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | ACP250417QAGGQ3S | String | Yes | Instance code |
| authorizedAccount | 13800000000 | String | Yes | Granted account (registered phone number or email) |
| minutes | 60 | Integer | Conditional | Authorization duration in minutes; required when equiAuthorize=false |
| equiAuthorize | false | Boolean | No | Authorize for the device's remaining validity; default false |
| permission | restartPad,adb | String | No | Allowed-operation list, comma-separated; empty means all |
permission Values
| Value | Meaning |
|---|---|
| replacePad | One-click new phone |
| replacement | Replacement |
| restartPad | Restart |
| padReset | Reset |
| adb | ADB |
| uploadFile | Upload file |
| live | Live streaming |
Notes
Single-instance operation; only one padCode per request. The cloud phone must belong to the current account. The granted account must be a registered account and cannot be yourself. When equiAuthorize=true, the authorization follows the device's remaining validity and minutes is ignored; when false, minutes is required, must be greater than 0, and cannot exceed the device's remaining validity. Pay-per-minute (timed) devices cannot be authorized; devices in standby state must be restored first.
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756313802157 | Long | Timestamp |
| traceId | ewab9p712ww0 | String | Trace ID |
Request Example
{
"padCode": "ACP250417QAGGQ3S",
"authorizedAccount": "13800000000",
"minutes": 60,
"equiAuthorize": false,
"permission": "restartPad,adb"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313802157,
"traceId": "ewab9p712ww0"
}
Set Instance Latitude and Longitude
API Endpoint
/vcpcloud/api/padApi/gpsInjectInfo
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| longitude | 116.397455 | Float | Yes | Longitude |
| latitude | 39.909187 | Float | Yes | Latitude |
| altitude | 8 | Float | No | Altitude (requires latest image) |
| speed | 8 | Float | No | Speed m/s (images after 20251024) |
| bearing | 0 | Float | No | Bearing ° (images after 20251024) |
| horizontalAccuracyMeters | 0.1 | Float | No | Horizontal accuracy (images after 20251024) |
| padCodes | Array | Yes | Instance list |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| traceId | ewc84g8si0oy | String | Trace ID |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Boolean |
Request Example
{
"padCodes": [
"AC32010030001"
],
"longitude": 116.397455,
"latitude": 39.909187,
"altitude": 8
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"traceId": "ewab9p712ww0",
"data": true
}
Query Instance Proxy Information
(Pending Launch)
API Endpoint
/vcpcloud/open/network/proxy/info
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | Array | Yes | Instance list |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object | ||
| ├─ taskId | 24 | Long | Task ID |
| ├─ padCode | AC22030010001 | String | Instance code |
| ├─ vmStatus | Integer | Instance online status (0: offline; 1: online) | |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"padCodes": [
"AC32010140012"
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756348835040,
"data": [
{
"taskId": 14294,
"padCode": "ACP250820SBM4NEU",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewbrcry0frb4"
}
One-Key New Device ⭐
Note: One-key new device clears all system data. Use with caution! One-key new device clears all current instance data and resets Android properties.
Virtual machine: directly set Android properties, clear all data
Cloud real device: clear all data (equivalent to reset), add SIM info; if template ID provided, replace ADI template. If no template and replacementRealAdiFlag true, randomly select template.
Note: If no country info or unsupported, default Singapore SIM.
Unsupported country returns 500 error: Currently not supporting country code XX
Path Format Conversion Rules:
/data/system/... -> /system/...
/data/misc/... -> /misc/...
/data/data/... -> /data/... (remove the second "data", for example /data/data/com.xx -> /data/com.xx)
Complete missing prefix for bare paths: system/... -> /system/...;misc/... -> /misc/...;data/... -> /data/...
/sdcard/... -> /media/0/... (convert paths starting with /sdcard to start with /media/0)
Other paths: keep unchanged
API Endpoint
/vcpcloud/api/padApi/replacePad
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | [] | Array | Yes | Instance ID list |
| countryCode | SG | String | No | Country code (see: https://chahuo.com/country-code-lookup.html) |
| realPhoneTemplateId | 65 | Long | No | Template ID (refer to [Paginated Get Real Device Templates]) |
| androidProp | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Refer to [Android Modification Properties List] |
| replacementRealAdiFlag | false | Boolean | No | Whether random ADI template for real device (false-no, true-yes) |
| excludeRealPhoneTemplateIds | [101,102] | Long[] | No | Exclude template IDs when random |
| certificate | Refer to [Phone Root Certificate] | String | No | Phone root certificate |
| wipeData | true | Boolean | No | Clear user data (default true, CBS2.4.4+ support) |
| wipeSpecificData | ["/fonts","/media"] | String[] | No | Effective when wipeData false; specify data to clear |
| keepSpecificData | ["/fonts","/media"] | String[] | No | Effective when wipeData is false; specifies which data should be preserved (mutually exclusive with wipeSpecificData) |
| enableCpuCoreConfig | true | Boolean | No | Enable CPU core config (based on Android cpuset for performance stability) |
| webviewId | 2066351288679604225 | Long | No | WebView version ID, see Query Available WebView Versions |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object | ||
| ├─ taskId | 12818 | Long | Task ID |
| ├─ padCode | AC22030010124 | String | Instance code |
| ├─ vmStatus | Integer | Instance online status (0: offline; 1: online) | |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"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
}
Response Example 1
{
"code": 200,
"msg": "success",
"ts": 1732270378320,
"data": {
"taskId": 8405,
"padCode": "AC32010250031",
"vmStatus": 2,
"taskStatus": 1
},
"traceId": "ewab8qjqbaio"
}
Response Example 2
{
"code": 500,
"msg": "Currently not supporting country code: xx",
"ts": 1753521350163,
"data": null,
"traceId": "ewab8qjqbaio"
}
One-Key New Device (Auto SIM/GPS/Timezone) ⭐
API Endpoint
/vcpcloud/api/padApi/padReplaceNew
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ["ACP250328SSXVKN1"] | String[] | Yes | Instance codes (does not support ACN prefix) |
| setProxyFlag | true | Boolean | Yes | Set to true to write SIM based on deployment location |
| wipeData | true | Boolean | No | Whether to clear data; default true |
| keepLangTimezone | false | Boolean | No | Whether to keep old language/timezone; default false |
| androidProp | {"persist.sys.locale": "zh-CN"} | Object | No | Custom Android system properties as key-value pairs. Examples: persist.sys.locale, persist.sys.timezone, etc. Higher priority than auto-generated properties |
| webviewId | 2066351288679604225 | Long | No | WebView version ID, see Query Available WebView Versions |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object |
Request Example
{
"padCodes": ["ACP250328SSXVKN1"],
"setProxyFlag": true,
"wipeData": true,
"keepLangTimezone": false,
"androidProp": {
"persist.sys.locale": "zh-CN",
"persist.sys.timezone": "Asia/Shanghai"
},
"webviewId": 2066351288679604225
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1721739857317,
"traceId": "ewc84g8si0oy",
"data": {}
}
Status Code Reference
| Code | Description |
|---|---|
| 200 | Success (async execution; poll task status to confirm result) |
| 1038 | Device code cannot be empty |
| 1210 | No device operation permission |
| 1026 | Device type not supported |
| 1219 | Reset too frequent (only once per 3 minutes) |
Query One-Key New Device Supported Countries List
API Endpoint
/vcpcloud/api/padApi/country
Request Method
GET
Request Content Type
application/json
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object[] | ||
| ├─ code | AD | String | Country code |
| ├─ name | Andorra | String | Country name (English) |
Response Example
{
"code": 200,
"msg": "success",
"ts": 1730192434383,
"traceId": "ewab8qjqbaio",
"data": [{
"code": "AD",
"name": "Andorra"
}]
}
Query Available WebView Versions
API Endpoint
/vcpcloud/api/padApi/webview/version/list
Request Method
POST
Request Content Type
application/json
Request Body Parameters
None
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object[] | Available version list; empty if none | |
| ├─ id | 12 | Integer | Version ID |
| ├─ version | 137.0.7151.61 | String | WebView version |
| ├─ ossUrl | https://xxx/webview/137.apk | String | Installer download URL |
| ├─ fileMd5 | 9e107d9d372bb6826bd81d3542a419d6 | String | Installer file MD5 |
| ├─ description | Chromium WebView 137 stable | String | Version description |
Response Example
{
"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 stable"
},
{
"id": 13,
"version": "138.0.7204.50",
"ossUrl": "https://xxx.oss-cn-hongkong.aliyuncs.com/webview/138.apk",
"fileMd5": "abcd1234ef5678901234567890abcdef",
"description": ""
}
]
}
Version data changes infrequently; cache it locally (e.g. 5 minutes) instead of fetching on every new-device operation.
Device Replacement
API Endpoint
/vcpcloud/api/padApi/replacement
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | AC22030010001 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─ equipmentId | 358504 | Long | Device ID |
| ├─ padCode | AC32011030092 | String | Instance code |
Request Example
{
"padCode": "AC32010030001"
}
Response Example
{
"msg": "success",
"code": 200,
"data": {
"padCode": "AC32011030092",
"equipmentId": 358504
},
"ts": 1741078432830
}
Get Instance Real-Time Preview Image
Get current screen screenshot for specified instance. Returns URL and expiration; access URL for real-time screenshot. Supports batch.
API Endpoint
/vcpcloud/api/padApi/getLongGenerateUrl
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ["AC22030010001"] | Array | Yes | Instance list |
| format | png / jpg | String | No | Image format: png, jpg (default png; png no compression) |
| height | 800 | String | No | Scaled height (pixels; default original) |
| width | 1280 | String | No | Scaled width (pixels; default original) |
| quality | 60 | Integer | No | Image quality (0-100; default 50%; below 60 blurry) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC32011030092 | String | Instance code |
| ├─ url | http://xxx.png | String | Access URL |
| ├─ expireAt | 1756024767163 | Long | URL expiration timestamp |
| ├─ success | true | Boolean | Success generating URL |
| ├─ reason | Instance status abnormal | String | Failure reason (empty on success) |
Request Example
{
"padCodes": [
"AC11010000031",
"AC11010000032"
],
"format": "png"
}
Response Example
{
"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": "实例状态异常"
}
]
}
Update Contacts
fileUniqueId or info required one API Endpoint
/vcpcloud/api/padApi/updateContacts
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | [] | Array | Yes | Instance list |
| fileUniqueId | cfca25a2c62b00e065b417491b0cf07ffc | String | No | Contacts file ID |
| operateType | -1 | Integer | No | -1 add, 0 delete, 1 overwrite (default -1) |
| info | Object[] | No | Contacts info | |
| ├─ firstName | tom | String | No | Name |
| ├─ phone | 13111111111 | String | No | Phone |
| tom@gmail.com | String | No |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object | ||
| ├─ taskId | 12818 | Long | Task ID |
| ├─ padCode | AC22030010124 | String | Instance code |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
| ├─ vmStatus | Integer | Instance online status (0: offline; 1: online) |
Request Example
{
"fileUniqueId": "cfca25a2c62b00e065b417491b0cf07ffc",
"info": [{
"firstName": "tom",
"phone": "13111111111",
"email": "xxxxx@gmail.com"
}],
"padCodes": [
"AC32010180326"
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756373645105,
"data": [
{
"taskId": 392077,
"padCode": "ATP250822LBOD8V7",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewcs8ow5u328"
}
Instance Set Proxy
API Endpoint
/vcpcloud/api/padApi/setProxy
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| account | 2222 | String | No | Username |
| password | 2222 | String | No | Password |
| ip | 47.76.241.5 | String | No | IP |
| port | 2222 | Integer | No | Port |
| enable | true | Boolean | Yes | Enable |
| padCodes | Array | Yes | Instance list | |
| proxyType | vpn | String | No | Supported: proxy, vpn |
| proxyName | socks5 | String | No | Supported: socks5, http-relay (includes http/https) |
| model | bypass | String | No | List mode: bypass(default)/limit |
| bypassPackageList | Array | No | Packages bypassing proxy (model=bypass) | |
| bypassIpList | Array | No | IPs bypassing proxy (model=bypass) | |
| bypassDomainList | Array | No | Domains bypassing proxy (model=bypass) | |
| limitPackageList | Array | No | Only these packages use proxy (model=limit) | |
| limitIpList | Array | No | Only these IPs use proxy (model=limit) | |
| limitDomainList | Array | No | Only these domains use proxy (model=limit) | |
| sUoT | true | Boolean | No | Enable UDP (default false) |
model controls list direction: bypass (default) — listed items go direct, others use proxy; limit — only listed items use proxy, others go direct. Fill the list matching your model (bypass* or limit*).
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object | ||
| ├─ taskId | 24 | Long | Task ID |
| ├─ padCode | AC22030010001 | String | Instance code |
| ├─ vmStatus | Integer | Instance online status (0: offline; 1: online) | |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"padCodes": [
"AC32010140023"
],
"account": "2222",
"password": "2222",
"ip": "47.76.241.5",
"port": 2222,
"enable": true,
"model": "bypass",
"bypassPackageList":[],
"bypassIpList":[],
"bypassDomainList":[],
"sUoT":true
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313787216,
"data": [
{
"taskId": 22323879,
"padCode": "ACN250828ED53YMG",
"vmStatus": 0,
"taskStatus": 1
}
],
"traceId": "ewab8whwonb4"
}
Real-Time Query Installed Apps List
API Endpoint
/vcpcloud/api/padApi/listInstalledApp
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | Yes | Instance codes |
| appName | String | No | App name |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewc84g8si0oy | String | Trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─ padCode | AC32010250001 | String | Instance code |
| ├─ apps | Object[] | App list | |
| ├─ ├─ appName | 测试app | String | App name |
| ├─ ├─ packageName | com.xxx.xxx | String | Package name |
| ├─ ├─ versionCode | 150600 | String | Version code |
| ├─ ├─ versionName | 15.6.0 | String | Version name |
| ├─ ├─ appState | 0 | Integer | 0-installed, 1-installing, 2-downloading |
Request Example
{
"padCodes": ["AC32010250001"],
"appName": ""
}
Response Example
{
"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"
}
Set App Keep-Alive
Currently supports Android 13,14,15 only.
API Endpoint
/vcpcloud/api/padApi/setKeepAliveApp
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | No | Instance codes |
| applyAllInstances | false | Boolean | Yes | Apply to all instances mode |
| appInfos | Object[] | No | ||
| ├─ serverName | com.example/com.example.service.TaskService | String | Yes | com.xxx.xxx (package)/com.xxx.xxx.service.DomeService (full service path) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"serverName": "com.example/com.example.service.TaskService"
}
],
"applyAllInstances": false
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null
}]
}
Upload User Image
API Endpoint
/vcpcloud/api/padApi/addUserRom
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| name | CloudROM-13 | String | Yes | ROM name |
| updateLog | 更新 | String | Yes | Update log |
| androidVersion | 13 | String | Yes | Android version |
| version | v1.0.0 | String | Yes | Version |
| downloadUrl | https://file.vmoscloud.com/userFile/userRom/d281d848eff49adee2dda2475235b80b2.tar | String | Yes | Download URL |
| packageSize | 236978175 | String | Yes | Size (bytes) |
Response Parameters
| Field Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736326542985 | Long | Timestamp |
| data | img-2505287582886572 | String | Image ID |
Request Example
{
"name": "CloudROM-13-11",
"updateLog": "更新日志",
"androidVersion": "13",
"version": "v1.0.0",
"downloadUrl": "https://file.vmoscloud.com/userFile/userRom/d281d848eff49adee2dda2475235b80b2.tar",
"packageSize": 236978175,
}
Response Example
{
"msg": "success",
"code": 200,
"data": "img-2505287582886572",
"ts": 1748425758327
}
Set App Hide
(Pending Launch)
Send hide package list to instance; empty list clears hide list. Note: If app not installed, setting ineffective; restart after install.
API Endpoint
vcpcloud/api/padApi/setHideAppList
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | Yes | Instance codes (max 500) |
| appInfos | Object[] | Yes | Hide app list (0-500; empty clears) | |
| ├─ packageName | com.tencent.mm | String | No | Package name (empty or empty array clears) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"packageName": "com.tencent.mm"
}]
}
Clear Hide List Example
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": []
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": null
}
Modify Real Device ADI Template
Modify cloud real device ADI template with provided template ID.
Conditions:
- Instance created as cloud real device type
- Instance Android version matches target ADI version
API Endpoint
/vcpcloud/api/padApi/replaceRealAdiTemplate
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Instance code |
| wipeData | false | Boolean | Yes | Clear data |
| realPhoneTemplateId | 186 | Long | Yes | Real device template ID |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"padCodes": ["AC32010250011"],
"wipeData": true,
"realPhoneTemplateId": 186
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null,
"taskStatus": 1
}]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110028 | Instance does not exist | Contact admin |
| 110064 | Some instances do not meet real device upgrade conditions | Check instance type |
| 110099 | ADI template does not exist | Check parameters |
Async Execute ADB Commands
Async execute commands in one or more cloud instances.
API Endpoint
/vcpcloud/api/padApi/asyncCmd
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22020020793 | String | Yes | Instance code |
| scriptContent | cd /root;ls | String | Yes | ADB commands (multiple separated by “;” ) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewc84g8si0oy | String | Trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC22020020793 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
Request Example
{
"padCodes": [
"AC22020020793"
],
"scriptContent": "cd /root;ls"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570297639,
"traceId": "ewab8whwonb4",
"data": [
{
"taskId": 14,
"padCode": "AC22030010001",
"vmStatus": 1
},
{
"taskId": 15,
"padCode": "AC22030010002",
"vmStatus": 0
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110003 | ADB command failed | Contact admin |
| 110012 | Command timeout | Retry later |
Switch Root Permissions
Switch root permissions in one or more cloud instances. For single app root, specify package name (cloud real device: not recommended global root due to detection risk).
API Endpoint
/vcpcloud/api/padApi/switchRoot
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22020020793 | String | Yes | Instance code |
| globalRoot | false | Boolean | No | Global root (default no) |
| packageName | com.example | String | No | Package name (required for non-global; multiple comma separated) |
| rootStatus | Integer | Yes | Root status: 0-off, 1-on |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC22020020793 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
Request Example
{
"padCodes": [
"AC32010250002"
],
"globalRoot": false,
"packageName": "com.android.ftpeasys",
"rootStatus": 0
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570297639,
"data": [
{
"taskId": 14,
"padCode": "AC32010250002",
"vmStatus": 1
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110003 | ADB command failed | Contact admin |
| 110089 | Single root package name empty | Provide package name for single app root |
Local Screenshot
Instance screenshot.
API Endpoint
/vcpcloud/api/padApi/screenshot
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010231 | String | Yes | Instance code |
| rotation | 0 | Integer | Yes | Screenshot orientation: 0-default, 1-rotate to portrait |
| broadcast | false | Boolean | No | Broadcast event (default false) |
| definition | Integer | No | Clarity 0-100 | |
| resolutionHeight | Integer | No | Height >1 | |
| resolutionWidth | Integer | No | Width >1 |
Response Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| code | 200 | Integer | Yes | Status code |
| msg | success | String | Yes | Response message |
| ts | 1756021167163 | Long | Yes | Timestamp |
| data | Object[] | No | ||
| ├─ taskId | 1 | Integer | No | Task ID |
| ├─ padCode | AC21020010231 | String | No | Instance code |
| ├─ vmStatus | 1 | Integer | Yes | Instance online status (0: offline; 1: online) |
Request Example
{
"padCodes": [
"AC21020010231"
],
"rotation": 0,
"broadcast": false,
"definition": 50,
"resolutionHeight": 1920,
"resolutionWidth": 1080
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570337023,
"data": [
{
"taskId": 16,
"padCode": "AC22030010001",
"vmStatus": 1
},
{
"taskId": 17,
"padCode": "AC22030010002",
"vmStatus": 0
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110001 | Screenshot failed | Retry |
| 110004 | Restart failed | Restart later |
| 110028 | Instance not exist | Check instance |
Generate Preview Image
Get preview image for specified instance.
API Endpoint
/vcpcloud/api/padApi/generatePreview
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC11010000031 | String | Yes | Instance code |
| rotation | 0 | Integer | Yes | Screenshot orientation: 0-default, 1-rotate to portrait |
| broadcast | false | Boolean | No | Broadcast event (default false) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC11010000031 | String | Instance code |
| ├─ url | http://xxx.armcloud.png | String | Access URL |
| ├─ expireAt | 1756024767163 | Long | URL expiration |
| ├─ success | true | Boolean | Success |
| ├─ reason | Instance status abnormal | String | Failure reason |
Request Example
{
"padCodes": [
"AC11010000031",
"AC11010000032"
],
"format": "png"
}
Response Example
{
"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": "实例状态异常"
}
]
}
Upgrade Image
Batch instance image upgrade.
API Endpoint
/vcpcloud/api/padApi/upgradeImage
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22030010182 | String | Yes | Instance code |
| imageId | mg-24061124017 | String | Yes | Image ID |
| wipeData | false | Boolean | Yes | Clear data partition: true-yes, false-no |
| enableCpuCoreConfig | true | Boolean | No | Enable CPU core config |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object[] | ||
| ├─ padCode | AC22030010182 | String | Instance code |
| ├─ taskId | 1 | Integer | Task ID |
| ├─ errorMsg | “” | String | Error message |
Request Example
{
"padCodes": [
"AC22030010182"
],
"wipeData": false,
"imageId": "mg-24061124017"
}
Response Example
{
"code": 200,
"traceId": "ewab8whwonb4",
"msg": "success",
"ts": 1718594881432,
"data": [
{
"taskId": 63,
"padCode": "AC22030010182",
"errorMsg": null
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110041 | Image does not exist | Check image ID |
| 110037 | Upgrade command failed | Instance status issue |
| 110038 | Upgrade execution failed | Instance status issue |
Here is the English translation of the provided API documentation (only the Chinese parts are translated, structure and code examples remain unchanged):
Hide Accessibility Service
Issue a list of apps that need to hide accessibility service permissions to the specified instances. After successful setting, apps in the hidden list will not be detectable by other apps on the same instance as having requested accessibility service permissions.
Notes:
- The specified app itself can still detect that it has enabled accessibility service.
- Third-party apps cannot detect that the specified app has enabled accessibility service.
- The specified app will not appear in the accessibility service list.
Interface Address
/vcpcloud/api/padApi/setHideAccessibilityAppList
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Parameter Description |
|---|---|---|---|---|
| padCodes | ["AC32010250001"] | String[] | Yes | Array of instance codes (maximum 200) |
| appInfos | [] | Object[] | Yes | Array of hidden app list objects; pass empty array [] to clear (0–200 items) |
| ├─packageName | com.tencent.mm | String | Yes (when array not empty) | App package name. Special values: * or ALL means hide accessibility service permission for all apps |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Parameter Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example - Hide Specified App
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"packageName": "com.tencent.mm"
}]
}
Request Example - Clear Hidden List
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": []
}
Request Example - Hide All Apps
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"packageName": "*"
}]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": null
}
Upgrade Real Device Image
Batch real device image upgrade.
API Endpoint
/vcpcloud/api/padApi/virtualRealSwitch
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22030010182 | String | Yes | Instance code |
| imageId | mg-24061124017 | String | Yes | Image ID |
| wipeData | false | Boolean | Yes | Clear data: true-yes, false-no |
| realPhoneTemplateId | 178 | Integer | No | Real device template ID (required for real) |
| upgradeImageConvertType | virtual | String | Yes | Convert type: virtual / real |
| screenLayoutId | 14 | Integer | No | Screen layout ID (required for virtual) |
| certificate | Refer to [Phone Root Certificate] | String | No | Custom root certificate |
| deviceAndroidProps | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Android props (CBS <2.4.4 not support) |
| enableCpuCoreConfig | true | Boolean | No | Enable CPU core config |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Trace ID |
| data | Object[] | ||
| ├─ padCode | AC22030010182 | String | Instance code |
| ├─ taskId | 1 | Integer | Task ID |
| ├─ errorMsg | “” | String | Error message |
Request Example
{
"padCodes": [
"AC32010210023"
],
"imageId": "img-24112653977",
"wipeData": true,
"realPhoneTemplateId": 178,
"upgradeImageConvertType": "virtual",
"screenLayoutId": 14
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1718594881432,
"traceId": "ewab8whwonb4",
"data": [
{
"taskId": 63,
"padCode": "AC22030010182",
"errorMsg": null
}
]
}
Error Codes
| Error Code | Error Description | Suggestion |
|---|---|---|
| 110041 | Image does not exist | Check image ID |
| 110037 | Upgrade command failed | Instance status issue |
| 110038 | Upgrade execution failed | Instance status issue |
| 110064 | Some instances do not meet real device conditions | Check instances |
Paginated Get Real Device Templates
Paginated retrieval of real device templates.
API Endpoint
/vcpcloud/api/padApi/templateList
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Parameter Description |
|---|---|---|---|---|
| page | 1 | Integer | No | Page number, default 1 |
| rows | 10 | Integer | No | Number of items per page, default 10, range 1-100 |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Parameter Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object | Object | Main data container |
| ├─ records | Object[] | Object[] | Fingerprint record list |
| ├─├─ goodFingerprintId | 36 | Integer | Fingerprint record unique ID |
| ├─├─ goodConfigId | null | Integer | Associated config ID |
| ├─├─ goodFingerprintName | Google Pixel 7 Pro | String | Device fingerprint name |
| ├─├─ goodFingerprintModel | null | String | Device specific model |
| ├─├─ goodFingerprintBrand | null | String | Device brand |
| ├─├─ goodAndroidVersion | 13 | String | Android system version |
| ├─├─ goodStatus | null | Integer | Fingerprint record status |
| ├─ total | 638 | Integer | Total number of records |
| ├─ size | 10 | Integer | Number of items per page |
| ├─ current | 1 | Integer | Current page number |
| ├─ orders | [] | Array | Sorting fields |
| ├─ optimizeCountSql | true | Boolean | Whether to optimize count query |
| ├─ searchCount | true | Boolean | Whether to execute total count |
| ├─ maxLimit | null | Integer | Maximum limit of records |
| ├─ countId | null | String | Count query identifier |
| ├─ pages | 64 | Integer | Total number of pages |
| ts | 1770257529924 | Long/Number | Timestamp (milliseconds) |
Request Example
{
"page": 1,
"rows": 10
}
Response Example
{
"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
}
Batch Get Instance Device Model Information
(Pending Launch)
Batch get device model information for corresponding instances based on instance codes.
API Endpoint
/vcpcloud/api/padApi/modelInfo
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22030010182 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewbssur1jbwg | String | Trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC22030010182 | String | Instance code |
| ├─ imei | 524803173613682 | String | IMEI |
| ├─ serialno | 01NM5ON34M4O | String | Serial number |
| ├─ wifimac | 04:3a:6c:e5:e9:8d:62:d6:4a | String | Wi-Fi MAC address |
| ├─ androidid | aa6bcedf1426546c | String | Android instance unique ID |
| ├─ model | Mi 10 Pro | String | Model |
| ├─ brand | Xiaomi | String | Brand |
| ├─ manufacturer | Xiaomi | String | Manufacturer |
| ├─ isRoot | 1 | String | Rooted (1: yes) |
| ├─ width | 720 | Integer | Cloud phone width (max 1080) |
| ├─ height | 1280 | Integer | Cloud phone height (max 1920) |
| ├─ memoryLimit | 1024 | Integer | Memory limit |
| ├─ bluetoothaddr | 3A:1F:4B:9C:2D:8E | String | Bluetooth address |
| ├─ phonenum | 1112341234 | String | Phone number |
| ├─ romVersion | android13 | String | Android version |
| ├─ dataSize | 2367381504 | Integer | Storage size (bytes) |
| ├─ dataSizeAvailable | 365830144 | Integer | Available storage (bytes) |
| ├─ dataSizeUsed | 2001551360 | Integer | Used storage (bytes) |
| ├─ romVersion | android14 | String | ROM version |
Request Example
{
"padCodes": [
"AC22030010182"
]
}
Response Example
{
"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"
}
Set Instance Bandwidth
(Pending Launch)
Set instance bandwidth based on instance code.
API Endpoint
/vcpcloud/api/padApi/setSpeed
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22030010124 | String | Yes | Instance code |
| upBandwidth | 10.00 | float | Yes | Upload bandwidth Mbps (0: unlimited; -1: block internet) |
| downBandwidth | 10.00 | float | Yes | Download bandwidth Mbps (0: unlimited; -1: block internet) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewbssur1jbwg | String | Trace ID |
| data | Object[] | ||
| ├─ taskId | 679 | Integer | Task ID |
| ├─ padCode | AC32010140011 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"padCodes": [
"AC32010140011"
],
"upBandwidth": 10.00,
"downBandwidth": 10.00
}
Response Example
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1721640654237,
"data": [
{
"taskId": 679,
"padCode": "AC32010140011",
"vmStatus": 1,
"taskStatus": 1
}
]
}
Enable/Disable ADB
Enable or disable ADB for instance based on instance code.
API Endpoint
/vcpcloud/api/padApi/openOnlineAdb
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | Instance list (1-200 instances) | |
| ├─ | AC32010250032 | String | Yes | Instance code |
| openStatus | 1 | Integer | Yes | ADB status (1: enable; 0 or omit: disable) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 16147 | Integer | Task ID |
| ├─ padCode | AC32010250032 | String | Instance code |
| ├─ taskStatus | 3 | Integer | Task status (-1: all failed; -2: partial failed; -3: canceled; -4: timeout; -5: abnormal; 1: pending; 2: executing; 3: completed) |
| ├─ taskResult | success | String | Task result |
Request Example
{
"padCodes":[
"AC32010250032"
],
"openStatus": 1
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736920929306,
"data": [
{
"taskId": 16147,
"padCode": "AC32010250032",
"taskStatus": 3,
"taskResult": "success"
}
]
}
Get ADB Connection Information
Get ADB connection information based on instance code. If response data (key, adb) incomplete, call [Enable/Disable ADB] to enable ADB first.
API Endpoint
/vcpcloud/api/padApi/adb
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | AC32010250032 | String | Yes | Instance code |
| enable | true | Boolean | Yes | ADB status: true-enable, false-disable |
| expireMinutes | 2880 | Integer | No | ADB validity period in minutes (1–7 days, i.e. 1440–10080), default 1440 |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewbssur1jbwg | String | Trace ID |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC32010250032 | String | Instance code |
| ├─ command | ssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -Nf | String | SSH connection command |
| ├─ expireTime | 2025-01-16 14:32:00 | String | ADB link expiration |
| ├─ enable | true | Boolean | ADB status: true-enable, false-disable |
| ├─ key | 3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== | String | Connection key |
| ├─ adb | adb connect localhost:8577 | String | ADB connection info |
Request Example
{
"padCode": "AC32010250032",
"enable": true,
"expireMinutes": 2880
}
Response Example
{
"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"
}
}
Batch Get ADB Connection Information
(Pending Launch)
Batch get or disable ADB connection information based on instance code list. If enable success but connection info incomplete, call [Enable/Disable ADB] to re-enable first. Max 10 instances per call.
API Endpoint
/vcpcloud/api/padApi/batch/adb
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ["AC32010250032","AC32010250033"] | String[] | Yes | Instance code list (max 10) |
| enable | true | Boolean | Yes | Enable ADB: true-enable and return info, false-disable |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewbssur1jbwg | String | Trace ID |
| ts | 1736922808949 | Long | Timestamp |
| data | Object | ||
| ├─ successList | Object[] | Success list | |
| │ ├─ padCode | AC32010250032 | String | Instance code |
| │ ├─ command | ssh -oHostKeyAlgorithms=+ssh-rsa 10.255.3.2_001_1736922765389@156.59.80.166 -p 1824 -L 8572:adb-proxy:53728 -Nf | String | SSH command |
| │ ├─ expireTime | 2025-01-16 14:32:00 | String | ADB expiration |
| │ ├─ enable | true | Boolean | ADB status |
| │ ├─ key | 3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== | String | Connection key |
| │ ├─ adb | adb connect localhost:8577 | String | ADB connection |
| ├─ failedList | Object[] | Failure list | |
| │ ├─ padCode | AC32010250034 | String | Instance code |
| │ ├─ errorMsg | Instance not running | String | Failure reason |
| │ ├─ errorCode | PAD_NOT_RUNNING | String | Error code |
Request Example
{
"padCodes": [
"AC32010250032",
"AC32010250033"
],
"enable": true
}
Response Example
{
"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"
}
]
}
}
Transfer Cloud Phone
Transfer specified cloud phone instances to another account (via the recipient account's email).
Interface Address
/vcpcloud/api/padApi/confirmTransfer
Request Method
POST
Request Content-Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| padCodes | ["ACXXXXXXXXX"] | String[] | Yes | List of instance codes to transfer |
| makeOverMobilePhone | "XXXX.gmail.com" | String | Yes | Recipient account email |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1731055053049 | Long | Timestamp |
| data | true | Boolean | Whether the transfer was successful (true/false) |
Request Example
{
"padCodes": [
"ACXXXXXXXXX"
],
"makeOverMobilePhone": "XXXX.gmail.com"
}
Response Example
{
"msg": "success",
"code": 200,
"data": true,
"ts": 1731055053049
}
Simulate Touch
Simulate touch events (down, up, move) in instance via XY coordinates.
Exception check: Repeated requests within 2s return error "Do not operate frequently".
API Endpoint
/vcpcloud/api/padApi/simulateTouch
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| padCodes | 2200 | String[] | Instances to trigger touch |
| width | 120 | Integer | Container width |
| height | 120 | Integer | Container height |
| pointCount | 1 | Integer | Multi-touch (1-10 fingers; default 1) |
| positions | [{"actionType":0,"x":100,"y":100,"nextPositionWaitTime":20}] | Object[] | Touch coordinate groups |
| ├─ actionType | 1 | Integer | Action type (0: down; 1: up; 2: move) |
| ├─ x | 100 | float | X coordinate |
| ├─ y | 100 | float | Y coordinate |
| ├─ nextPositionWaitTime | 100 | Integer | Wait time (ms) before next group |
| ├─ swipe | -1 | float | Swipe distance (-1: down; 1: up) |
| ├─ touchType | gestureSwipe | String | gestureSwipe-swipe, gesture-touch, keystroke-key (default down+up) |
| ├─ keyCode | 1 | Integer | Key code |
| ├─ pressure | 0.5 | float | Touch pressure |
| ├─ size | 0.5 | float | Touch area ratio |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736922808949 | Long | Timestamp |
| traceId | ewbssur1jbwg | String | Trace ID |
| data | Object[] | ||
| ├─ padCode | AC32032 | String | Instance code |
| ├─ taskId | 10004759 | Long | Task ID |
| ├─ vmStatus | 0 | String | Instance online status |
| ├─ taskStatus | 1 | Integer | Task status (-1: task exists; 1: added) |
Request Example
{
"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
}
]
}
Response Example
{
"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 (Humanized Click & Swipe)
Overview
Two touch simulation APIs generate humanized click and swipe trajectories (position, pressure, timing) on cloud phone instances so automation looks like real user behavior.
Base path: /vcpcloud/api/padApi
1. Simulate Click {#simulate-click-humanized}
Generate a humanized click trajectory at the given coordinates. The click has four phases: press, hold, micro-move, release.
API Endpoint
POST /vcpcloud/api/padApi/simulateClick
Content-Type: application/json
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
padCodes | Array[String] | Yes | - | Instance code list; devices to execute the action |
x | Number | Yes | - | Click target X (screen physical pixels) |
y | Number | Yes | - | Click target Y (screen physical pixels) |
width | Integer | No | 720 | Screen width (for coordinate normalization) |
height | Integer | No | 1280 | Screen height (for coordinate normalization) |
Request example
{
"padCodes": ["PAD_001", "PAD_002"],
"x": 360,
"y": 640,
"width": 720,
"height": 1280
}
Response: Standard format; code 200 = success.
Rate limit: Same device rejected if requested again within 2s; error code 1218, message "请勿频繁操作".
2. Simulate Swipe {#simulate-swipe-humanized}
Generate a humanized swipe trajectory. Supports fixed-direction mode (auto start/end) or custom start/end. Trajectory: press, swipe (ease-in-out), dwell, release.
API Endpoint
POST /vcpcloud/api/padApi/simulateSwipe
Content-Type: application/json
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
padCodes | Array[String] | Yes | - | Instance code list |
direction | String | Yes | - | Swipe direction enum |
width | Integer | No | 1080 | Screen width |
height | Integer | No | 1920 | Screen height |
startX | Number | No | auto | Start X (custom mode) |
startY | Number | No | auto | Start Y (custom mode) |
endX | Number | No | auto | End X (custom mode) |
endY | Number | No | auto | End Y (custom mode) |
Direction enum (direction): LEFT_TO_RIGHT, RIGHT_TO_LEFT, TOP_TO_BOTTOM, BOTTOM_TO_TOP.
Mode A – Auto start/end: Send padCodes, direction, width, height only.
Mode B – Custom start/end: Also send startX, startY, endX, endY.
Response: Standard format; code 200 = success.
Error codes: 1104 = direction missing or invalid; 1218 = rate limit (same device within 2s).
3. Simulate Long Press {#simulate-long-press-humanized}
Generate a humanized long-press trajectory at the given coordinates. Hold duration is caller-configurable.
API Endpoint
POST /vcpcloud/api/padApi/simulateLongPress
Content-Type: application/json
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
padCodes | Array[String] | Yes | - | Instance code list |
x | Number | Yes | - | Long-press target X |
y | Number | Yes | - | Long-press target Y |
holdMs | Integer | No | 600 | Hold duration (ms); must be > 0 |
width | Integer | No | 720 | Screen width |
height | Integer | No | 1280 | Screen height |
Request example
{
"padCodes": ["PAD_001"],
"x": 360,
"y": 640,
"holdMs": 800,
"width": 720,
"height": 1280
}
Response: Standard format; code 200 = success.
Constraints:
holdMsshould be ≥ 500ms; otherwise the Android system long-press event will not fire (behaves like a click).- No hard upper bound on
holdMs, but very large values (e.g. > 10000ms) reduce throughput and success rate; set per business need.
Error codes: 1104 = holdMs missing or invalid (≤ 0); 1218 = rate limit (same device within 2s).
Return data and humanization
Success response data is passed to armCloudMobileService.simulateTouch() for execution. Each touch point includes actionType (0=DOWN, 2=MOVE, 1=UP), x, y, waitTime, pressure. Click: position jitter (±3px), release offset (1–4px), duration 120–400ms, pressure decay. Swipe: ease-in-out cubic, minor Y-axis arc (<1.5%), end dwell 200–600ms, step ≤25px, pressure monotonically decreasing.
Instance Operation Task Details
Query detailed execution results for specified instance operation task.
API Endpoint
/vcpcloud/api/padApi/padTaskDetail
Request Method
POST
Request Content Type
application/json
Request Query Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| taskIds | Integer[] | Yes | ||
| ├─ taskId | 1 | Integer | Yes | Task ID |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewbssur1jbwg | String | Trace ID |
| data | Object[] | Sub-task details | |
| ├─ taskId | 1 | Integer | Sub-task ID |
| ├─ padCode | VP22020020793 | String | Instance identifier |
| ├─ taskStatus | 2 | String | Task status (-1: all failed; -2: partial failed; -3: canceled; -4: timeout; 1: pending; 2: executing; 3: completed; 9: queued) |
| ├─ endTime | 1713429401000 | Long | Sub-task end timestamp |
| ├─ taskContent | “” | String | Task content |
| ├─ taskResult | “” | String | Task result |
| ├─ errorMsg | “” | String | Error message |
Request Example
{
"taskIds":[1,2]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1756313781081,
"data": [
{
"taskId": 22323794,
"padCode": "ACN250828DYJE95Z",
"taskStatus": 2,
"endTime": null,
"taskContent": null,
"taskResult": null,
"errorMsg": null
}
],
"traceId": "ewab8kpxb7k0"
}
Get Instance Script Execution Result
Get script execution result for instance via script task ID.
API Endpoint
/vcpcloud/api/padApi/executeScriptInfo
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| taskIds | Integer[] | Yes | Array length 1-100 | |
| ├─ | 1 | Integer | No | Task ID |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewc84g8si0oy | String | Trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC22020020793 | String | Instance code |
| ├─ taskStatus | 3 | Integer | Task status (-1: all failed; -2: partial failed; -3: canceled; -4: timeout; 1: pending; 2: executing; 3: completed) |
| ├─ endTime | 1756021166163 | Long | Task end time |
| ├─ taskContent | Success | String | Task content |
| ├─ taskResult | Success | String | Task result |
| ├─ errorMsg | Instance does not exist | String | Failure reason |
Request Example
{
"taskIds": [1]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1752214432301,
"data": [
{
"taskId": 49884,
"padCode": "ATP250707FNSVRMC",
"taskStatus": 3,
"endTime": 1752214271000,
"taskContent": null,
"taskResult": null,
"errorMsg": "调用Adb命令成功"
}
],
"traceId": "erl0i57h6v40"
}
Get Instance Screenshot Result
(Pending Launch)
Get instance screenshot result via screenshot task ID.
API Endpoint
/vcpcloud/api/padApi/screenshotInfo
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| taskIds | Integer[] | Yes | ||
| ├─ | 1 | Integer | No | Task ID |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewbssur1jbwg | String | Trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | Task details | |
| ├─ taskId | 1 | Integer | Task ID |
| ├─ taskStatus | 3 | Integer | Task status (-1: all failed; -2: partial failed; -3: canceled; -4: timeout; 1: pending; 2: executing; 3: completed) |
| ├─ padCode | AC22020020793 | String | Instance code |
| ├─ taskContent | Success | String | Task content |
| ├─ taskResult | Success | String | Task result |
| ├─ endTime | 1756121167163 | String | Task end time |
Request Example
{
"taskIds": [1]
}
Response Example
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts":1713773577581,
"data":[
{
"taskId": 1,
"taskStatus": 3,
"padCode": "AC22020020793",
"taskContent": "Success",
"taskResult": "Success",
"endTime": 1756121167163
}
]
}
Instance Restart/Reset Execution Result
(Pending Launch)
Get instance restart/reset execution result via task ID.
API Endpoint
/vcpcloud/api/padApi/padExecuteTaskInfo
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| taskIds | Integer[] | Yes | ||
| ├─ | 1 | Integer | Yes | Task ID |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| traceId | ewbssur1jbwg | String | Trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ taskStatus | 3 | Integer | Task status (-1: all failed; -2: partial failed; -3: canceled; -4: timeout; 1: pending; 2: executing; 3: completed) |
| ├─ endTime | 1756021166163 | Long | Task end time |
| ├─ taskContent | “” | String | Task content |
| ├─ taskResult | Success | String | Task result |
Request Example
{
"taskIds": [1]
}
Response Example
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1756021167163
"data":[
{
"taskId": 1,
"padCode": "AC22030022911",
"taskStatus": 3,
"endTime": 1756021166163,
"taskContent": null,
"taskResult": "Success"
}
]
}
Instance List Information
Paginated get instance list information based on query conditions.
API Endpoint
/vcpcloud/api/padApi/infos
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| page | 1 | Integer | Yes | Page number |
| rows | 10 | Integer | Yes | Records per page |
| padType | real | String | No | Instance type (virtual: virtual; real: real) |
| padCodes | String[] | No | ||
| ├─ | AC22010020062 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | Object | ||
| ├─ page | 1 | Integer | Current page |
| ├─ rows | 10 | Integer | Records per page |
| ├─ size | 1 | Integer | Current page count |
| ├─ total | 1 | Integer | Total records |
| ├─ totalPage | 1 | Integer | Total pages |
| ├─ pageData | object[] | List | |
| ├─ ├─ padCode | VP21020010391 | String | Instance code |
| ├─ ├─ padGrade | q1-2 | String | Instance openings |
| ├─ ├─ padStatus | 10 | String | Instance status |
| ├─ ├─ idcCode | d3c1f580c41525e514330a85dfdecda8 | String | Data center code |
| ├─ ├─ deviceIp | 192.168.0.0 | String | Cloud machine IP |
| ├─ ├─ padIp | 192.168.0.0 | String | Instance IP |
| ├─ ├─ apps | String[] | Installed apps | |
| ├─ ├─ ├─ | armcloud001 | String | Installed app |
Request Example
{
"page": 1,
"rows": 10,
"padCodes": [
"AC21020010391"
]
}
Response Example
{
"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"
]
}
]
}
}
Import Call Logs
This interface imports call log data into cloud phone. During import, it automatically detects saved contacts and displays corresponding names in call logs for quick identification.
API Endpoint
/vcpcloud/api/padApi/addPhoneRecord
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | Yes | Instances to edit call logs |
| callRecords | [{"number":"18009781201","inputType":1,"duration":30,"timeString":"2025-05-06 14:00:09"}] | Object[] | Yes | Call logs |
| ├─ number | 13900000000 | String | Yes | Phone number |
| ├─ inputType | 1 | int | Yes | Call type (1: outgoing; 2: incoming; 3: missed) |
| ├─ duration | 60 | int | Yes | Duration (seconds; 0 for missed) |
| ├─ timeString | 2025-05-08 12:30:00 | String | No | Call time |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC32032 | String | Instance code |
| ├─ taskId | 10004759 | Long | Task ID |
| ├─ vmStatus | 0 | String | Online status |
Request Example
{
"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
}
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"taskId": 100059,
"padCode": "ACP00001",
"vmStatus": 0
},
{
"taskId": 100060,
"padCode": "ACP00001",
"vmStatus": 0
}
]
}
Cloud Phone Text Input
Focus input box in cloud phone first, call this interface with text to display at specified position.
API Endpoint
/vcpcloud/api/padApi/inputText
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | Yes | Instance codes |
| text | hello123 | String | Yes | Input text |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC32032 | String | Instance code |
| ├─ taskId | 10004759 | Long | Task ID |
| ├─ vmStatus | 0 | String | Online status |
| ├─ taskStatus | 1 | String | Task status |
Request Example
{
"padCodes": [
"ACP250509FECQN33",
"ACP250509T1VME44",
"ACP25050917AYX11"
],
"text": "12345678"
}
Response Example
{
"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
}
Simulate Send SMS
Simulate sending SMS to instance (supports batch). Limited to AOSP13/14.
API Endpoint
/vcpcloud/api/padApi/simulateSendSms
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ["ACN2505060777"] | String[] | Yes | Instance list (1-100) |
| senderNumber | 13800000000 | String | Yes | Sender number (no mainland; max 16 chars, digits/letters/space/+-) |
| smsContent | 这是一条测试短信。 | String | Yes | SMS content (max 127 chars) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736922808949 | Long | Timestamp |
| traceId | ewb123abc | String | Trace ID |
| data | true | Boolean | Success |
Request Example
{
"padCodes": ["ACN2505060777"],
"senderNumber": "13800000000",
"smsContent": "这是一条测试短信。"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736922808949,
"traceId": "ewb123abc",
"data": true
}
Reset GAID
Reset advertising ID (GAID) in cloud phone via instance code or group.
API Endpoint
/vcpcloud/api/padApi/resetGAID
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Instance code |
| resetGmsType | GAID | String | Yes | Reset type: GAID |
| oprBy | zhangsan | String | No | Operator |
| taskSource | OPEN_PLATFORM | String | Yes | Task source: OPEN_PLATFORM |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC21020010001 | String | Instance code |
| ├─ vmStatus | 1 | Integer | Online status (0: offline; 1: online) |
Request Example
{
"padCodes": [
"ACPXXXXXXXXXXXXXXX"
],
"taskSource": "OPEN_PLATFORM",
"oprBy": "admin",
"resetGmsType": "GAID"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717559681604,
"data": [
{
"taskId": 88,
"padCode": "AC22030010001",
"vmStatus": 1
},
{
"taskId": 89,
"padCode": "AC22030010002",
"vmStatus": 0
}
]
}
Inject Audio to Instance Microphone
Inject audio file to instance microphone (PCM format only; convert first).
API Endpoint
/vcpcloud/api/padApi/injectAudioToMic
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | Yes | Instance codes |
| url | http://localhost/abc | String | No | Audio download URL (one of url/fileUniqueId) |
| fileUniqueId | 8fc73d05371740008ea27a2707496a82 | String | No | File unique ID (one of url/fileUniqueId) |
| enable | true | Boolean | Yes | Inject switch |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC32032 | String | Instance code |
| ├─ taskId | 10004759 | Long | Task ID |
| ├─ vmStatus | 0 | String | Online status |
| ├─ taskStatus | 1 | String | Task status |
Request Example
{
"padCodes": [
"ACP250509FECQN33","ACP250509T1VME44","ACP25050917AYX11
],
"url":"http://localhost/abc ",
"fileUniqueId":"8a6d0df189ef4b0e83858fd9eeb7620c",
"enable":true
}
Response Example
{
"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
}
Clear Processes and Return to Desktop
(Pending Launch)
Clear all processes except system and return to desktop.
API Endpoint
/vcpcloud/api/padApi/cleanAppHome
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ATP250814USYXXXX | String[] | Yes | Instance codes |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736922808949 | Long | Timestamp |
| traceId | euz60azzc7i8 | String | Trace ID |
| data | Object[] | ||
| ├─ padCode | AC32032 | String | Instance code |
| ├─ taskId | 10004759 | Long | Task ID |
| ├─ vmStatus | 0 | String | Online status |
| ├─ taskStatus | 1 | String | Task status |
Request Example
{
"padCodes": [
"ATP250814USYXXXX"
]
}
Response Example
{
"msg": "success",
"traceId": "euz60azzc7i8",
"code": 200,
"data": [
{
"padCode": "ATP250814USYXXXX",
"vmStatus": 0,
"taskId": 68951,
"taskStatus": 1
}
],
"ts": 1755172215886
}
Unmanned Live Streaming
(Pending Launch)
Instance video injection (only img-25092692759 image supported currently). Use injectUrl or injectUrls (at least one, not both; max 5 for injectUrls).
API Endpoint
/vcpcloud/api/padApi/unmannedLive
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ACN384345141346304 | String[] | Yes | Instances (1-100) |
| injectSwitch | true | Boolean | No | Enable injection (true: on; false: off; default false) |
| injectLoop | false | Boolean | No | Loop playback (default false) |
| injectUrl | https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4 | String | No | Single video URL (http/https/rtmp:// or local; one with injectUrls) |
| injectUrls | ["https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4","rtmp://example.com/live"] | String[] | No | Video URL list (max 5; one with injectUrl) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1759134336311 | Long | Timestamp |
| traceId | ezispr1m30n4 | String | Trace ID |
| data | Object[] | ||
| ├─ padCode | ACN384345141346304 | String | Instance code |
| ├─ taskId | 20503 | Long | Task ID |
| ├─ vmStatus | 0 | String | Online status |
| ├─ taskStatus | 1 | String | Task status |
| ├─ errMsg | null | String | Error message |
Request Example
{
"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"
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 20503,
"padCode": "ACN384345141346304",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null
}
],
"traceId": "ezispr1m30n4"
}
Image Injection
(Pending Launch)
Instance image injection.
API Endpoint
/vcpcloud/api/padApi/injectPicture
Request Method
POST
Request Content Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCodes | ACN2510166WZUPCJ | String[] | Yes | Instances (1-100) |
| injectSwitch | true | Boolean | No | Enable (true: on; false: off; default false) |
| injectLoop | false | Boolean | No | Loop (default false) |
| injectUrl | https://file.vmoscloud.com/userFile/ac4e112d72f9ed724101f510e774001f.JPG | String | Yes | Image URL (http/https/rtmp://) |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1759134336311 | Long | Timestamp |
| traceId | ezispr1m30n4 | String | Trace ID |
| data | Object[] | ||
| ├─ padCode | ACN384345141346304 | String | Instance code |
| ├─ taskId | 20503 | Long | Task ID |
| ├─ vmStatus | 0 | String | Online status |
| ├─ taskStatus | 1 | String | Task status |
| ├─ errMsg | null | String | Error message |
Request Example
{
"padCodes": ["ACN2510166WZUPCJ"],
"injectSwitch": true,
"injectLoop": false,
"injectUrl": "https://file.vmoscloud.com/userFile/ac4e112d72f9ed724101f510e774001f.JPG"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 28247,
"padCode": "ACN2510166WZUPCJ",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null
}
],
"traceId": "ezispr1m30n4"
}
Application Management
Application Installation
Install one or more apps on one or more instances at once. This API is asynchronous and supports allowlist/blocklist logic.
API Endpoint
/vcpcloud/api/padApi/installApp
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| apps | Object[] | Yes | Application list | |
| ├─appId | 124 | Integer | Yes | Application ID |
| ├─appName | AppName | String | No | Application name |
| ├─pkgName | com.huluxia.gametools | String | No | Package name |
| ├─isGrantAllPerm | false | Boolean | No | Grant all permissions (default true) |
| ├─padCodes | String[] | Yes | ||
| ├─├─ | AC22010020062 | String | Yes | Instance code |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| traceId | ewc84g8si0oy | String | Trace ID |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22010020062 | String | Instance code |
| ├─vmStatus | 1 | Integer | Instance online status (0: Offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task status (-1: Task already exists, do not resubmit; 1: Task added) |
Request Example
{
"apps":[
{
"appId":124,
"appName":"AppName",
"pkgName":"com.huluxia.gametools",
"isGrantAllPerm":false,
"padCodes":["AC22010020062"]
}
]
}
Response Example
{
"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"
}
Error Codes
| Error Code | Error Description | Suggested Action |
|---|---|---|
| 140005 | File unavailable | Check if file exists |
App Start
Start an app on an instance based on the instance ID and app package name.
API Endpoint
/vcpcloud/api/padApi/startApp
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| pkgName | xxx.test.com | String | Yes | Package Name |
| padCodes | String[] | Yes | ||
| ├─ | AC22010020062 | String | Yes | Instance Code |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status Code |
| msg | success | String | Response Message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC22010020062 | String | Instance Code |
| ├─ vmStatus | 1 | Integer | Instance Online Status (0: Offline; 1: Online) |
Request Example
{
"padCodes": [
"AC22010020062"
],
"pkgName": "xxx.test.com"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC22010020062",
"vmStatus": 1
}
]
}
Error Codes
| Error Code | Error Description | Recommended Action |
|---|---|---|
| 110008 | Failed to start the app | Restart the cloud machine and try starting the app again |
Stop App
Perform the operation of stopping an app on an instance based on the instance ID and app package name.
API Endpoint
/vcpcloud/api/padApi/stopApp
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| pkgName | xxx.test.com | String | Yes | Package Name |
| padCodes | String[] | Yes | Instance IDs | |
| ├─ | AC22010020062 | String | Yes | Instance ID |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status Code |
| msg | success | String | Response Message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | Data List | |
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22010020062 | String | Instance ID |
| ├─vmStatus | 1 | Integer | Instance Online Status (0: Offline; 1: Online) |
Request Example
{
"padCodes": [
"AC22010020062"
],
"pkgName": "xxx.test.com"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC22010020062",
"vmStatus": 1
}
]
}
Error Codes
| Error Code | Error Description | Suggested Action |
|---|---|---|
| 110010 | Failed to stop app | Restart the cloud machine and close the app |
Application Restart
Restart an application on an instance based on the instance ID and application package name.
API Endpoint
/vcpcloud/api/padApi/restartApp
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| pkgName | xxx.test.com | String | Yes | Package name |
| padCodes | String[] | Yes | Instance IDs | |
| ├─ | AC22010020062 | String | Yes | Instance ID |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | Response data | |
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC22010020062 | String | Instance ID |
| ├─ vmStatus | 1 | Integer | Instance online status (0: Offline; 1: Online) |
Request Example
{
"padCodes": [
"AC22010020062"
],
"pkgName": xxx.test.com
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC22010020062",
"vmStatus": 1
}
]
}
Error Codes
| Error Code | Error Description | Suggested Action |
|---|---|---|
| 110009 | Failed to stop app | Restart the cloud machine and close the app |
Error Codes
| Error Code | Description | Suggested Action |
|---|---|---|
| 110009 | Application restart failed | Restart the cloud machine and then start the application |
Instance installed application list query
Query the instance installed application list information.
API Address:
/vcpcloud/api/padApi/listInstalledApp
Request Method:
POST
Request Data Type:
application/json
Request Body Parameters:
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | Instance identifier list | |
| ├─ | AC22010020062 | String | Yes | Instance identifier |
| appName | String | 否 | Application name |
Response Parameters:
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1713773577581 | Long | Timestamp |
| data | Object[] | ||
| ├─ padCode | AC22010020062 | String | Instance ID |
| ├─ apps | Object[] | Application list | |
| │ ├─ appName | TapTap | String | Application name |
| │ ├─ packageName | com.taptap.global | String | Application package name |
| │ ├─ versionName | 3.49.0-full.100000 | String | Application version name |
| │ ├─ versionCode | 349001000 | String | Application version code |
| │ ├─ appState | 0 | Integer | 0 Completed 1 Installing 2 Downloading |
Request Example
{
"padCodes": ["AC32010780841"],
"appName": null
}
Response Example
{
"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
}
Task Management
Instance Operation Task Details
Query the detailed execution result of a specified instance operation task.
API Address:
/vcpcloud/api/padApi/padTaskDetail
Request Method:
POST
Request Data Type:
application/json
Request Body Parameters:
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| taskIds | Integer[] | Yes | List of task IDs | |
| ├─ taskId | 1 | Integer | Yes | Task ID |
Response Parameters:
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | Subtask list details | |
| ├─ taskId | 1 | Integer | Subtask ID |
| ├─ padCode | VP22020020793 | String | Instance identifier |
| ├─ taskStatus | 2 | String | Task status (-1: all failed; -2: partial failure; -3: canceled; -4: timeout; 1: pending execution; 2: executing; 3: completed) |
| ├─ endTime | 1713429401000 | Long | Subtask end timestamp |
| ├─ taskContent | “” | String | Task content |
| ├─ taskResult | “” | String | Task result |
| ├─ errorMsg | “” | String | Error message |
Request Example
{
"taskIds":[1,2]
}
Response Example
{
"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
}
]
}
File Task Details
Query the detailed execution result of a specified file task.
API Address:
/vcpcloud/api/padApi/fileTaskDetail
Request Method:
POST
Request Data Type:
application/json
Request Body Parameters:
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| taskIds | Integer[] | Yes | List of task IDs | |
| ├─ taskId | 1 | Integer | Yes | Task ID |
Response Parameters:
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | Task list details | |
| ├─ taskId | 1 | Integer | Subtask ID |
| ├─ appId | 134 | Long | Application ID |
| ├─ fileUniqueId | e2c07491309858c5cade4bfc44c03724 | String | Unique file identifier |
| ├─ fileName | xx.apk | String | File name |
| ├─ taskStatus | 2 | Integer | Task status (-1: all failed; -2: partial failure; -3: canceled; -4: timeout; 1: pending execution; 2: executing; 3: completed) |
| ├─ endTime | 1713429401000 | Long | Subtask end timestamp |
Request Example
{
"taskIds":[
1,2
]
}
Response Example
{
"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
}
]
}
Cloud Phone Management
Create Cloud Phone
Create a new cloud phone. (Note that the purchased product package must be available on the web platform, otherwise the purchase will fail.)
API Endpoint
/vcpcloud/api/padApi/createMoneyOrder
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| androidVersionName | Android13 | String | Yes | Android version: Android10、Android13, Android14 |
| goodId | 1 | Integer | Yes | Product ID (corresponding to the Product ID value of SKU Package List) |
| goodNum | 1 | Integer | Yes | Product quantity |
| autoRenew | true | Boolean | Yes | Whether to auto-renew (enabled by default) |
| equipmentId | 106626,106627 | String | Yes | Renewal device IDs (comma separated for multiple devices) |
| countryCode | CN | String | No | Country code, used to specify the region of the cloud phone |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object[] | Data list | |
| ├─ id | 7644 | Integer | Unique data identifier |
| ├─ orderId | VMOS-CLOUD173630666722957907 | String | Order number |
| ├─ equipmentId | 106662 | Integer | Equipment ID |
| ├─ createTime | 2025-01-08 11:24:31 | String | Creation time |
| ├─ creater | 14114 | String | Creator |
| ts | 1736306672346 | Long | Timestamp |
Request Example
{
"androidVersionName": "Android13",
"goodId": 1,
"goodNum": 1,
"autoRenew": true
}
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"id": 7644,
"orderId": "VMOS-CLOUD173630666722957907",
"equipmentId": 106662,
"createTime": "2025-01-08 11:24:31",
"creater": "14114"
}
],
"ts": 1736306672346
}
Activate Cloud Phone with Activation Code
Batch-activate cloud phones using activation codes. Submit a list of activation codes and immediately get a batch number (batchId); cloud phones are created asynchronously in the background and belong to the caller's account once activated. Activation codes that cannot be used are returned in failCodes. (The product package corresponding to the activation code must exist and be valid on the web platform, otherwise activation will fail.)
API Endpoint
/vcpcloud/api/padApi/activateByCode
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| activeCodeList | ["ABCD-1234-EFGH-5678"] | String[] | Yes | List of activation codes, multiple allowed |
| countryCode | HK | String | No | Country/region code. Defaults to HK if not provided |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736306672346 | Long | Timestamp |
| data | Object | Data | |
| ├─ batchId | 100001_1736306672346 | String | Batch number, used to query activation progress |
| ├─ failCodes | [] | String[] | Activation codes that cannot be used |
Request Example
{
"activeCodeList": ["ABCD-1234-EFGH-5678"],
"countryCode": "HK"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736306672346,
"data": {
"batchId": "100001_1736306672346",
"failCodes": []
}
}
Query Batch Activation Progress
Query the progress of a batch activation task submitted via activateByCode. Returns the overall status, the number of activation codes succeeded/failed/in progress, the number of activated devices, and per-code details.
API Endpoint
/vcpcloud/api/padApi/queryActivationBatch
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| batchId | 100001_1736306672346 | String | Yes | Batch number returned by activateByCode |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736306672346 | Long | Timestamp |
| data | Object | Data | |
| ├─ batchId | 100001_1736306672346 | String | Batch number |
| ├─ taskStatus | 2 | Integer | Overall status: 0-pending, 1-in progress, 2-done, -1-failed |
| ├─ total | 2 | Integer | Total number of activation codes |
| ├─ successCount | 1 | Integer | Number of successfully activated codes |
| ├─ failCount | 0 | Integer | Number of failed codes |
| ├─ processingCount | 1 | Integer | Number of codes in progress |
| ├─ activatedDeviceCount | 1 | Integer | Number of activated devices |
| ├─ list | Object[] | Per-code details | |
| ├─├─ activeCode | ABCD-1234-EFGH-5678 | String | Activation code |
| ├─├─ status | 2 | Integer | Code status: 0-pending, 1-activating, 2-success, 3-failed |
| ├─├─ failMsg | String | Failure reason |
Request Example
{
"batchId": "100001_1736306672346"
}
Response Example
{
"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": ""
}
]
}
}
Cloud Phone List
Cloud phone list.
API Endpoint
/vcpcloud/api/padApi/userPadList
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| padCode | null | String | No | Instance code |
| equipmentIds | Integer[] | No | Array of equipment IDs |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1736235894274 | Long | Timestamp |
| data | Object[] | Data list | |
| ├─ padCode | AC32010180421 | String | Cloud phone code |
| ├─ deviceIp | 172.30.5.43 | String | Cloud phone physical machine IP |
| ├─ padIp | 10.254.21.225 | String | Cloud phone virtual IP |
| ├─ cvmStatus | 100 | Integer | Cloud phone status (100 - normal, 101 - capturing screenshot, 102 - restarting, 103 - resetting, 104 - abnormal) |
| ├─ screenshotLink | https://XXXXXX.png | String | Cloud phone screenshot link |
| ├─ equipmentId | 106626 | Integer | Equipment ID |
| ├─ userId | 14114 | Integer | User ID |
| ├─ status | 1 | Integer | Device status |
| ├─ padName | V08 | String | Cloud phone display name |
| ├─ bootTime | 1735643626263 | Long | Cloud phone usage time |
| ├─ cumulativeUseTime | null | Object | Total device usage time |
| ├─ lastBackupTime | null | Object | Last backup time |
| ├─ maintainContent | null | Object | Maintenance content |
| ├─ goodId | 1 | Integer | Product ID |
| ├─ goodName | i18n_Android13-V08 | String | Product name |
| ├─ signExpirationTime | 2025-01-31 19:13:46 | String | Signed cloud phone expiration time |
| ├─ signExpirationTimeTamp | 1738322026000 | Long | Signed cloud phone expiration timestamp |
| ├─ supplierType | 5 | String | Supplier type |
| ├─ androidVersionAvatar | https://XXXX.png | String | Android version avatar |
| ├─ configName | V08 | String | Product model name |
| ├─ androidVersionAvatar2 | https://XXX.png | String | Android version avatar 2 |
| ├─ androidVersionAvatar3 | https://XXX.png | String | Android version avatar 3 |
| ├─ androidVersion | 13 | String | Android version |
| ├─ authorizedUserId | null | Object | Authorized user ID |
| ├─ authorizedExpirationTime | null | Object | Authorization expiration time |
| ├─ authorizedExpirationTimeTamp | null | Object | Authorization expiration timestamp |
| ├─ changeConfig | 1 | Integer | Support for configuration change (0 - no, 1 - yes) |
| ├─ createTime | 2024-12-31 19:13:46 | String | Creation time |
| ├─ proxyIp | null | Object | Proxy IP address |
| ├─ remark | String | Remark | |
| ├─ proxyId | null | Object | Proxy IP information |
| ├─ ipAddress | null | Object | IP address location |
| ├─ publicIp | null | Object | Public IP |
| ├─ groupSort | null | Object | Group sorting order |
Cloud Phone Status
| Status Code | Description |
|---|---|
| 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 |
Request Example
{
"padCode": null,
"equipmentIds": [
106626
]
}
Response Example
{
"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
}
]
}
Cloud Phone Information Query
Query cloud phone information.
API Endpoint
/vcpcloud/api/padApi/padInfo
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| padCode | AC32010180421 | String | Yes | Instance ID |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| msg | success | String | Response Message |
| code | 200 | Integer | Status Code |
| data | Object | Response Data | |
| ├─ explain | English | String | Language - Explanation |
| ├─ simCountry | SG | String | SIM Card Country |
| ├─ country | SG | String | Country |
| ├─ padCode | AC32010180421 | String | Instance ID |
| ├─ padType | V08 | String | Device Model |
| ├─ bluetoothAddress | 3A:1F:4B:9C:2D:8E | String | Bluetooth Address |
| ├─ initializationData | {"explain":"English", ...} | String | Device Information |
| ├─ latitude | 1.3398 | String | Latitude |
| ├─ ipAddress | Hong Kong | String | IP Address |
| ├─ timeZone | Asia/Singapore | String | Time Zone |
| ├─ publicIp | 192.169.96.14 | String | Public IP |
| ├─ phoneNumber | +6510633153 | String | Virtual Phone Number |
| ├─ androidVersion | Android13 | String | Android Version |
| ├─ wlanMac | 4c:7f:11:2f:a6:cc | String | WLAN MAC Address |
| ├─ padName | V08 | String | Pad Name |
| ├─ simIso | M1 | String | SIM Card ISO |
| ├─ longitude | 103.6967 | String | Longitude |
| ├─ operatorNumeric | 52503 | Integer | Operator Number |
| ├─ padImei | 525036719631842 | String | IMEI |
| ts | 1736239152927 | Long | Timestamp |
Request Example
{
"padCode": null
}
Response Example
{
"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
}
SKU Package List
Get the SKU package list.
API Endpoint
/vcpcloud/api/padApi/getCloudGoodList
Request Method
GET
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| androidVersion | 13 | Integer | no | androidVersion(optional, default: Android 13) |
| goodIds | 74,75 | String | no | Filter by SKU IDs, comma-separated, up to 50; omit to return all |
Request Data Type
application/json
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1770820211714 | Long | Timestamp (milliseconds) |
| data | Object | Response body | |
| ├─ configs | Array[Object] | Configuration list (array of device configurations) | |
| │ ├─ configName | Samsung Galaxy A53 | String | Configuration name (display name) |
| │ ├─ sellOutFlag | false | Boolean | Whether sold out |
| │ ├─ defaultSelection | false | Boolean | Whether default selected |
| │ ├─ custom | 1 | Integer | Whether custom configuration (1 = yes) |
| │ ├─ match | false | Boolean | Whether matched (specific meaning defined by business logic) |
| │ ├─ reorder | 0 | Integer | Sorting weight |
| │ ├─ configModel | Samsung | String | Device brand/model series |
| │ ├─ countryList | Array[Object] | Supported country/region list | |
| │ │ ├─ armCountryCode | HK | String | ARM cloud country/region code |
| │ │ ├─ sellOutFlag | false | Boolean | Whether sold out in this region |
| │ │ ├─ soutienTime | true | Boolean | Whether timing support is available (related to sell-out) |
| │ │ ├─ timingSellOutFlag | true | Boolean | Whether timed sell-out is enabled |
| │ │ ├─ armCountryMsg | Hong Kong | String | Region display name |
| │ ├─ timingSellOutFlag | true | Boolean | Whether the configuration is timed sell-out |
| │ ├─ androidVersion | 13 | String | Android version |
| │ ├─ configBlurb | Top technology, comparable to the ultimate experience of a real machine! | String | Configuration slogan/description |
| │ ├─ configId | 13 | Integer | Unique configuration ID |
| │ ├─ defaultTimeSelection | false | Boolean | Whether the time package is default selected |
| │ ├─ goodTimes | Array[Object] | List of available time packages | |
| │ │ ├─ oldGoodPrice | 105 | Number | Original price |
| │ │ ├─ supportSigning | true | Boolean | Whether contract/subscription is supported |
| │ │ ├─ defaultSelection | false | Boolean | Whether this package is default selected |
| │ │ ├─ iosGoodsId | String | iOS corresponding goods ID (empty means none) | |
| │ │ ├─ showContent | 1 day | String | Displayed duration text |
| │ │ ├─ whetherFirstPurchase | false | Boolean | Whether exclusive for first purchase |
| │ │ ├─ chargeType | 1 | Integer | Billing type |
| │ │ ├─ currentPrice | 100 | Number | Current price |
| │ │ ├─ reorder | 1 | Integer | Package sorting weight |
| │ │ ├─ goodPrice | 100 | Number | Package price |
| │ │ ├─ equipmentNumber | 1 | Integer | Number of devices per purchase |
| │ │ ├─ goodTime | 1440 | Integer | Duration (in minutes) |
| │ │ ├─ autoRenew | true | Boolean | Whether auto-renewal is enabled by default |
| │ │ ├─ recommendContent | 5% Off | String | Recommendation label/promotion text |
| │ │ ├─ id | 74 | Integer | Unique package ID (goodId) |
| │ ├─ serviceProviderType | 4 | Integer | Service provider type |
| └─ goodId | 1 | Integer |
Response Example
{
"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
}
Modify Real Machine ADI Template
Modify the cloud real machine ADI template by passing the cloud real machine template ID.
Prerequisites:
- The instance must be created as a cloud real machine type.
- The instance's specifications must match the target ADI template specifications.
- The instance's Android version must match the target ADI Android version.
API Endpoint
/vcpcloud/api/padApi/replaceRealAdiTemplate
Request Method
POST
Request Data Type
application/json
Request BODY Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| padCodes | String[] | Yes | List of instance codes | |
| ├─ | AC22010020062 | String | Yes | Instance Code |
| wipeData | false | Boolean | Yes | Whether to wipe data |
| realPhoneTemplateId | 186 | Long | Yes | Cloud Real Machine Template ID |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object | Response data | |
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC21020010001 | String | Instance Code |
| ├─ vmStatus | 1 | Integer | Instance online status (0: offline; 1: online) |
Request Example
{
"padCodes": ["AC32010250011"],
"wipeData": true,
"realPhoneTemplateId": 186
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null
}]
}
Cloud machine simulated touch
The cloud machine simulates the touch interface. The result can be queried through the Instance operation task details interface.
API Endpoint
/vcpcloud/api/padApi/simulateTouch
Request Method
POST
Request Data Type
application/json
Request BODY Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| padCodes | Object[] | Yes | Instance code that needs to trigger a click | |
| ├─ ACP250329MMRFCCT | String | Yes | Pad Code | |
| width | 1080 | Integer | Yes | Touch container width |
| height | 1920 | Integer | Yes | Touch container height |
| positions | Object[] | Yes | Touch coordinate collection | |
| ├─ actionType | 1 | Integer | Yes | Operation type (0: pressed; 1: lifted; 2: touching) |
| ├─ x | 100 | float | Yes | x coordinate of click |
| ├─ y | 100 | float | Yes | y coordinate of click |
| ├─ nextPositionWaitTime | 100 | Integer | Yes | When there are multiple sets of coordinates, the waiting interval in milliseconds to trigger the next set of click coordinates |
Response Example
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object | Response data | |
| ├─ padCode | ACP250329MMRFCCT | String | PadCode |
| ├─ taskId | 10004759 | Long | task id |
| ├─ vmStatus | 0 | Integer | Instance online status (0: offline; 1: online) |
Request Example
{
"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
}
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"taskId": 100059,
"padCode": "ACP250329MMRFCCT",
"vmStatus": 0
},
{
"taskId": 100060,
"padCode": "ACP250329MMRFCCT",
"vmStatus": 0
}
]
}
Android image version collection
Get the image set that can be upgraded on the current device
API Endpoint
/vcpcloud/api/padApi/imageVersionList
Request Method
POST
Request Data Type
application/json
Request BODY Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| padCode | ACP250329MMRFCCT | String | YES | PadCode |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| msg | success | String | response message |
| code | 200 | Integer | status code |
| data | Object[] | Data list | |
| ├─ nowImgId | img-25033129396 | String | Current device image version ID |
| ├─ hasNewVersion | false | Boolean | Whether there is an image version that can be upgraded. |
| ├─ imageVersionList | Object[] | Image version list | |
| ├─├─ imageId | img-25033129396 | String | Image version ID |
| ├─├─ version | 20250401 | Integer | Image version |
| ├─├─ versionName | 20250401 | String | Image version Name |
| ├─├─ publishType | released | String | Release type: released-stable, beta-latest |
| ├─├─ imageIllustrate | Fixed the issue that the Coffee Meet Begal app cannot activate location services | String | Mirror update instructions |
| ├─├─ romSdkint | 14 | Integer | Android version Code |
| ├─├─ romSdkName | Android 14 | String | Android release notes |
Request Example
{
"padCode": "ACP250329MMRFCCT"
}
Response Example
{
"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
}
Equipment Pre-sale Purchase
When stock is insufficient, you can use this API to pre-order a device (only applicable to cloud phone products with a rental period of 30 days or more). Once stock is replenished, the system will prioritize fulfilling pre-sale orders and automatically dispatch the devices. After the order is shipped, users will receive an email notification and an additional one-day usage bonus.
API Endpoint
/vcpcloud/api/padApi/createMoneyProOrder
Request Method
POST
Request Data Type
application/json
Request BODY Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| androidVersionName | Android13 | String | 是 | Android Version:Android10、Android13、Android14 |
| goodId | 1 | Integer | 是 | Product ID (corresponding to the Product ID value of SKU Package List) |
| goodNum | 1 | Integer | 是 | Product Number |
| autoRenew | true | Boolean | 是 | Whether to automatically renew (default closed) true-on, false-off |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | VMOS-CLOUD174290228048631464 | String | Pre-sale order number |
Request Example
{
"androidVersionName": "Android13",
"goodId": 75,
"goodNum": 1,
"autoRenew": true
}
Response Example
{
"msg": "success",
"code": 200,
"data": "VMOS-CLOUD174290228048631464",
"ts": 1736306672346
}
Query pre-sale order result details
Query the details of pre-sale order results. You can query by pre-sale order number, order status (1-to be shipped 2-shipped, empty default all)
API Endpoint
/vcpcloud/api/padApi/queryProOrderList
Request Method
POST
Request Data Type
application/json
Request BODY Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| proBuyStatus | 2 | Integer | No | 1-To be shipped 2-Shipment If empty, default to all |
| orderId | VMOS-CLOUD174290228048631464 | Integer | No | Pre-sale order number |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| msg | success | String | Response message | |
| code | 200 | Integer | Status code | |
| data | Object[] | Data list | ||
| ├─ proBuyOrderId | VMOS-CLOUD174290228048631464 | String | Pre-sale order number | |
| ├─ proBuyStatus | 2 | Integer | 1-To be shipped 2-Shipment | |
| ├─ proBuyNumber | 1 | Integer | Purchase quantity | |
| ├─ createTime | 2025-03-25 19:31:21 | String | creation time | |
| ├─ payTime | 2025-03-25 19:31:21 | String | payment time | |
| ├─ endTime | 2025-03-25 19:41:33 | String | Shipping time | |
| ├─ orderPrice | 1399 | Integer | Order Amount (cents) | |
| ├─ goodName | Samsung Galaxy A53 | String | Device name | |
| ts | 1736306672346 | Long | Timestamp |
Request Example
{
"proBuyStatus": "2",
"orderId": "VMOS-CLOUD174290228048631464"
}
Response Example
{
"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
}
SDK Token Issuance (by padCode)
Issue a temporary STS Token for user authentication to access the cloud mobile phone service (the token can only be used for the specified padCode).
Get SDK Temporary Token by padCode
API Endpoint
/vcpcloud/api/padApi/stsTokenByPadCode
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| padCode | AC32010230001 | String | Yes | Instance ID (padCode) |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object | Data list | |
| ├─ token | 18df5803-48ce-4b53-9457-6a15feb1daca | String | SDK communication token |
Request Example
{"padCode":"AC32010230001"}
Response Example
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"token": "18df5803-48ce-4b53-9457-6a15feb1daca"
}
}
Clear SDK Authorization Token
API Endpoint
/vcpcloud/api/padApi/clearStsToken
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Parameter Type | Required | Description |
|---|---|---|---|---|
| token | 123 | String | Yes | The token to be cleared |
Response Parameters
| Parameter Name | Example Value | Parameter Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object | Data list |
Request Example
{"token":1234}
Response Example
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": null
}
Query padCode Change Records {#query-padcode-change-records}
Query padCode change records for devices owned by the current user
Endpoint URL
/vcpcloud/api/padApi/queryPadIdChangeRecords
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| queryDate | 2026-04-15 | String | No | Calendar day to query (format yyyy-MM-dd, Asia/Shanghai). If omitted, the last 3 calendar days (inclusive of today) are returned. Future dates are rejected |
Response Parameters
| Parameter | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1743676563784 | Long | Timestamp |
| data | Object[] | Change records, ordered by update_time desc | |
| ├─ oldPadCode | AC32010601132 | String | padCode before the change |
| ├─ newPadCode | AC32010702556 | String | padCode after the change (current device) |
Request Example
{
"queryDate": "2026-04-15"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"oldPadCode": "AC32010601132",
"newPadCode": "AC32010702556"
}
]
}
Cloud Space
Query User File List
Endpoint URL
/vcpcloud/api/padApi/selectFiles
Request Method
POST
Request Data Type
application/json
Request Body Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | Response body | |
| ├─appName | Kuaishou Lite | String | File name |
| ├─downloadUrl | https://file.vmoscloud.com/userFile/fd31c45b5a7c3e6249c7d1b1dca6ff77.apk | String | File download link |
| ├─packageName | com.kuaishou.nebula | String | APK package name, only for apk files |
| ├─fileId | 479472 | Integer | Cloud space file ID |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"appName": "Kuaishou Lite",
"downloadUrl": "https://file.vmoscloud.com/userFile/fd31c45b5a7c3e6249c7d1b1dca6ff77.apk",
"packageName": "com.kuaishou.nebula",
"fileId": 479472
}
],
"ts": 1746711010676
}
Delete Cloud Space Files
Endpoint URL
/vcpcloud/api/padApi/deleteOssFiles
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Required | Description |
|---|---|---|---|---|
| files | Integer[] | Yes | Collection of unique cloud space file IDs | |
| ├─ | 479452 | Integer | Yes | Unique cloud space file ID |
| urls | String[] | No | Collection of cloud space file download links | |
| ├─ | 479452 | String | No | Cloud space file download link |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
Request Example
{
"files": [479452]
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1746694236404
}
Upload File to Cloud Space
Upload file to cloud space and get download link
Endpoint URL
/vcpcloud/api/padApi/uploadFile
Request Method
POST
Request Data Type
multipart/form-data
body Note: it is form, not json
Request form-data Parameters
| Parameter Name | Example Value | Data Type | Required | Description |
|---|---|---|---|---|
| file | FourSeasonsPhilly.webp | File | Yes | File to upload |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | Response body | |
| ├─downloadUrl | https://file.vmoscloud.com/userFile/83bb260163f78e6928c1fe5acda.webp | String | File download link |
Request Example
curl --request POST \
--url /vcpcloud/api/padApi/uploadFile \
--header 'accept-language: zh' \
--header 'content-type: multipart/form-data' \
--form 'file=@C:\FourSeasonsPhilly.webp'
Response Example
{
"msg": "success",
"code": 200,
"data": {
"downloadUrl": "https://file.vmoscloud.com/userFile/83bb260163f78e6928c1fe5acda.webp"
},
"ts": 1746704760360
}
Purchase Cloud Space Expansion
Purchase cloud space expansion
Endpoint URL
/vcpcloud/api/padApi/buyStorageGoods
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Required | Description |
|---|---|---|---|---|
| storageId | 1 | Integer | Yes | Unique ID of cloud space expansion product |
| autoRenewOrder | 0 | Integer | Yes | Auto-renew? 0-No 1-Yes |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1745569714501 | Long | Execution Timestamp |
Request Example
{
"storageId": 1,
"autoRenewOrder": 0
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
Storage Resource Package List
List of storage resource packages after shutdown backup
Endpoint URL
/vcpcloud/api/padApi/vcTimingBackupList
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object[] | Resource package collection info | |
| ├─ backupId | ZSC250425LIOJY2V-ACN250424VU2F6LB | String | Backup resource package ID |
| ├─ padCode | ACN250424VU2F6LB | String | Device belonging to the backup package |
| ├─ beginTime | 2025-04-25 16:28:48 | String | Backup time |
| ├─ remark | Time:20250425162833 | String | Backup description. If a remark is passed during backup, the custom one is used; otherwise, the default is the backup time |
| ├─ padName | V06 | String | Custom device name, used to quickly distinguish and find resource packages |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"backupId": "ZSC250425LIOJY2V-ACN250424VU2F6LB",
"padCode": "ACN250424VU2F6LB",
"beginTime": "2025-04-25 16:28:48",
"remark": "Time:20250425162833",
"padName": "V06"
}
],
"ts": 1745570858994
}
Cloud Space Product List
Cloud space product list
Endpoint URL
/vcpcloud/api/padApi/getVcStorageGoods
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object[] | Resource package collection info | |
| ├─ oldPrice | 169 | Long | Original price |
| ├─ payPrice | 169 | Long | Sales price after discount |
| ├─ subscriptTips | 15% off | String | Discount description |
| ├─ useTime | 43200 | Long | Valid minutes |
| ├─ storageCapacity | 107374182400 | Long | Corresponding cloud space size |
| ├─ storageId | 1 | Integer | Cloud space product unique ID |
| ├─ storageName | 100GB/Month | String | Cloud space product description |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"oldPrice": 199,
"payPrice": 169,
"subscriptTips": "15% off",
"useTime": 43200,
"reorder": 1,
"storageCapacity": 107374182400,
"selected": true,
"storageId": 1,
"storageName": "100GB/Month"
}
],
"ts": 1745572789763
}
Aggregate Renewal of Cloud Space Products
Aggregate renewal of cloud space products
Endpoint URL
/vcpcloud/api/padApi/renewsStorageGoods
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Required | Description |
|---|---|---|---|---|
| autoRenewOrder | 0 | Integer | Yes | Auto-renew? 0-No 1-Yes |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1745569714501 | Long | Execution Timestamp |
Request Example
{
"autoRenewOrder": 0
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
Delete Backup Resource Package Data
Delete backup resource package data
Endpoint URL
/vcpcloud/api/padApi/deleteUploadFiles
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Required | Description |
|---|---|---|---|---|
| String[] | Yes | Collection of resource package IDs to delete | ||
| ├─ | ZSC250425LIOJY2V-ACN250424VU2F6LB | String | Yes | Resource package ID to delete |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1745569714501 | Long | Execution Timestamp |
Request Example
[
"ZSC250425LIOJY2V-ACN250424VU2F6LB"
]
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
Cloud Space Auto-renew Aggregate Product Switch
Cloud space auto-renew aggregate product switch
Endpoint URL
/vcpcloud/api/padApi/updateRenewStorageStatus
Request Method
GET
Request Data Type
application/json
Request Query Parameters
| Parameter Name | Example Value | Data Type | Required | Description |
|---|---|---|---|---|
| renewStorageStatus | false | String | Yes | Auto-renew? false-No true-Yes |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1745569714501 | Long | Execution Timestamp |
Request Example
/vcpcloud/api/padApi/updateRenewStorageStatus?renewStorageStatus=false
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745569714501
}
Query Cloud Space Renewal Details
Query cloud space renewal details
Endpoint URL
/vcpcloud/api/padApi/selectAutoRenew
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object[] | Renewal information | |
| ├─ renewStorageStatus | 0 | Integer | Whether auto-renew is enabled 0-No 1-Yes |
| ├─ storageSize | 214748364800 | Long | Total size of renewed cloud space |
| ├─ storageAmount | 338 | Long | Renewal amount required (cents) |
| ├─ signExpirationTime | 2025-05-10 19:22:35 | String | Expiration Time |
Response Example
{
"msg": "success",
"code": 200,
"data": {
"renewStorageStatus": 0,
"storageSize": 214748364800,
"storageAmount": 338,
"signExpirationTime": "2025-05-10 19:22:35"
},
"ts": 1745573906608
}
Cloud Space Remaining Storage Capacity
Cloud space remaining storage capacity
Endpoint URL
/vcpcloud/api/padApi/getRenewStorageInfo
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object | Resource package collection info | |
| ├─ accountBalance | 100 | Long | Wallet balance (cents) |
| ├─ storageCapacityLimit | 112742891520 | Long | Available space size 1GB = 1024 x 1024 x 1024 Byte |
| ├─ storageUsedAvail | 17325201433 | Long | Used space size |
| ├─ other | Object | Additional space details | |
| ├─├─ signExpirationTime | 2025-05-10 19:22:35 | String | Additional space expiration time |
| ├─├─ storageAmount | 169 | Long | Renewal amount required for additional space (cents) |
| ├─├─ otherStorageSize | 107374182400 | Long | Additional space size |
Response Example
{
"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
}
List Pad Backup IDs {#list-pad-backup-ids}
List all available cloud-disk backup IDs owned by the current OpenAPI user, ordered by create time descending. The returned IDs can be fed into the batch clone endpoint below.
Endpoint URL
/vcpcloud/api/padApi/listPadBackupIds
Request Method
POST
Request Data Type
application/json
Request Body Parameters
None
Response Parameters
| Parameter | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1743676563784 | Long | Timestamp |
| data | String[] | List of all available backupIds owned by the caller | |
| ├─ | - | String | A single backup ID |
Response Example
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
"...",
"..."
]
}
Create Pad Backups {#create-pad-backups}
Batch create cloud-disk backups for the given cloud phones. The call is asynchronous and returns immediately; use the batchId in the response to track task progress.
Constraints:
- Up to 50 cloud phones per call.
- Only one in-flight backup task per user at a time.
- Target cloud phones must be in a healthy running state.
- Target devices must be owned or authorized by the caller.
- Remaining storage quota must be at least 16GB × backup pad count.
Endpoint URL
/vcpcloud/api/padApi/addBackup
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Type | Required | Description |
|---|---|---|---|---|
| vcPadBackupList | Object[] | Yes | Cloud phones to back up (1 to 50 entries) | |
| ├─ padCode | AC32010601132 | String | Yes | Pad code |
Response Parameters
| Parameter Name | Example Value | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1743676563784 | Long | Timestamp |
| data | Object | Response body | |
| ├─ batchId | 100001_1762424603654 | String | Batch ID, can be used to query task status later |
| ├─ padCount | 2 | Integer | Number of pads actually queued (after filtering out offline / unauthorized / unowned ones) |
Request Example
{
"vcPadBackupList": [
{ "padCode": "AC32010601132" },
{ "padCode": "AC32010601133" }
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": {
"batchId": "100001_1762424603654",
"padCount": 2
}
}
Error Codes
| Code | Description | Suggestion |
|---|---|---|
| 1002 | User ID cannot be empty | Check that the signing access key is valid |
| 1014 | Operation too fast, please retry shortly | No valid pad remained after filtering (offline / not owned / unauthorized); adjust the request and retry |
| 1018 | A task is already in progress, please do not resubmit | The user already has an in-flight backup task; wait for it to finish |
| 1104 | Required parameter is null | vcPadBackupList is empty or exceeds the 50 entry limit |
| 40016 | Insufficient cloud-disk storage, at least GB more needed | Upgrade the storage plan or delete existing backups and retry |
Clone Pad Backup to Multiple Pads {#clone-pad-backup-to-multiple-pads}
Batch clone a cloud-disk backup onto multiple cloud phones. The call is asynchronous and returns immediately.
Constraints:
- Only one in-flight clone task per user at a time.
- Target cloud phones must be in a healthy running state.
- Target devices must be owned or authorized by the caller.
- Source backup and target cloud phone product specs must match.
Endpoint URL
/vcpcloud/api/padApi/clonePadBackup
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| vcPadBackupList | Object[] | Yes | Source backup list (at least 1 item) | |
| ├─ backupId | bkp-AAA-1 | String | Yes | Cloud-disk backup ID (from listPadBackupIds) |
| pads | Object[] | Yes | Target cloud phone list (at least 1 item) | |
| ├─ padCode | AC32010601132 | String | Yes | Cloud phone padCode |
Response Parameters
| Parameter | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1743676563784 | Long | Timestamp |
| data | null | Object | No business payload; task submitted async |
Request Example
{
"vcPadBackupList": [
{ "backupId": "bkp-AAA-1" }
],
"pads": [
{ "padCode": "AC32010601132" },
{ "padCode": "AC32010601133" }
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": null
}
Query Backup Batch Progress {#query-backup-batch}
Query backup progress by batchId. Returns per-pad status and backupId (available once status ≥ 1). Use the batchId returned by addBackup to poll this endpoint.
Endpoint URL
/vcpcloud/api/padApi/queryBackupBatch
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| batchId | 100001_1762424603654 | String | Yes | Batch ID returned by addBackup |
Response Parameters
| Parameter | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1743676563784 | Long | Timestamp |
| data | Object | Response body | |
| ├─ batchId | 100001_1762424603654 | String | Batch ID |
| ├─ taskStatus | 1 | Integer | Batch status: 0 pending / 1 running / 2 done / -1 all failed |
| ├─ deviceCount | 3 | Integer | Total pads in this batch |
| ├─ successCount | 1 | Integer | Pads that succeeded |
| ├─ failCount | 0 | Integer | Pads that failed |
| ├─ items | Array | Per-pad details | |
| │ ├─ padCode | AC32010601132 | String | Cloud phone padCode |
| │ ├─ status | 2 | Integer | Pad backup status: 0 pending / 1 running / 2 success / 3 failed |
| │ ├─ backupId | bkp-AC...-1 | String | Backup ID; available when status ≥ 1 |
| │ ├─ failMsg | null | String | Failure reason; present when status = 3 |
| │ ├─ createTime | 2026-05-14T18:00:00 | String | Submission time |
Request Example
{
"batchId": "100001_1762424603654"
}
Response Example
{
"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"
}
]
}
}
Static Residential Service
Get Static Residential Product List
Endpoint URL
/vcpcloud/api/padApi/proxyGoodList
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─proxyGoodName | 5 days | String | Product Name |
| ├─proxyGoodId | 1 | Integer | Unique Product ID |
| ├─proxyGoodPrice | 200 | Integer | Product price (cents) |
| ├─proxyGoodType | 2 | Integer | Proxy product type: 0-General 1-socket5 2-http 3-https |
| ├─proxyGoodTime | 7200 | Integer | Product duration (minutes) |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"proxyGoodName": "5 days",
"proxyGoodId": 4,
"proxyGoodTime": 7200,
"proxyGoodType": 2,
"proxyGoodPrice": 200
}
],
"ts": 1747734076860
}
Get Supported Countries/Cities for Static Residential Products
Endpoint URL
/vcpcloud/api/padApi/getProxyRegion
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | ||
| ├─country | cn | String | Supported country code |
| ├─countryZh | China | String | Supported country description |
| ├─countryId | 15 | Integer | Unique country ID |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"country": "cn",
"countryZh": "China",
"countryId": 15
},
],
"ts": 1747734076860
}
Purchase Static Residential Product
Endpoint URL
/vcpcloud/api/padApi/createProxyOrder
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| proxyGoodId | 4 | Integer | Unique ID of the corresponding static residential product |
| region | cn | String | Region of static residential proxy-country |
| num | 1 | Integer | Purchase quantity |
| country | cn | String | Country of static residential proxy-country |
| proxyAddress | China | String | Address of static residential proxy-countryZh |
| autoRenew | true | Boolean | Enable auto-renew false-off true-on |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
Request Example
{
"proxyGoodId": 4,
"region": "cn",
"num": 1,
"country": "cn",
"proxyAddress": "China",
"autoRenew": true
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
Static Residential Proxy Order Details
Endpoint URL
/vcpcloud/api/padApi/selectProxyOrderList
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| page | 1 | Integer | Page number |
| rows | 10 | Integer | Items per page |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object | ||
| ├─total | 1 | Integer | Total count |
| ├─size | 10 | Integer | Number of items per page |
| ├─pages | 1 | Integer | Total pages |
| ├─records | Object[] | Order information | |
| ├─├─buyNumber | 1 | String | Purchase quantity |
| ├─├─goodName | New Purchase5-day agency product | String | Product name |
| ├─├─createTime | 1747734544000 | Long | Creation time |
| ├─├─orderId | VMOS-CLOUD174773454378660285 | String | Order ID |
| ├─├─payPrice | 200 | String | Payment amount |
| ├─├─orderStatus | vpn | String | Order status 0-unpaid 1-paid |
| ├─├─orderPrice | cn | String | Order amount |
| ├─├─goodPrice | Sichuan | String | Unit price |
| ├─├─goodNum | Sichuan | String | Product quantity |
Request Example
{
"page": 1,
"rows": 10
}
Response Example
{
"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
}
Static Residential Proxy Renewal
Endpoint URL
/vcpcloud/api/padApi/createRenewProxyOrder
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| proxyGoodId | 4 | Integer | Unique ID of the corresponding static residential product |
| proxyIps | 154.81.41.161,154.81.41.162 | String | IPs to renew, separated by commas |
| autoRenew | true | Boolean | Enable auto-renew false-off true-on |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
Request Example
{
"proxyGoodId": 4,
"proxyIps": "154.81.41.161,154.81.41.162",
"autoRenew": true
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
Query Static Residential Proxy List
Endpoint URL
/vcpcloud/api/padApi/queryProxyList
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| current | 1 | Integer | Page number |
| size | 10 | Integer | Items per page |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object | ||
| ├─total | 1 | Integer | Total count |
| ├─size | 10 | Integer | Number of items per page |
| ├─pages | 1 | Integer | Total pages |
| ├─records | Object[] | Order information | |
| ├─├─proxyStatus | 1 | Integer | Proxy status: 0-checking 1-normal -1-check failed 2-pending check |
| ├─├─proxyGoodId | 4 | String | Product ID |
| ├─├─proxyName | 154.81.40.200 | Long | Proxy name |
| ├─├─proxyUseNumber | 0 | String | Number of mounted cloud phones |
| ├─├─proxyType | 1 | String | Proxy type: 1-Socks5 2-http 3-https |
| ├─├─proxyHost | 154.81.40.200 | String | Order status 0-unpaid 1-paid |
| ├─├─proxyPort | 63007 | String | Proxy port (odd-socks5 even-http) 63007 (63008) |
| ├─├─password | xxxxxx | String | Proxy password |
| ├─├─proxyCountry | CN | String | Proxy country |
| ├─├─expectedExpireTime | 1748166543 | String | Expiration timestamp |
| ├─├─expireTime | 1748166543 | String | Expiration timestamp (same as above, use expireTime) |
| ├─├─account | xxxxxx | String | Username |
| ├─├─proxyId | 86930 | String | Proxy unique ID (used for mounting cloud phone) |
Request Example
{
"current": 1,
"size": 10
}
Response Example
{
"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
}
Dynamic Proxy Service
Query Dynamic Proxy Product List
Endpoint URL
/vcpcloud/api/padApi/getDynamicGoodService
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─goodName | 2GB | String | Product Name |
| ├─goodId | 1 | Integer | Product unique ID |
| ├─goodPrice | 1 | String | Product price |
| ├─protocolDescription | Github | String | Supported protocol info |
| ├─totalTraffic | Object[] | Traffic package size |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"goodName": "2GB",
"goodId": 1,
"goodPrice": 1000,
"protocolDescription": "HTTP(S)/SOCKS5",
"totalTraffic": 2048
}
],
"ts": 1740643153803
}
Query Dynamic Proxy Region List
Endpoint URL
/vcpcloud/api/padApi/getDynamicProxyRegion
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─CountryName | United Arab Emirates | String | Country Name |
| ├─CountryCode | AE | String | Country Code |
| ├─State | Object[] | Region list | |
| ├─├─city | Object[] | City list | |
| ├─├─├─ | Musaffahcity | String | City name |
| ├─├─name | Abudhabi | String | Region name |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"CountryName": "United Arab Emirates",
"CountryCode": "AE",
"State": [
{
"city": [
"Musaffahcity",
"Abudhabi"
],
"name": "Abudhabi"
},
],
}
],
"ts": 1740643153803
}
Get Dynamic Proxy Current Balance
Endpoint URL
/vcpcloud/api/padApi/queryCurrentTrafficBalance
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─accumulatedTraffic | 2048 | String | Total traffic |
| ├─remainingTraffic | 1024 | Object[] | Remaining traffic |
| ├─useTraffic | 1024 | Object[] | Used traffic |
Response Example
{
"msg": "success",
"code": 200,
"data": {
"accumulatedTraffic": 2048,
"remainingTraffic": 1024,
"useTraffic": 1024
},
"ts": 1740659529379
}
Query Supported Server Regions
Endpoint URL
/vcpcloud/api/padApi/getDynamicProxyHost
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─name | America Region (South America & North America) | String | Continent Name |
| ├─value | xxxxxxx:1234 | String | Continent Server Address |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"name": "America Region (South America & North America)",
"value": "xxxxxxx:1234"
}
],
"ts": 1740660551742
}
Purchase Dynamic Proxy Traffic Package
Endpoint URL
/vcpcloud/api/padApi/buyDynamicProxy
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| goodId | 1 | Integer | Unique ID of the corresponding dynamic traffic package |
| goodNum | 1 | Integer | Purchase quantity |
| autoRenewOrder | 1 | Integer | Enable auto-renew 0-off 1-on. When remaining traffic is less than 50MB, auto-renew is triggered |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
Request Example
{
"goodId": 1,
"goodNum": 1,
"autoRenewOrder": 0
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
Create Dynamic Proxy
Endpoint URL
/vcpcloud/api/padApi/createProxy
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| city | "" | String | City, pass "" if not selected |
| countryCode | AE | String | Country Code |
| goodNum | 1 | Integer | Purchase quantity |
| proxyHost | xxxxx:7778 | String | Continent website |
| proxyType | socks5 | String | Proxy type socks5 / http / https |
| proxyUseType | proxy | String | Mount type proxy / vpm |
| state | Abudhabi | String | Region, pass "" if not selected |
| time | 1 | String | Auto change ip frequency (minutes) Options: 5, 10, 15, 30, 45, 60, 90 |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object | Response body | |
| ├─id | 82750 | Integer | Proxy ID |
| ├─proxyHost | String | Dynamic proxy |
Request Example
{
"proxyHost": "xxxxx:7778",
"countryCode": "CN",
"state": "Sichuan",
"city": "Sichuan",
"time": 5,
"proxyType": "socks5",
"proxyUseType": "vpn"
}
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"id": 82750,
"proxyHost": "E44S5YaWP660_custom_zone_HK_st_Kowloon_city_sid_27165697_time_10"
}
],
"ts": 1760068573317
}
Query Dynamic Proxy List (Supports Pagination)
Endpoint URL
/vcpcloud/api/padApi/getProxys
Request Method
GET
Request Data Type
application/json
Request Query Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| page | 1 | Integer | Current page |
| rows | 10 | Integer | Items per page |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object | Status code | |
| ├─records | Object[] | Dynamic proxy information | |
| ├─├─id | 1 | String | Unique proxy ID |
| ├─├─proxyHost | xxxxxxx | String | Continent server domain |
| ├─├─proxyPort | 1234 | String | Continent server port |
| ├─├─userName | E44S5YaWP660_time_5 | String | Dynamic proxy username |
| ├─├─password | 1234 | String | Dynamic proxy password |
| ├─├─proxyType | socks5 | String | Dynamic proxy protocol type |
| ├─├─proxyUseType | vpn | String | Dynamic proxy mount type |
| ├─├─countryCode | cn | String | Country Code |
| ├─├─state | Sichuan | String | Region |
| ├─├─city | Sichuan | String | City |
| ├─├─time | 5 | Integer | Refresh frequency |
| ├─total | 1 | Integer | Proxy count |
| ├─size | 10 | Integer | Items per page |
| ├─pages | 1 | Integer | Total pages |
Response Example
{
"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
}
Query Dynamic Proxy Order List (Supports Pagination)
Endpoint URL
/vcpcloud/api/padApi/getDynamicProxyOrders
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| page | 1 | Integer | Current page |
| rows | 10 | Integer | Items per page |
| completeStartTime | 2025-02-27 23:20:36 | String | Payment start time |
| completeEndTime | 2025-02-28 23:20:36 | String | Payment end time |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object | Status code | |
| ├─records | Object[] | Dynamic proxy info | |
| ├─├─orderId | VMOS-CLOUD174066963648092563 | String | Platform unique ID |
| ├─├─orderPrice | 1000 | Integer | Order amount in cents |
| ├─├─payPrice | 1000 | Integer | Payment amount in cents |
| ├─├─createTime | 2025-02-27T23:20:36.000+0800 | String | Create Time |
| ├─├─completeTime | 2025-02-27T23:20:36.000+0800 | String | Payment Time |
| ├─├─orderStatus | 1 | Integer | Order status 0-unpaid 1-paid |
| ├─├─goodId | 1 | Integer | Product unique ID |
| ├─├─goodNum | 1 | Integer | Purchase quantity |
| ├─├─goodName | 2GB | String | Product Name |
| ├─├─goodPrice | 1000 | Integer | Product unit price |
| ├─├─goodSize | 2048 | Integer | Product traffic package size |
| ├─├─sumSize | 2048 | Integer | Total order traffic package size |
| ├─├─orderOtherInfo | Purchase 2GB traffic package, purchase quantity: 1 | String | Order description |
| ├─├─autoRenewOrder | 1 | Integer | Whether to enable renewal 1-on 0-off (Globally effective) |
| ├─total | 1 | Integer | Proxy count |
| ├─size | 10 | Integer | Items per page |
| ├─pages | 1 | Integer | Total pages |
Request Example
{
"page": 1,
"rows": 10,
"completeStartTime": "2025-02-27 23:20:36",
"completeEndTime": "2025-02-28 23:20:36"
}
Response Example
{
"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": "Purchase 2GB traffic package, purchase quantity: 1",
"autoRenewOrder": 0
}
],
"total": 2,
"size": 10,
"current": 1,
"pages": 1
},
"ts": 1740726141853
}
Create Dynamic Proxy
Endpoint URL
/vcpcloud/api/padApi/createProxy
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| city | "" | String | City, pass "" if not selected |
| countryCode | AE | String | Country Code |
| goodNum | 1 | Integer | Purchase quantity |
| proxyHost | xxxxx:7778 | String | Continent website |
| proxyType | socks5 | String | Proxy type socks5 / http / https |
| proxyUseType | proxy | String | Mount type proxy / vpm |
| state | Abudhabi | String | Region, pass "" if not selected |
| time | 1 | String | Auto change ip frequency (minutes) Options: 5, 10, 15, 30, 45, 60, 90 |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
Request Example
{
"proxyHost": "xxxxx:7778",
"countryCode": "CN",
"state": "Sichuan",
"city": "Sichuan",
"time": 5,
"proxyType": "socks5",
"proxyUseType": "vpn"
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
Configure Dynamic Proxy for Cloud Phone
Endpoint URL
/vcpcloud/api/padApi/batchPadConfigProxy
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| padCodes | String[] | Cloud phone collection | |
| ├─ | AC32010921223 | String | Cloud phone number |
| setProxyFlag | true | Boolean | Whether device proxies to cloud phone |
| proxyIds | [ 82750 ] | Array | Dynamic Proxy unique ID |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | 1cb0ba24-cdc2-47d3-909d-d7ea2ab10576 | String | Batch ID |
Request Example
{
"padCodes": [
"AC32010921223"
],
"setProxyFlag": true,
"proxyIds": [
82750
]
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860,
"data": "1cb0ba24-cdc2-47d3-909d-d7ea2ab10576"
}
Query Batch Cloud Phone Proxy Setting Task
Endpoint URL
/vcpcloud/api/padApi/selectBatchPadProxyTask
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| taskId | 1cb0ba24-cdc2-47d3-909d-d7ea2ab10576 | Integer | Batch ID, mounting proxy is an asynchronous operation, so need to wait 5s or loop query |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | [] | Array | Batch ID |
| ├─padCode | ACP250317BH33TR6 | String | Device number |
| ├─taskId | 994365372 | Long | Task ID, query result via cloud phone task |
Request Example
{
"taskId": "1cb0ba24-cdc2-47d3-909d-d7ea2ab10576"
}
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACP250317BH33TR6",
"taskId": 994365372
}
],
"ts": 1760102034102
}
Query Dynamic Proxy Auto-Renew Information
Endpoint URL
/vcpcloud/api/padApi/getDynamicProxyAutomaticRenewal
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─good_size | 2048 | Integer | Renewal traffic package size |
| ├─auto_renew_order | 1 | Integer | Whether auto-renew is enabled 0-off 1-on |
| ├─order_price | 199 | Integer | Amount to be deducted for auto-renew |
| ├─good_name | Traffic package | String | Auto-renew product name |
| ├─good_number | 1 | Integer | Auto-renew product quantity |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"good_size": 2048,
"auto_renew_order": 1,
"order_price": 199,
"good_name": "Traffic package",
"good_number": 1
}
],
"ts": 1745308893191
}
Set Dynamic Proxy Auto-Renew Switch
Endpoint URL
/vcpcloud/api/padApi/setAutoRenewSwitch
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| autoRenewOrder | 0 | Integer | Auto-renew switch 0-off 1-on |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
Request Example
{
"autoRenewOrder": 0
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
Delete Dynamic Proxy
Endpoint URL
/vcpcloud/api/padApi/delProxyByIds
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| ids | Integer[] | Collection of dynamic proxy IDs to delete | |
| ├─ | 1 | Integer | Dynamic proxy unique ID |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
Request Example
{
"ids": [
1
]
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
Email Verification Service
Purchase email and get verification codes for related services
Get Email Service List
Endpoint URL
/vcpcloud/api/padApi/getEmailServiceList
Request Method
GET
Request Data Type
application/json
Request Query Parameters
None
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─price | 0.01 | Float | Price |
| ├─stockNum | 300 | Integer | Remaining stock |
| ├─serviceId | 1 | String | Service list ID |
| ├─serviceName | Github | String | Service name |
| ├─items | Object[] | Sub-service list | |
| ├─├─serviceItemId | 1 | Integer | Sub-service unique ID (ID used when purchasing) |
| ├─├─serviceItemName | Github Register | String | Sub-service name |
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"price": 0.01,
"stockNum": 300,
"serviceId": 1,
"serviceName": "Github",
"items": [
{
"serviceItemId": 1,
"serviceItemName": "Github Register"
}
]
}
],
"ts": 1745825162018
}
Get Email Type and Remaining Stock
Endpoint URL
/vcpcloud/api/padApi/getEmailTypeList
Request Method
GET
Request Data Type
application/json
Request Query Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| serviceId | 1 | Integer | Corresponds to serviceItemId field |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1736922808949 | Integer | Timestamp |
| data | Object[] | Status code | |
| ├─price | 0.01 | Float | Price |
| ├─name | Outlook | String | Type name |
| ├─stockNum | 630 | Integer | Remaining stock |
| ├─id | 1 | Integer | Email type ID |
Request Example
{
"serviceId": "1"
}
Response Example
{
"msg": "success",
"code": 200,
"data": [
{
"price": 0.01,
"name": "Outlook",
"stockNum": 300,
"id": 1
}
],
"ts": 1745823575860
}
Create Email Purchase Order
Endpoint URL
/vcpcloud/api/padApi/createEmailOrder
Request Method
POST
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| serviceId | 1 | Integer | Corresponds to serviceItemId field |
| emailTypeId | 1 | Integer | Corresponds to ID field returned by /getEmailTypeList |
| goodNum | 1 | Integer | Purchase quantity |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| data | Object[] | Data list | |
| ├─ id | 7644 | Integer | Unique data identifier |
| ├─ orderId | VMOS-CLOUD173630666722957907 | String | Order ID |
| 106662 | Integer | Device ID | |
| ├─ createTime | 2026-02-27T10:08:47.372+0800 | String | Creation Time |
| ├─ creater | 14114 | String | Creator |
| ts | 1736922808949 | Integer | Timestamp |
Request Example
{
"serviceId": 1,
"emailTypeId": 1,
"goodNum": 1
}
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745823575860
}
Query Purchased Email List
When the verification code cannot be obtained through the refresh interface, you can query the result through: https://api.vmoscloud.com/vcpcloud/api/padApi/code?orderId= + outOrderId (external order number)
Endpoint URL
/vcpcloud/api/padApi/getEmailOrder
Request Method
GET
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| page | 1 | Integer | Required, pagination parameter, current page |
| size | 10 | Integer | Required, pagination parameter, items per page |
| serviceId | 1 | Integer | Optional, corresponds to serviceItemId field |
| yzxovmq | String | Optional, email fuzzy query | |
| status | 0 | Integer | Optional, email status 0-unused 1-receiving 2-used 3-expired |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1745835489149 | Long | Timestamp (milliseconds) |
| data | Object | Data object | |
| ├─ current | 1 | Integer | Current page number |
| ├─ total | 1 | Integer | Total records |
| ├─ pages | 1 | Integer | Total pages |
| ├─ size | 10 | Integer | Page size |
| ├─ records | Object[] | Data record list | |
| ├─├─ id | 1 | Long | Primary key ID |
| ├─├─ userId | 10667 | Long | User ID |
| yzxovmqi828@outlook.com | String | Email address | |
| ├─├─ emailStatus | 0 | Integer | Email status (0-unused) |
| ├─├─ emailTypeId | 1 | Integer | Email type ID |
| ├─├─ emailTypeName | Outlook | String | Email type name |
| ├─├─ emailServiceId | 2 | Integer | Email service provider ID |
| ├─├─ emailServiceName | Apple | String | Email service provider name |
| ├─├─ emailCode | 767170 | String | Email verification code |
| ├─├─ useSize | 1 | Integer | Usage count |
| ├─├─ orderId | VMOS-CLOUD174583355706782096 | String | System order number |
| ├─├─ outOrderId | 1916791090664861697 | String | External order number |
Request Example
/vcpcloud/api/vcEmailService/getEmailOrder?page=1&size=10&serviceId=2&email=yzxovmq&status=0
Response Example
{
"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
}
Refresh to Get Email Verification Code
This interface refreshes the verification code list result, need to be used together with the [Query Purchased Email List] interface
Endpoint URL
/vcpcloud/api/padApi/getEmailCode
Request Method
GET
Request Data Type
application/json
Request Body Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| orderId | 1917193290790019073 | String | Required, corresponds to outOrderId field |
Response Parameters
| Parameter Name | Example Value | Data Type | Description |
|---|---|---|---|
| msg | success | String | Response message |
| code | 200 | Integer | Status code |
| ts | 1745835489149 | Long | Timestamp (milliseconds) |
Request Example
/vcpcloud/api/vcEmailService/getEmailCode?orderId=1917193290790019073
Response Example
{
"msg": "success",
"code": 200,
"ts": 1745835489149
}
Flow Automation (RPA)
The Flow Automation endpoints are for system-to-system script execution and task dispatch on the VMOS Cloud platform.
Authentication: Identical to other OpenAPI endpoints — uses HMAC-SHA256 V4 signing (see Authorization Signature Mechanism) with the same AccessKey / SecretAccessKey. padCode ownership is verified at the gateway; any device not owned by the calling account is rejected.
Script source: Flow scripts (scripts) are authored visually in the VMOS Cloud console's flow editor. The OpenAPI exposes read-only list / get — create / update / delete are intentionally not exposed because uploading raw JSON does not yield a runnable script. Use the VMOS Cloud console to author or modify scripts.
params field: For all dispatch endpoints, params is a JSON string (not a JSON object). The caller serializes the params object and passes the string; it is forwarded verbatim to the script runtime. Invalid JSON is rejected at the gateway. Empty string or omitted means "no params".
Cancel semantics: cancel is "best-effort" — pending is set to cancelled immediately; dispatched / running is set to cancel_requested and the device is notified to abort; tasks already in terminal state (completed / failed / cancelled) are no-ops and respond success idempotently.
Error passthrough: Upstream 400 / 403 / 404 business errors are forwarded with their original message. Any other non-200 upstream code is normalized to 500 system error.
Flow Script List
Paginate the flow scripts visible to the current account (official + your private scripts).
Endpoint
/vcpcloud/api/padApi/automation/scripts/list
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| page | 1 | Integer | No | Page number, defaults to 1, min 1 |
| size | 20 | Integer | No | Page size, defaults to 20, range 1~100 |
| category | official | String | No | Filter by ownership type: official (platform-provided template) or user (your private script) |
| platform | tiktok | String | No | Filter by business platform, e.g. instagram / tiktok / youtube (set on official templates; may be null on user scripts) |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | ||
| ├─ total | 36 | Long | Total record count |
| ├─ list | Object[] | Script list | |
| │ ├─ id | 1024 | Long | Script ID |
| │ ├─ name | TikTok Auto Login | String | Script name (localized by Accept-Language) |
| │ ├─ description | Log in to TikTok | String | Script description |
| │ ├─ icon | https://cdn.vmoscloud.com/icons/tiktok.png | String | Icon URL |
| │ ├─ category | official | String | Ownership type (official / user etc.) |
| │ ├─ platform | tiktok | String | Business platform (official templates use instagram / tiktok / youtube etc.; may be null on user scripts) |
| │ ├─ userId | 0 | Long | Script owner; 0 = official / platform script, >0 = your private script |
| │ ├─ targetPackage | com.zhiliaoapp.musically | String | Target app package name (empty = no install check) |
| │ ├─ minVersionCode | 0 | Long | Minimum versionCode (inclusive); nullable |
| │ ├─ maxVersionCode | 999999 | Long | Maximum versionCode (inclusive); nullable |
| │ ├─ minVersionName | 30.0.0 | String | Min version name, display-only; nullable |
| │ ├─ maxVersionName | 39.9.9 | String | Max version name, display-only; nullable |
| │ ├─ version | 3 | Integer | Script version number |
| │ ├─ createdAt | 2025-12-01T10:00:00 | String | Created at |
| │ ├─ updatedAt | 2026-05-01T18:32:11 | String | Updated at |
| │ ├─ locale | en-US | String | Resolved display locale |
| │ ├─ tutorialVideoUrl | https://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4 | String | Tutorial video URL (OSS); null if no tutorial — only some official templates have it |
Note: the
listendpoint omits the scriptcontent(the full flow JSON) for performance. Usegetto fetch the body.
Request Example
{
"page": 1,
"size": 20,
"category": "official",
"platform": "tiktok"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": {
"total": 1,
"list": [
{
"id": 1024,
"name": "TikTok Auto Login",
"description": "Log in to 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": "en-US",
"tutorialVideoUrl": "https://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4"
}
]
}
}
Flow Script Details
Fetch a single flow script by scriptId.
Endpoint
/vcpcloud/api/padApi/automation/scripts/get
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| scriptId | 1024 | Long | Yes | Script ID |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | Script details | |
| ├─ id | 1024 | Long | Script ID |
| ├─ name | TikTok Auto Login | String | Script name (localized by Accept-Language) |
| ├─ description | Log in to TikTok | String | Script description |
| ├─ icon | https://cdn.vmoscloud.com/icons/tiktok.png | String | Icon URL |
| ├─ category | official | String | Ownership type (official / user etc.) |
| ├─ platform | tiktok | String | Business platform (official templates use instagram / tiktok / youtube etc.; may be null on user scripts) |
| ├─ userId | 0 | Long | Script owner; 0 = official / platform script, >0 = your private script |
| ├─ targetPackage | com.zhiliaoapp.musically | String | Target app package name (empty = no install check) |
| ├─ minVersionCode | 0 | Long | Minimum versionCode (inclusive); nullable |
| ├─ maxVersionCode | 999999 | Long | Maximum versionCode (inclusive); nullable |
| ├─ minVersionName | 30.0.0 | String | Min version name, display-only; nullable |
| ├─ maxVersionName | 39.9.9 | String | Max version name, display-only; nullable |
| ├─ content | see "content field return modes" below | String | Flow JSON string. See the dedicated subsection below this table |
| ├─ version | 3 | Integer | Script version number |
| ├─ createdAt | 2025-12-01T10:00:00 | String | Created at |
| ├─ updatedAt | 2026-05-01T18:32:11 | String | Updated at |
| ├─ locale | en-US | String | Resolved display locale |
| ├─ tutorialVideoUrl | https://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4 | String | Tutorial video URL (OSS); null if no tutorial — only some official templates have it |
content field return modes
The content JSON string takes one of two shapes depending on the caller and the script's ownership:
| Mode | Trigger | Returned content |
|---|---|---|
| Full flow | category != "official" and userId != 0 and userId == calling user (your own private script) | The full flow JSON exported by the flow editor, including all executable steps |
| Shell | Any other case (official templates with category=official, scripts with userId=0, or scripts not owned by you) | Parameter definitions only; the executable steps are emptied |
The shell has these top-level fields:
| Field | Type | Description |
|---|---|---|
| startParamMap | Array | Original parameter definitions; each element contains key / label / placeholder / helpText etc.; for official templates, label / placeholder / helpText are localized per Accept-Language |
| contents | Array | Empty (executable steps removed) |
| otherContents | Object | Subgraph shell: {"startNode":{"position":{"x":0,"y":0},"type":"start","id":"shell","name":"shell","config":{}},"contents":[],"edges":[],"otherFunctionNode":[]} |
| contentType | String | Passthrough of the original value, defaults to flow |
| errorType | String | Passthrough of the original value, defaults to pause |
At task dispatch time, the server reads the canonical full content from the DB and executes it; the OpenAPI does not expose official-template steps to callers.
Business Errors
| code | Meaning |
|---|---|
| 404 | Script does not exist or is not accessible |
Request Example
{
"scriptId": 1024
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": {
"id": 1024,
"name": "TikTok Auto Login",
"description": "Log in to TikTok",
"icon": "https://cdn.vmoscloud.com/icons/tiktok.png",
"category": "official",
"platform": "tiktok",
"userId": 0,
"targetPackage": "com.zhiliaoapp.musically",
"content": "{\"startParamMap\":[{\"key\":\"account\",\"label\":\"Account\",\"placeholder\":\"Enter your TikTok account\",\"helpText\":\"\"},{\"key\":\"password\",\"label\":\"Password\",\"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": "en-US",
"tutorialVideoUrl": "https://file.vmoscloud.com/videos/vmosauto/tiktok-login.mp4"
}
}
Batch Dispatch Flow Task
Dispatch one script to multiple cloud instances in one call. Single-call limit is 200 devices. Two mutually-exclusive modes:
- Mode A (shared params):
padCodeslists the targets, all sharing the sameparams - Mode B (per-device params):
itemsis an array of{padCode, params}pairs
Exactly one of padCodes / items must be non-empty; supplying both or neither fails parameter validation.
Endpoint
/vcpcloud/api/padApi/automation/tasks/batch-dispatch
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| scriptId | 1024 | Long | Yes | Script ID to execute |
| padCodes | ["AC2025030770R92X", "AC2025030770R93Y"] | String[] | Either | Mode A: target devices, max 200, non-blank |
| params | "{"keyword":"summer sale"}" | String | No | Mode A shared params (JSON string); ignored in Mode B |
| items | [{"padCode":"AC2025030770R92X","params":"{"account":"a@x.com"}"}] | Object[] | Either | Mode B: per-device params, max 200 |
| ├─ padCode | AC2025030770R92X | String | Yes | Target device ID |
| ├─ params | "{"account":"a@x.com"}" | String | No | Per-device params (JSON string) |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object[] | Array of task records; order matches the input | |
| ├─ id | 30215 | Long | Task primary key |
| ├─ displayId | 801117955 | Long | Public display ID (obfuscated, not auto-increment) |
| ├─ scriptId | 1024 | Long | Script ID |
| ├─ scriptName | TikTok Auto Login | String | Snapshot of the script name at task creation |
| ├─ deviceId | AC2025030770R92X | String | Device ID (i.e. padCode) |
| ├─ userId | 14114 | Long | Owning user |
| ├─ params | "{"keyword":"summer sale"}" | String | Params echoed back (Mode A: shared params; Mode B: the item's params) |
| ├─ status | pending | String | Task status |
| ├─ startedAt | null | String | Execution start time |
| ├─ endedAt | null | String | Execution end time |
| ├─ createdAt | 2026-05-25T18:00:01 | String | Created at |
Business Errors
| code | Meaning |
|---|---|
| 400 | Invalid params (both padCodes & items missing, size > 200, malformed params JSON, etc.) |
| 403 | At least one device not owned by the calling account (the whole batch is rejected) |
| 404 | Script does not exist or is not accessible |
Request Example (Mode A — shared params)
{
"scriptId": 1024,
"padCodes": ["AC2025030770R92X", "AC2025030770R93Y"],
"params": "{\"keyword\":\"summer sale\"}"
}
Request Example (Mode B — per-device params)
{
"scriptId": 1024,
"items": [
{ "padCode": "AC2025030770R92X", "params": "{\"account\":\"a@x.com\"}" },
{ "padCode": "AC2025030770R93Y", "params": "{\"account\":\"b@x.com\"}" }
]
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": [
{
"id": 30216, "displayId": 801117992, "scriptId": 1024,
"scriptName": "TikTok Auto Login", "deviceId": "AC2025030770R92X",
"userId": 14114, "status": "pending",
"createdAt": "2026-05-25T18:00:01"
},
{
"id": 30217, "displayId": 801118029, "scriptId": 1024,
"scriptName": "TikTok Auto Login", "deviceId": "AC2025030770R93Y",
"userId": 14114, "status": "pending",
"createdAt": "2026-05-25T18:00:01"
}
]
}
Flow Task List
Paginate the current account's flow tasks, ordered by createdAt desc. Supports time-range filtering.
Endpoint
/vcpcloud/api/padApi/automation/tasks/list
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| page | 1 | Integer | No | Page number, defaults to 1 |
| size | 20 | Integer | No | Page size, defaults to 20, range 1~100 |
| startTime | 2026-05-01T00:00:00Z | String | No | Start time (ISO-8601 UTC string); malformed values ignored |
| endTime | 2026-05-31T23:59:59Z | String | No | End time (ISO-8601 UTC string); malformed values ignored |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | ||
| ├─ total | 128 | Long | Total record count |
| ├─ list | Object[] | Task list | |
| │ ├─ id | 30215 | Long | Task primary key |
| │ ├─ displayId | 801117955 | Long | Public display ID (obfuscated, not auto-increment) |
| │ ├─ scriptId | 1024 | Long | Script ID |
| │ ├─ scriptName | TikTok Auto Login | String | Snapshot of the script name at task creation |
| │ ├─ deviceId | AC2025030770R92X | String | Device ID (i.e. padCode) |
| │ ├─ userId | 14114 | Long | Owning user |
| │ ├─ params | "{"account":"foo@example.com"}" | String | Params echoed back |
| │ ├─ status | completed | String | Task status (pending / dispatched / running / success / failed / cancelled / cancel_requested) |
| │ ├─ startedAt | 2026-05-25T18:00:05 | String | Execution start time |
| │ ├─ endedAt | 2026-05-25T18:02:30 | String | Execution end time |
| │ ├─ createdAt | 2026-05-25T18:00:01 | String | Created at |
Request Example
{
"page": 1,
"size": 20,
"startTime": "2026-05-25T00:00:00Z",
"endTime": "2026-05-26T00:00:00Z"
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": {
"total": 2,
"list": [
{
"id": 30217, "displayId": 801118029, "scriptId": 1024,
"scriptName": "TikTok Auto Login", "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 Auto Login", "deviceId": "AC2025030770R92X",
"userId": 14114, "status": "failed",
"startedAt": "2026-05-25T18:00:05", "endedAt": "2026-05-25T18:01:42",
"createdAt": "2026-05-25T18:00:01"
}
]
}
}
Flow Task Details
Fetch a single flow task by taskId.
Endpoint
/vcpcloud/api/padApi/automation/tasks/get
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| taskId | 30215 | Long | Yes | Real task primary key (the id returned by dispatch — not displayId) |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | Task record | |
| ├─ id | 30215 | Long | Task primary key |
| ├─ displayId | 801117955 | Long | Public display ID (obfuscated, not auto-increment) |
| ├─ scriptId | 1024 | Long | Script ID |
| ├─ scriptName | TikTok Auto Login | String | Snapshot of the script name at task creation |
| ├─ deviceId | AC2025030770R92X | String | Device ID (i.e. padCode) |
| ├─ userId | 14114 | Long | Owning user |
| ├─ params | "{"account":"foo@example.com"}" | String | Params echoed back |
| ├─ status | running | String | Task status (pending / dispatched / running / success / failed / cancelled / cancel_requested) |
| ├─ startedAt | 2026-05-25T18:00:05 | String | Execution start time |
| ├─ endedAt | null | String | Execution end time |
| ├─ createdAt | 2026-05-25T18:00:01 | String | Created at |
Business Errors
| code | Meaning |
|---|---|
| 404 | Task does not exist or does not belong to the calling account |
Request Example
{
"taskId": 30215
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": {
"id": 30215,
"displayId": 801117955,
"scriptId": 1024,
"scriptName": "TikTok Auto Login",
"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"
}
}
Flow Task Logs
Fetch step-level execution logs for a task (ascending by timestamp).
Endpoint
/vcpcloud/api/padApi/automation/tasks/logs
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| taskId | 30215 | Long | Yes | Task primary key |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object[] | Step logs | |
| ├─ id | 50001 | Long | Log ID |
| ├─ taskId | 30215 | Long | Owning task ID |
| ├─ userId | 14114 | Long | Owning user |
| ├─ timestamp | 2026-05-25T18:00:05 | String | Step timestamp |
| ├─ level | INFO | String | Log level (INFO / WARN / ERROR) |
| ├─ action | click_element | String | Instruction name (from the flow script instruction set) |
| ├─ detail | Click login button | String | Step description |
| ├─ result | 执行成功 | String | Execution result description (free text, e.g. 执行成功 / 任务成功:正常完成; not a fixed enum) |
| ├─ screenshotUrl | https://oss-cn-hongkong.aliyuncs.com/vmosauto/shots/30215/01.jpg | String | Step screenshot URL (OSS); may be null |
Business Errors
| code | Meaning |
|---|---|
| 404 | Task does not exist or does not belong to the calling account |
Request Example
{
"taskId": 30215
}
Response Example
{
"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": "Launch TikTok", "result": "执行成功",
"screenshotUrl": null
},
{
"id": 50002, "taskId": 30215, "userId": 14114,
"timestamp": "2026-05-25T18:00:12",
"level": "INFO", "action": "click_element",
"detail": "Click login button", "result": "执行成功",
"screenshotUrl": "https://oss-cn-hongkong.aliyuncs.com/vmosauto/shots/30215/02.jpg"
}
]
}
Cancel Flow Task
Cancel a task. Semantics (best-effort):
pending: set tocancelledimmediately, no device contactdispatched/running/cancel_requested: set tocancel_requestedand the device is notified to abort; the device transitions the task to a terminal state once it acknowledges- Already terminal (
completed/failed/cancelled): no-op, returns success idempotently
Endpoint
/vcpcloud/api/padApi/automation/tasks/cancel
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| taskId | 30215 | Long | Yes | Task primary key |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | null | Cancel returns no payload |
Business Errors
| code | Meaning |
|---|---|
| 404 | Task does not exist or does not belong to the calling account |
Request Example
{
"taskId": 30215
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": null
}
Account List
Paginate the current user's accounts; supports platform / group / status / keyword / bind-status filtering and sorting.
Endpoint
/vcpcloud/api/padApi/automation/accounts/list
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| page | 1 | Integer | No | Page number, default 1, min 1 |
| size | 20 | Integer | No | Page size, default 20, range 1–100 |
| platform | String | No | Platform filter, e.g. instagram / tiktok / youtube | |
| groupId | 12 | Long | No | Account group ID filter |
| status | active | String | No | Account status filter (login health): inactive (new, not logged in) / active (login OK) / login_failed; use deviceBound to filter by binding |
| keyword | alice | String | No | Keyword, matches handle / display name |
| deviceBound | true | Boolean | No | Bind status: true = bound only, false = unbound only, omit = no filter |
| sortBy | createdAt | String | No | Sort field: createdAt / lastActiveAt / cachedFollowers, etc. |
| sortDir | desc | String | No | Sort direction: asc / desc |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | ||
| ├─ total | 36 | Long | Total record count |
| ├─ list | Object[] | Account list | |
| │ ├─ id | 22 | Long | Account ID |
| │ ├─ platform | String | Platform | |
| │ ├─ handle | alice_ig | String | Account handle (nullable) |
| │ ├─ displayName | Alice | String | Display name |
| │ ├─ username | alice_login | String | Login account (username), used to identify the account; password NOT included |
| user@example.com | String | Recovery email; email password NOT included | |
| │ ├─ avatarUrl | https://... | String | Avatar URL |
| │ ├─ country | US | String | Country/region |
| │ ├─ groupId | 12 | Long | Group ID (nullable) |
| │ ├─ tags | main,opsA | String | Tags (comma-separated, nullable) |
| │ ├─ status | active | String | Account status |
| │ ├─ automationEnabled | 1 | Integer | Automation enabled: 1 = on / 0 = off |
| │ ├─ boundDeviceId | AC2025030770R92X | String | Bound instance code (padCode, nullable) |
| │ ├─ lastLoginAt | 2026-05-30T21:00:00 | String | Last login time (nullable) |
| │ ├─ lastActiveAt | 2026-05-31T00:01:00 | String | Last active time (nullable) |
| │ ├─ cachedFollowers | 12000 | Long | Cached followers (nullable) |
| │ ├─ cachedFollowing | 320 | Long | Cached following (nullable) |
| │ ├─ cachedWorksCount | 48 | Integer | Cached works count (nullable) |
| │ ├─ cachedLikesTotal | 95000 | Long | Cached total likes (nullable) |
| │ ├─ cachedUnreadMessages | 3 | Integer | Cached unread messages (nullable) |
| │ ├─ cachedSnapshotAt | 2026-05-31T00:01:00 | String | Cached metrics collection time (nullable) |
| │ ├─ note | note text | String | Note (nullable) |
| │ ├─ createdAt | 2026-05-01T10:00:00 | String | Created time |
| │ ├─ updatedAt | 2026-05-31T00:01:00 | String | Updated time |
Request Example
{
"page": 1,
"size": 20,
"platform": "instagram",
"status": "active",
"deviceBound": true,
"sortBy": "createdAt",
"sortDir": "desc"
}
Response Example
{
"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": "main,opsA",
"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"
}
]
}
}
Account Details
Fetch a single account by accountId. Returns the same fields as a list element of Account List.
Endpoint
/vcpcloud/api/padApi/automation/accounts/get
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID |
Business Errors
| code | Meaning |
|---|---|
| 404 | Account does not exist, or does not belong to the calling account |
Request Example
{
"accountId": 22
}
Response Example
{
"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": "main,opsA",
"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"
}
}
Account Data Snapshots
Query account-level historical snapshots by accountId (followers / following / works count / likes time series), returned in descending order of collection time.
Endpoint
/vcpcloud/api/padApi/automation/accounts/snapshots
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object[] | Snapshot list | |
| ├─ id | 5001 | Long | Snapshot ID |
| ├─ accountId | 22 | Long | Account ID |
| ├─ userId | 14114 | Long | Owner user ID |
| ├─ taskId | 30215 | Long | Source task ID (nullable) |
| ├─ followers | 12000 | Long | Followers (nullable) |
| ├─ following | 320 | Long | Following (nullable) |
| ├─ worksCount | 48 | Integer | Works count (nullable) |
| ├─ likesTotal | 95000 | Long | Total likes (nullable) |
| ├─ collectedAt | 2026-05-31T00:01:00 | String | Collection time |
Request Example
{
"accountId": 22
}
Response Example
{
"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"
}
]
}
Account Works List
Paginate the account's collected works (deduplicated by platformWorkId). Each work carries the most recently collected metric snapshot.
Endpoint
/vcpcloud/api/padApi/automation/accounts/works
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID |
| page | 1 | Integer | No | Page number, default 1, min 1 |
| size | 20 | Integer | No | Page size, default 20, range 1–100 |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | ||
| ├─ total | 48 | Long | Total record count |
| ├─ list | Object[] | Works list | |
| │ ├─ id | 9001 | Long | Work record ID |
| │ ├─ accountId | 22 | Long | Account ID |
| │ ├─ userId | 14114 | Long | Owner user ID |
| │ ├─ platformWorkId | C9xYz... | String | Platform-side work ID |
| │ ├─ url | https://... | String | Work share URL (nullable) |
| │ ├─ title | title | String | Title (nullable) |
| │ ├─ caption | caption text | String | Work caption (nullable) |
| │ ├─ coverUrl | https://... | String | Cover URL (nullable) |
| │ ├─ publishedAt | 2026-05-20T12:00:00 | String | Published time (nullable) |
| │ ├─ durationSec | 30 | Integer | Duration in seconds (some platforms, nullable) |
| │ ├─ deletedOnPlatform | 0 | Integer | Deleted on platform: 1 = deleted / 0 = live |
| │ ├─ firstSeenAt | 2026-05-20T13:00:00 | String | First-collected time |
| │ ├─ latestCollectedAt | 2026-05-31T00:01:00 | String | Last metric collection time (nullable) |
| │ ├─ views | 10000 | Long | Views (nullable) |
| │ ├─ likes | 800 | Long | Likes (nullable) |
| │ ├─ comments | 60 | Long | Comments (nullable) |
| │ ├─ shares | 25 | Long | Shares (nullable) |
| │ ├─ saves | 40 | Long | Saves (nullable) |
| │ ├─ reposts | 5 | Long | Reposts (nullable) |
| │ ├─ profileVisits | 120 | Long | Profile visits (nullable) |
| │ ├─ followConversions | 12 | Long | Follow conversions (nullable) |
| │ ├─ avgWatchTimeSec | 8.50 | Number | Average watch time in seconds (nullable) |
| │ ├─ completionRate | 0.42 | Number | Completion rate (nullable) |
Request Example
{
"accountId": 22,
"page": 1,
"size": 20
}
Response Example
{
"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": "Today's share",
"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
}
]
}
}
Account Work Data Snapshots
Query a single work's metric time series (one record per collection) by accountId + workId, returned in descending order of collection time. accountId is used for ownership validation.
Endpoint
/vcpcloud/api/padApi/automation/accounts/work-snapshots
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID (ownership validation) |
| workId | 9001 | Long | Yes | Work record ID |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object[] | Metric snapshot list | |
| ├─ id | 7001 | Long | Snapshot ID |
| ├─ workId | 9001 | Long | Work record ID |
| ├─ views | 10000 | Long | Views (nullable) |
| ├─ likes | 800 | Long | Likes (nullable) |
| ├─ comments | 60 | Long | Comments (nullable) |
| ├─ shares | 25 | Long | Shares (nullable) |
| ├─ saves | 40 | Long | Saves (nullable) |
| ├─ reposts | 5 | Long | Reposts (nullable) |
| ├─ profileVisits | 120 | Long | Profile visits (nullable) |
| ├─ followConversions | 12 | Long | Follow conversions (nullable) |
| ├─ avgWatchTimeSec | 8.50 | Number | Average watch time in seconds (nullable) |
| ├─ completionRate | 0.42 | Number | Completion rate (nullable) |
| ├─ collectedAt | 2026-05-31T00:01:00 | String | Collection time |
Request Example
{
"accountId": 22,
"workId": 9001
}
Response Example
{
"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"
}
]
}
Account Group List
List all account groups of the current user, returned in ascending order of sortOrder.
Endpoint
/vcpcloud/api/padApi/automation/accounts/groups/list
Method
POST
Content-Type
application/json
Request Body
None (userId is derived from the signature)
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object[] | Group list | |
| ├─ id | 12 | Long | Group ID |
| ├─ name | Main Accounts | String | Group name |
| ├─ color | #FF8800 | String | Group color (nullable) |
| ├─ sortOrder | 1 | Integer | Sort order (nullable) |
| ├─ createdAt | 2026-05-01T10:00:00 | String | Created time |
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": [
{
"id": 12,
"name": "Main Accounts",
"color": "#FF8800",
"sortOrder": 1,
"createdAt": "2026-05-01T10:00:00"
}
]
}
Batch Trigger Account Operation
Batch-trigger a template to run immediately on multiple accounts. Each account's target instance is derived from its currently bound instance (no padCode); credentials are decrypted and injected server-side via fromCredential (never sent to or readable by the client). One request creates and concurrently dispatches multiple tasks; the task record structure matches Batch Dispatch Flow Task.
Endpoint
/vcpcloud/api/padApi/automation/accounts/operations/batch
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| scriptId | 1024 | Long | Yes | Template ID to run |
| accountIds | [22, 17] | Long[] | Yes | Target account IDs |
| taskName | Instagram batch | String | No | Plan name (shown in the task list) |
| sharedOptions | see below | Object[] | Either | Shared params: same set for all accounts |
| perAccountOptions | {"22":[...]} | Object | Either | Per-account params: accountId → option list |
Option item (element of sharedOptions / perAccountOptions):
| Field | Example | Type | Required | Description |
|---|---|---|---|---|
| key | keyword | String | Yes | Template param name (startTaskOptions key) |
| value | travel | String | No | Plaintext value for a non-credential param |
| fromCredential | password | String | No | Credential field (username/password/twofa_secret/email/email_password); if set, the server decrypts that field per account and injects it into key |
Business Errors
| code | Meaning |
|---|---|
| 400 | scriptId / accountIds missing |
| 404 | Template does not exist or is not accessible |
Request Example
{
"scriptId": 1024,
"accountIds": [22, 17],
"taskName": "Instagram batch",
"sharedOptions": [
{ "key": "keyword", "value": "travel" },
{ "key": "account", "fromCredential": "username" },
{ "key": "password", "fromCredential": "password" }
]
}
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | ||
| ├─ ok | 2 | Integer | Tasks created and handed to background dispatch |
| ├─ fail | 0 | Integer | Accounts skipped before dispatch (not bound / not accessible) |
| ├─ results | Object[] | Per-account result | |
| │ ├─ accountId | 22 | Long | Account ID |
| │ ├─ success | true | Boolean | Whether created and enqueued |
| │ ├─ taskId | 30216 | Long | Task ID (null on failure) |
| │ ├─ error | null | String | Failure reason (null on success) |
Response Example
{
"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 }
]
}
}
Account Batch Scheduled Tasks
Batch-create scheduled tasks for multiple accounts: one scheduled task per account, fired on a Cron schedule. At fire time the server resolves each account's current bound instance and decrypts/injects credentials (the stored params contain no plaintext, only the fromCredential mapping).
Endpoint
/vcpcloud/api/padApi/automation/accounts/scheduled-tasks/batch
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| scriptId | 1024 | Long | Yes | Template ID |
| accountIds | [22, 17] | Long[] | Yes | Target account IDs |
| cronExpr | 0 0 9 * * * | String | Yes | Cron expression (6 fields, includes seconds); a one-shot task also uses it for its single trigger moment |
| oneShot | false | Boolean | No | One-shot task (auto-disabled after firing), default false |
| enabled | true | Boolean | No | Enable immediately after creation, default true |
| taskName | Daily collect | String | No | Plan name |
| sharedOptions | see below | Object[] | Either | Shared params; option item matches Batch Trigger Account Operation |
| perAccountOptions | {"22":[...]} | Object | Either | Per-account params: accountId → option list |
Business Errors
| code | Meaning |
|---|---|
| 400 | scriptId / accountIds / cronExpr missing or invalid cron |
| 403 | An account does not belong to the calling account |
| 404 | Template does not exist or is not accessible |
Request Example
{
"scriptId": 1024,
"accountIds": [22, 17],
"cronExpr": "0 0 9 * * *",
"oneShot": false,
"taskName": "Daily collect",
"sharedOptions": [
{ "key": "account", "fromCredential": "username" },
{ "key": "password", "fromCredential": "password" }
]
}
Response Example (one scheduled-task record per account)
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": [
{
"id": 501,
"taskName": "Daily collect",
"scriptId": 1024,
"deviceId": "AC2025030770R92X",
"cronExpr": "0 0 9 * * *",
"oneShot": false,
"enabled": true,
"createdAt": "2026-06-02T10:00:00"
}
]
}
Create Account
Create an account in the matrix (credentials are AES-GCM encrypted at rest). handle is unique per platform.
Endpoint
/vcpcloud/api/padApi/automation/accounts/create
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| platform | String | Yes | Platform | |
| username | alice_ig | String | Yes | Login username (credential, stored encrypted) |
| password | ****** | String | Yes | Login password (credential, stored encrypted) |
| handle | alice_ig | String | No | Account @handle (unique per platform, may be empty) |
| twofaSecret | JBSWY3DPEH… | String | No | 2FA secret (credential) |
| a@x.com | String | No | Email (credential) | |
| emailPassword | ****** | String | No | Email password (credential) |
| groupId | 12 | Long | No | Group ID |
| country | US | String | No | Country/region |
| note | note | String | No | Note |
| tags | main,opsA | String | No | Tags (comma-separated) |
Business Errors
| code | Meaning |
|---|---|
| 409 | Account already exists (unique per platform + handle); use a different handle or leave it empty |
Request Example
{
"platform": "instagram",
"username": "alice_ig",
"password": "secret",
"handle": "alice_ig",
"groupId": 12
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": {
"id": 22,
"platform": "instagram",
"handle": "alice_ig",
"status": "active",
"boundDeviceId": null,
"createdAt": "2026-06-02T10:00:00"
}
}
Bind Instance
Bind an account to a cloud instance. Only one active account per instance+platform; on conflict force=false returns 409, force=true rebinds (the old account is auto-unbound). padCode ownership is pre-checked at the gateway.
Endpoint
/vcpcloud/api/padApi/automation/accounts/bind
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID |
| padCode | AC2025030770R92X | String | Yes | Target instance code |
| force | false | Boolean | No | Force rebind on conflict, default false |
Business Errors
| code | Meaning |
|---|---|
| 403 | padCode does not belong to the calling account |
| 409 | Instance occupied by another same-platform account (force=false); data carries the occupying account |
Request Example
{ "accountId": 22, "padCode": "AC2025030770R92X", "force": false }
Response Example (null data on success; 409 on conflict)
{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }
{ "code": 409, "msg": "device occupied by same-platform account", "data": { "occupiedBy": 17, "occupiedByHandle": "bob_ig" } }
Unbind Instance
Unbind an account from its currently bound instance.
Endpoint
/vcpcloud/api/padApi/automation/accounts/unbind
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID |
Response Example
{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }
Delete Account
Soft-delete an account; credentials are cleared (recoverable by admin, but credentials must be re-entered).
Endpoint
/vcpcloud/api/padApi/automation/accounts/delete
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID |
Business Errors
| code | Meaning |
|---|---|
| 404 | Account does not exist, or does not belong to the calling account |
Response Example
{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }
Move Account Group
Move an account to a group; pass null groupId to ungroup.
Endpoint
/vcpcloud/api/padApi/automation/accounts/group
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| accountId | 22 | Long | Yes | Account ID |
| groupId | 12 | Long | No | Target group ID; null = ungroup |
Business Errors
| code | Meaning |
|---|---|
| 404 | Account does not exist, or does not belong to the calling account |
Request Example
{ "accountId": 22, "groupId": 12 }
Response Example
{ "code": 200, "msg": "success", "ts": 1748400000000, "data": null }
Scheduled Task List
Paginate the current user's scheduled tasks.
Endpoint
/vcpcloud/api/padApi/automation/scheduled-tasks/list
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| page | 1 | Integer | No | Page number, default 1, min 1 |
| size | 20 | Integer | No | Page size, default 20, range 1–100 |
Response
| Field | Example | Type | Description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Response message |
| ts | 1748400000000 | Long | Timestamp |
| data | Object | ||
| ├─ total | 8 | Long | Total record count |
| ├─ list | Object[] | Scheduled task list | |
| │ ├─ id | 501 | Long | Scheduled task ID |
| │ ├─ taskName | InstagramAutoCollect20260531 | String | Schedule name |
| │ ├─ scriptId | 1024 | Long | Template ID |
| │ ├─ scriptName | Instagram Auto Collect | String | Template name snapshot |
| │ ├─ deviceId | AC2025030770R92X | String | Target instance code (single device) |
| │ ├─ cronExpr | 0 0 9 * * * | String | Cron expression (6 fields, includes seconds) |
| │ ├─ oneShot | false | Boolean | Whether it is a one-shot task |
| │ ├─ enabled | true | Boolean | Whether enabled |
| │ ├─ params | "{...}" | String | Runtime params JSON string |
| │ ├─ lastRunAt | 2026-05-31T09:00:00 | String | Last trigger time (nullable) |
| │ ├─ nextRunAt | 2026-06-01T09:00:00 | String | Next trigger time (computed from Cron, nullable) |
| │ ├─ createdAt | 2026-05-30T18:00:00 | String | Created time |
Request Example
{
"page": 1,
"size": 20
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": {
"total": 1,
"list": [
{
"id": 501,
"taskName": "InstagramAutoCollect20260531090000",
"scriptId": 1024,
"scriptName": "Instagram Auto Collect",
"deviceId": "AC2025030770R92X",
"cronExpr": "0 0 9 * * *",
"oneShot": false,
"enabled": true,
"params": "{\"flowName\":\"InstagramAutoCollect20260531090000\",\"startTaskOptions\":[]}",
"lastRunAt": "2026-05-31T09:00:00",
"nextRunAt": "2026-06-01T09:00:00",
"createdAt": "2026-05-30T18:00:00"
}
]
}
}
Create Scheduled Task
Create a scheduled task. Multiple instances can be specified at once (padCodes), and each instance produces an independent scheduled task record. Supports recurring tasks (cronExpr) and one-shot tasks (oneShot=true).
The Cron expression is a 6-field format (second minute hour day month week), e.g.
0 0 9 * * *for daily 9:00. Required for recurring tasks; a one-shot task (oneShot=true) also uses a Cron expression to define its single trigger moment.
Endpoint
/vcpcloud/api/padApi/automation/scheduled-tasks/create
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| taskName | InstagramAutoCollect20260531 | String | Yes | Schedule name |
| scriptId | 1024 | Long | Yes | Template ID to run |
| padCodes | ["AC2025030770R92X"] | String[] | Yes | Target instance codes; one scheduled task is created per instance |
| cronExpr | 0 0 9 * * * | String | No | Cron expression (6 fields); required for recurring tasks, optional for one-shot |
| oneShot | false | Boolean | No | Whether it is a one-shot task, default false |
| params | "{"keyword":"travel"}" | String | No | Template runtime params, a JSON string; invalid JSON is rejected |
| enabled | true | Boolean | No | Whether to enable immediately after creation, default true |
Business Errors
| code | Meaning |
|---|---|
| 403 | A padCode does not belong to the calling account |
| 404 | Template does not exist or is not accessible |
Request Example
{
"taskName": "InstagramAutoCollect20260531",
"scriptId": 1024,
"padCodes": ["AC2025030770R92X"],
"cronExpr": "0 0 9 * * *",
"oneShot": false,
"params": "{\"keyword\":\"travel\"}",
"enabled": true
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": [
{
"id": 501,
"taskName": "InstagramAutoCollect20260531",
"scriptId": 1024,
"deviceId": "AC2025030770R92X",
"cronExpr": "0 0 9 * * *",
"oneShot": false,
"enabled": true,
"createdAt": "2026-05-30T18:00:00"
}
]
}
Update Scheduled Task
Update a single scheduled task. One scheduled task maps to a single instance, so the singular padCode is used; to change to multiple devices, delete and recreate.
Endpoint
/vcpcloud/api/padApi/automation/scheduled-tasks/update
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| taskId | 501 | Long | Yes | Scheduled task ID |
| taskName | InstagramAutoCollect(edited) | String | Yes | Schedule name |
| scriptId | 1024 | Long | Yes | Template ID |
| padCode | AC2025030770R92X | String | Yes | Target instance code (single) |
| cronExpr | 0 30 9 * * * | String | No | Cron expression (6 fields) |
| oneShot | false | Boolean | No | Whether it is a one-shot task |
| params | "{"keyword":"food"}" | String | No | Template runtime params, a JSON string |
| enabled | true | Boolean | No | Whether enabled |
Business Errors
| code | Meaning |
|---|---|
| 403 | padCode does not belong to the calling account |
| 404 | Scheduled task / template does not exist or is not accessible |
Request Example
{
"taskId": 501,
"taskName": "InstagramAutoCollect(edited)",
"scriptId": 1024,
"padCode": "AC2025030770R92X",
"cronExpr": "0 30 9 * * *",
"oneShot": false,
"params": "{\"keyword\":\"food\"}",
"enabled": true
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": {
"id": 501,
"taskName": "InstagramAutoCollect(edited)",
"scriptId": 1024,
"deviceId": "AC2025030770R92X",
"cronExpr": "0 30 9 * * *",
"oneShot": false,
"enabled": true
}
}
Toggle Scheduled Task
Enable / disable a scheduled task. When disabled the scheduler no longer triggers it; enabling restores triggering.
Endpoint
/vcpcloud/api/padApi/automation/scheduled-tasks/toggle
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| taskId | 501 | Long | Yes | Scheduled task ID |
| enabled | false | Boolean | Yes | true = enable / false = disable |
Business Errors
| code | Meaning |
|---|---|
| 404 | Scheduled task does not exist, or does not belong to the calling account |
Request Example
{
"taskId": 501,
"enabled": false
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": null
}
Delete Scheduled Task
Delete a scheduled task.
Endpoint
/vcpcloud/api/padApi/automation/scheduled-tasks/delete
Method
POST
Content-Type
application/json
Request Body
| Parameter | Example | Type | Required | Description |
|---|---|---|---|---|
| taskId | 501 | Long | Yes | Scheduled task ID |
Business Errors
| code | Meaning |
|---|---|
| 404 | Scheduled task does not exist, or does not belong to the calling account |
Request Example
{
"taskId": 501
}
Response Example
{
"code": 200,
"msg": "success",
"ts": 1748400000000,
"data": null
}
Callback-Related Information
Configuration Instructions
Customers need to configure the callback URL on the WEB side. Once the address is configured successfully, receiving callback information will be enabled by default.
Asynchronous ADB Command Callback
Use Case
When a customer calls the asynchronous execution of ADB commands, they will be notified through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1002 | Task business type |
| taskId | Integer | 1 | Task ID |
| padCode | String | AC22030022001 | Instance identifier |
| taskStatus | Integer | 3 | Task status (-1: Total failure; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending; 2: Executing; 3: Completed) |
| endTime | Long | 1756021166163 | Task end time |
| taskResult | String | Success | Task result |
| taskContent | String | Task content | |
| cmd | String | cd /root;ls | Executed command |
| cmdResult | String | /ws | Command return value |
Example
{
"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
}
Instance File Upload Callback
Use Case
When a customer calls the instance file upload API, they will be notified through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1009 | Task business type |
| taskId | Integer | 1 | Task ID |
| result | boolean | true | Execution result: true-success, false-failure |
| errorCode | String | Error code | |
| padCode | String | AC22030022001 | Instance number |
| fileId | String | cf08f7b685ab3a7b6a793b30de1b33ae34 | File ID |
Example
{
"errorCode": null,
"fileId": "cfec132ab3c4e1aff5515c4467d9bbe460",
"padCode": "AC22030022001",
"result": true,
"taskBusinessType": 1009,
"taskId": 10659,
"taskResult": "Success",
"taskStatus": 3
}
App Installation Callback
Use Case
When a customer calls for app installation, the installation status will be notified to the customer through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1003 | Task business type |
| taskId | Integer | 1 | Task ID |
| apps | Object[] | App information | |
| ├─ appId | Integer | 10001 | App ID |
| ├─ appName | String | demo | App Name |
| ├─ pkgName | String | com.xxx.demo | Package Name |
| ├─ padCode | String | AC22030022001 | Instance number |
| ├─ result | boolean | true | Installation result flag. true: success, false: failure |
| ├─ failMsg | String | This app is blacklisted and forbidden from installation | Failure message |
Example
{
"endTime": 1734939747000,
"padCode": "AC22030022001",
"taskBusinessType": 1003,
"taskContent": "",
"taskId": 10613,
"taskResult": "Success",
"taskStatus": 3
}
App Uninstallation Callback
Use Case
When a customer calls for app uninstallation, the uninstallation status will be notified to the customer through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1004 | Task business type |
| taskId | Integer | 1 | Task ID |
| apps | Object | App information | |
| ├─ appId | Integer | 10001 | App ID |
| ├─ appName | String | demo | App Name |
| ├─ pkgName | String | com.xxx.demo | Package Name |
| ├─ padCode | String | AC22030022001 | Instance number |
| ├─ result | boolean | true | Uninstallation result flag. true: success, false: failure |
Example
{
"endTime": 1734940052000,
"padCode": "AC22030022001",
"taskBusinessType": 1004,
"taskContent": "",
"taskId": null,
"taskResult": "Success",
"taskStatus": 3
}
App Start Callback
Use Case
When a customer calls for app startup, the startup status will be notified to the customer through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1007 | Task business type |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Task status (-1: Total failure; -3: Cancel; -4: Timeout; 1: Pending; 2: Executing; 3: Completed) |
| padCode | String | AC22030022001 | Instance identifier |
| pkgName | String | xxx.test.com | Package Name |
Example
{
"taskBusinessType": 1007,
"packageName": "com.quark.browser",
"padCode": "AC22030022001",
"taskId": 10618,
"taskStatus": 3
}
App Stop Callback
Use Case
When a customer calls for app stopping, the stop status will be notified to the customer through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1005 | Task business type |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Task status (-1: Total failure; -3: Cancel; -4: Timeout; 1: Pending; 2: Executing; 3: Completed) |
| padCode | String | AC22030022001 | Instance identifier |
| pkgName | String | xxx.test.com | Package Name |
Example
{
"taskBusinessType": 1005,
"packageName": "com.quark.browser",
"padCode": "AC22030022001",
"taskId": 10618,
"taskStatus": 3
}
App Restart Callback
Use Case
When a customer calls for app restart, the restart status will be notified to the customer through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1006 | Task business type |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Task status (-1: Total failure; -3: Cancel; -4: Timeout; 1: Pending; 2: Executing; 3: Completed) |
| padCode | String | AC22030022001 | Instance identifier |
| pkgName | String | xxx.test.com | Package Name |
Example
{
"taskBusinessType": 1006,
"packageName": "com.quark.browser",
"padCode": "AC22030022001",
"taskId": 10618,
"taskStatus": 3
}
User Image Upload Callback
Use Case
When a user image is uploaded, the result is notified to the customer through this callback interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 4001 | Task business type |
| imageId | String | img-2505244083302766 | Image ID |
| taskStatus | Integer | 3 | Task status (-1: Failure; 3: Completed) |
Example
{
"imageId": "img-2505244083302766",
"taskBusinessType": 4001,
"taskStatus": 3
}
One-Click New Device Callback
Use Case: After the One-Click New Device task is completed, the system notifies the customer through this interface.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1124 | Task business type |
| padCode | String | 212254 | Instance number |
| taskStatus | Integer | 3 | Task status (-1: Total failure; -3: Cancel; -4: Timeout; 1: Pending; 2: Executing; 3: Completed) |
| taskId | Integer | 1 | Task ID |
| taskContent | String | - | Task content |
| endTime | Long | 1756021166163 | End time (millisecond timestamp) |
| taskResult | String | Success | Task result description |
Instance Image Upgrade Task Callback
Use Case: Notification sent when the status of the instance image upgrade task changes.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1012 | Task business type |
| padCode | String | 212254 | Instance number |
| taskStatus | Integer | 3 | Task status (same as above) |
| taskId | Integer | 1 | Task ID |
| taskContent | String | - | Task content |
| endTime | Long | 1756021166163 | End time |
| taskResult | String | Success | Task result |
Instance Status Callback
Use Case: Notification sent to the customer when the running status or connection status of the instance itself changes.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 999 | Task business type |
| padCode | String | 212254 | Instance identifier |
| padStatus | Integer | 10 | Instance Status: -1: Deleted; 10: Running; 11: Restarting; 12: Resetting; 13: Upgrading; 14: Abnormal; 15: Not Ready; 16: Backing up; 17: Restoring; 18: Power Off; 19: Shutting down; 20: Powering on; 21: Shutdown Failed; 22: Boot Failed |
| padConnectStatus | Integer | 1 | Instance Connection Status: 1: Online; 0: Offline |
Instance Restart/Reset Task Callback
Use Case: Notification regarding the results of instance restart (1000) or reset (1001) operations.
| Field | Type | Example | Description |
|---|---|---|---|
| taskBusinessType | Integer | 1000/1001 | 1000 for restart, 1001 for reset |
| padCode | String | 212254 | Instance number |
| taskStatus | Integer | 3 | Task status (-1: Failure; 1: Pending; 2: Executing; 3: Completed) |
| taskId | Integer | 1 | Task ID |
| endTime | Long | 1756021166163 | End time |
| taskResult | String | Success | Task result |