📑 # Interface Documentation Navigation
This document includes 140+ API interfaces, covering the full lifecycle management of cloud phones
🚀 Get Started Quickly
- API Domain - Select the correct service region
- Interface Rate Limiting Rules - Understand call frequency limits
📦 Overview of Interface Classification
| Classification | Explanation | Main features |
|---|---|---|
| 🔐 [SDK Token Issuance] (#sdk-token-issuance) | Temporary token acquisition and management | Obtain temporary tokens and clear tokens |
| 💾 [Board Management] (#board-management) | Querying and operating board resources | Board list, hashrate query, restart and reset |
| 📱 [Instance Management] (#example-management) | Full lifecycle management of cloud phone instances | Sample operations, property settings, ADB debugging, screen interaction, data injection |
| 🔔 [Callback Management] (#callback-management) | Asynchronous task callback configuration | Callback address configuration and various task callback notifications |
| 📁 [File Management] (#file-management) | File upload, download, and management | Cloud drive upload, instance file operations |
| 📦 [Application Management] (#application-management---1) | App installation, start-stop, and blacklist lists | App installation and uninstallation, blacklist and whitelist management |
| 🌐 [Network Storage 2.0] (#netstorage-20) | Next-generation network storage solutions | Storage instance management, backup and restoration |
| 💿 [Network Storage 1.0] (#net-storage-10) | Classic network storage management | Create, power off, and back up and delete storage |
| 🛡️ [Application Security Policy V2.0] (#application-security-policy-v20) | Apply security control | Application security policy configuration |
| 💽 [Image Management] (#mirror-management) | System image query | Get the image list |
| 👥 [Account Management] (#account-management) | Sub-account and permission management | Sub-account management and board authorization |
| 📊 [Event Log] (#event-log) | App startup and exit logs | Start/exit log query |
API domain name
Important reminder
Please select the correct API domain name according to your service region
| Region | Domain name | Scope of application |
|---|---|---|
| Domestic | https://api.xiaosuanyun.com | Users in Chinese mainland |
| Overseas | https://openapi-hk.armcloud.net | Users overseas as well as in Hong Kong, Macau, and Taiwan |
Interface Rate Limiting Rules
::: warning: Traffic limit reminder All OpenAPI interfaces are subject to access frequency restrictions; please control call frequency appropriately. For detailed current limiting rules, please refer to [User Guide - Interface Rate Limiting Instructions] (./UsageGuide.md#interface-rate-limiting-explanation) :::
Main Traffic Limiting Rules:
| User type | QPS limit (per second) | Limit per minute | Calculation method |
|---|---|---|---|
| Test Users | 200 times per second | 5,000 times per minute | Slide the window, access key level |
| Paying Users | 2,000 times per second | 30,000 beats per minute | Slide the window, access key level |
Important Notes
- Each Access Key has its own rate limit; different keys do not share the quota
- All interface calls under a single Access Key share the same rate limit
- The limits of both QPS and per-minute dimensions must be met simultaneously
Rate Limiting Response: When rate limiting is triggered, it returns an HTTP 429 status code and error message
{
"msg": "Too many requests. Please try again later..",
"code": 429,
"data": null
}
Response Head Explanation:
| Response head | Explanation | Example |
|---|---|---|
X-RateLimit-Limit | The request limit for the current rate limiting cycle depends on the type of throttling | 200 |
X-RateLimit-Remaining | The number of available requests remaining in the current rate limiting period | 150 |
X-RateLimit-Reset | Current rate limiting cycle reset timestamp (Unix timestamp) | 1618900361 |
X-RateLimit-Type | The type of rate limit triggered | qps |
SDK Token Issuance
Issue temporary STS Tokens to verify users accessing cloud mobile services.
Obtaining SDK Temporary Tokens
Interface Address
/openapi/open/token/stsToken
Request Method
GET
Request Data Types
application/json
Request Example
package com.xiaosuan.api.utils;
import com.alibaba.fastjson.TypeReference;
import com.xiaosuan.armcloud.sdk.configure.ArmCloudConfig;
import com.xiaosuan.armcloud.sdk.constant.ArmCloudApiEnum;
import com.xiaosuan.armcloud.sdk.http.DefaultHttpExecutor;
import com.xiaosuan.armcloud.sdk.model.Result;
import com.xiaosuan.armcloud.sdk.service.ArmCloudApiService;
import com.xiaosuan.armcloud.sdk.service.impl.ArmCloudApiServiceImpl;
import java.util.HashMap;
public class test {
/**
* Get sts_token
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
ArmCloudConfig armCloudConfig = new ArmCloudConfig();
armCloudConfig.setOpenUrl("https://xxx");
armCloudConfig.setService("armcloud-paas");
armCloudConfig.setHost("xxx");
armCloudConfig.setAk("xxxxxx");
armCloudConfig.setSk("xxxxxx");
ArmCloudApiService armcloudApiService = new ArmCloudApiServiceImpl(armCloudConfig, new DefaultHttpExecutor());
Result<Object> result = armcloudApiService.execute(ArmCloudApiEnum.STS_TOKEN,new HashMap<>(), new TypeReference<Result<Object>>() {});
System.out.println(result);
}
}
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─token | xxxx-xxxx-xxxxx-xxxx | String | SDK communication token |
Response Examples
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"token": "xxxx-xxxx-xxxxx-xxxx"
}
}
Obtaining SDK Temporary Token (based on padCode)
Issue temporary STS tokens to authenticate users accessing cloud mobile services (this token can only be used for the requested padCode).
Interface Address
/openapi/open/token/stsTokenByPadCode
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | ACXXXXX | String | Yes | Example code |
| expireSeconds | 604800 | Integer | No | PaaS token validity in seconds. Omitted or null: 86400 (24 hours). Range: 1–604800 (up to 7 days). |
Request Example
{"padCode":"AC32010230001"}
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─token | xxxx-xxxx-xxxx-xxxx | String | SDK communication token |
Response Examples
{"code":200,"msg":"success","ts":1735209109185,"data":{"token":"xxx-xxx-xxx-xxxx"}}
Clearing SDK Authorized Tokens
Interface Address
/openapi/open/token/clearStsToken
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| token | 123 | String | Yes |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object |
Response Examples
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": null
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 120008 | The token does not belong to the current user | Refer to the interface description to check request parameters and pass values |
Clearing SDK Temporary Tokens (based on padCode)
Interface Address
/openapi/open/token/clearStsTokenByPadCode
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | ACXXXXX | String | Yes | Example code |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1757656454505 | Long | Timestamp |
| data | null | Object | Response data (cleared tokens in this interface have no return value) |
| traceId | extrgsyx962o | String | Link Tracing ID |
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1757656454505,
"data": null,
"traceId": "extrgsyx962o"
}
Board Management
Board List
Obtain the board list by pagination according to query conditions.
Interface Address
/openapi/open/device/list
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | is | Page number |
| rows | 10 | Integer | is | Number of items |
| padAllocationStatus | 2 | Integer | No | Instance allocation status: -2 Delete failed -1 Allocation failed 0 - Not allocated; 1 - In allocation 2 - Allocated 3 - Deleting |
| deviceStatus | 1 | Integer | No | Physical machine status 0-offline; 1 - Online |
| armServerCode | XS-MARS3500SA-0019 | String | No | Server code |
| deviceCode | 192.168.230.100 | String | No | Board code |
| deviceIp | 172.31.3.3 | String | No | deviceIp |
| armServerStatus | 1 | Integer | No | Server status 0-offline; 1 - Online |
| idc | 1 | String | No | Data center ID |
| deviceIpList | String[] | No | ||
| ├─ | 172.31.3.3 | String | No | Board IP |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | Object | ||
| ├─page | 1 | Integer | Current page |
| ├─rows | 10 | Integer | The number per page |
| ├─size | 1 | Integer | Current page count |
| ├─total | 1 | Integer | Total recorded count |
| ├─totalPage | 1 | Integer | Total pages |
| ├─pageData | object[] | List | |
| ├─├─id | 11236 | Integer | Board ID |
| ├─├─deviceLevel | m2-3 | String | Cloud machine instance level |
| ├─├─deviceCode | AC32010250020 | String | Physical machine number |
| ├─├─deviceOutCode | 03-58614134b4357321 | String | External physical machine encoding |
| ├─├─deviceStatus | 172.31.3.0/24 | Integer | Physical machine status 0-offline; 1 - Online |
| ├─├─deviceIp | 172.31.3.3 | Integer | Physical machine IP |
| ├─├─idc | 1 | Integer | External data center code |
| ├─├─armServerCode | ACS32010260000 | String | ARM server encoding |
| ├─├─createBy | admin | String | Founder |
| ├─├─createTime | 2025-01-02 10:56:13 | String | Creation date |
| ├─├─padAllocationStatus | 2 | Integer | Instance allocation status: -2 Delete failed -1 Allocation failed 0 - Not allocated; 1 - In allocation 2 - Allocated 3 - Deleting |
| ├─├─clusterCode | 001 | String | Cluster code |
| ├─├─macAddress | 52:74:01:b8:58:40 | String | MAC address |
| ├─├─initStatus | 1 | String | Initialization status: 0 - Initialization failed 1 - Initialization successful 2 - Initialization in progress |
| ├─├─cbsInfo | 2.0.8 | String | CBS Board |
| ├─├─nodeId | 1 | String | Blade ID |
| ├─├─position | 3 | String | Slot position |
| ├─├─gateway | 192.168.3.1 | String | Board Gateway |
Request Example
{
"padAllocationStatus": 2,
"deviceStatus": 1,
"armServerCode": "ACS32010260000",
"deviceCode": "AC32010250020",
"deviceIpList": [
"172.31.3.3"
],
"deviceIp": "172.31.3.3",
"armServerStatus": 1
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1737626655161,
"data": {
"page": 1,
"rows": 10,
"size": 1,
"total": 1,
"totalPage": 1,
"pageData": [
{
"page": 1,
"rows": 10,
"id": 11236,
"deviceLevel": "m2-3",
"deviceCode": "AC32010250020",
"deviceOutCode": "03-58614134b4357321",
"deviceStatus": true,
"deviceIp": "172.31.3.3",
"idc": "1",
"armServerCode": "ACS32010260000",
"createBy": "admin",
"createTime": "2025-01-02 10:56:13",
"padAllocationStatus": 2,
"deleteFlag": false,
"clusterCode": "001",
"macAddress": "52:74:01:b8:58:40",
"initStatus": 1,
"cbsInfo": "2.0.8",
"nodeId": "1",
"position": "3",
"gateway": null
}
]
}
}
Designated Board Cards to Query Accounts
Query the account based on the board number.
Interface Address
/openapi/open/device/queryDeviceOwner
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| deviceCode | ZSC250403Mxxxx | String | is | Board number |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Interface request status information |
| data | Object | Business returns data | |
| ├─deviceCode | ZSC250403Mxxxx | String | Board number |
| ├─customerAccount | xxx | String | The account belongs to the board |
| traceId | extrgsyx962o | String | Link Tracing ID |
| Request Example |
{
"deviceCode":"ZSC250403Mxxxx"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1772447216373,
"data": {
"deviceCode": "ZSC250403Mxxxx",
"customerAccount": "xxxx"
},
"traceId": "feslqausejuo"
}
Querying Computing Power Usage
Summarize the usage of computing power units.
Verification instructions: Sub-accounts can only query themselves; When specifying a query, the sub-account list must be a collection of subordinate accounts of the current main account.
Interface Address
/openapi/open/device/computeUsage
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| queryRange | 0 | Integer | No | Query scope: 0-main account and all sub-accounts; 1 - Only itself (default); 2 - Specify the list of sub-accounts |
| subCustomerIds | [862, 863] | Long[] | No | Sub-account ID list, mandatory when queryRange=2 |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | List of account hash power usage | |
| ├─customerId | 10001 | Long | Customer ID |
| ├─customerAccount | test001 | String | Customer account |
| ├─usedCompute | 2 | Long | Amount of hash power used |
| ├─totalCompute | 8 | Long | Total hash rate |
Request Example
{
"queryRange": 0
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1737626655161,
"data": [
{
"customerId": 10001,
"customerAccount": "master001",
"usedCompute": 4,
"totalCompute": 12
},
{
"customerId": 10002,
"customerAccount": "sub001",
"usedCompute": 1,
"totalCompute": 4
}
]
}
Board Restart
Powering off and restarting the board will affect all instances created on the board
This interface is generally used when restarting the instance cannot be recovered
Interface Address
/openapi/open/device/powerReset
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| deviceIps | String[] | Yes | ||
| ├─ | 172.31.4.124 | String | Yes | Physical device IP |
| type | 2 | String[] | Yes | Restart Type 1: Hard Restart 2: Power Cut Restart |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─deviceIp | 172.31.4.124 | String | Physical device IP |
| ├─errorMsg | “” | String | The reason for failure |
| ├─deviceOutCode | AC22030010000 | String | Cloud machine numbering |
Request Example
{
"deviceIps": [
"172.31.4.124"
],
"type":2
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1713773577581,
"data": [
{
"taskId": 1,
"deviceIp": "172.31.4.124",
"errorMsg": null,
"deviceOutCode": "AC22030010000"
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110030 | Failing to execute power-off restart command, parameter request is non-compliant | Parameter requests are non-compliant |
| 110032 | Physical IP does not exist | Please check that the physical device's IP address is correct |
| 110033 | Failing to execute power-off and restart command | Contact relevant personnel |
Reset Board
Reset the board, clear the corresponding instance, and restart the board
Interface Address
/openapi/open/device/resetDevice
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| remark | Confirm deletion | String | is | Reset remarks information |
| deviceIps | String[] | Yes | List of physical machine IPs (minimum 1, maximum 128) | |
| ├─ | 172.31.3.3 | String | is | Board IP |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Response code |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | 1 example of board deletion! | String | News content |
Request Example
{
"deviceIps": [
"172.31.3.3"
],
"remark": "1"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": "1个板卡删除实例!",
"ts": 1739954448827
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110060 | The board does not exist | Confirm that the board IP is correct |
Check Latest Preheating Successful Images
Retrieves the list of mirror IDs that have recently preheated successfully, returning up to 3 records.
Interface Address
/openapi/open/device/getLatestWarmupSuccessImages
Request Method
GET
Request Data Types
None
Request Query Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| customerId | 178 | Long | No | Customer ID (administrators can pass this parameter to query images of specified customers; regular users ignore this parameter) |
Note:
- Regular users: No need to pass parameters; automatically query the current user's preheating successful image
- Administrator user: Can pass
customerIdparameters to query the preheating success image of a specified customer
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1713773577581 | Long | Timestamp |
| traceId | ewab8qjqbaio | String | Link Tracing ID |
| data | WarmupSuccessImageVO[] | Latest preheating success image information list, up to 3 items | |
| ├─ customerId | 178 | Long | Customer ID |
| ├─ customerAccount | testa | String | Customer account |
| ├─ customerName | Zhang San | String | Customer name |
| ├─ imageId | IMG-20250305001 | String | Mirror ID |
| ├─ imageVersion | 20251027_1 | String | Mirror version |
| ├─ imageDesc | Testing | String | Mirror description |
| ├─ supportF2fs | 1 | Integer | Does F2FS support (1: Support 0: Not supported) |
| ├─ fileTag | 0 | Integer | File tags (1: deletable 0: cannot be deleted) |
| ├─ androidVersion | 13 | Integer | Android version |
Request Example
/openapi/open/device/getLatestWarmupSuccessImages
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1713773577581,
"traceId": "ewab8qjqbaio",
"data": [
{
"customerId": 178,
"customerAccount": "testa",
"customerName": "Zhang San",
"imageDesc": "Testing",
"imageVersion": "20251027_1",
"imageId": "IMG-20250305001",
"fileTag": 1,
"supportF2fs": 1,
"androidVersion": 13
},
{
"customerId": 178,
"customerAccount": "testa",
"customerName": "Zhang San",
"imageDesc": "Testing",
"imageVersion": "20251027_1",
"imageId": "IMG-20250304002",
"fileTag": 1,
"supportF2fs": 1,
"androidVersion": 13
},
{
"customerId": 178,
"customerAccount": "testa",
"customerName": "Zhang San",
"imageDesc": "Testing",
"imageVersion": "20251027_1",
"imageId": "IMG-20250303005",
"fileTag": 1,
"supportF2fs": 1,
"androidVersion": 12
}
]
}
NetStorage 2.0
1. Comparison between Network Storage 2.0 and Network Storage 1.0

- Significantly optimized API interfaces to reduce failure rates during startup/shutdown tasks.
- NetStorage 2.0 integrates instances and storage, eliminating the need for complex relationship management between storage blocks and instances; deleting instances means deleting instances and corresponding storage.
2. Quick Entry

- Purchase boards to gain computing power
- Check the board information
- Set the board specifications (multiple sheets)
- Create a network storage instance
- Boot on using a newly created instance or a previously shutdown instance
- Complete business shutdown
- Clone a single instance into multiple units for use (cloned instances are individual entities and can modify device model attributes, image versions, etc.)
3. API Interface
Create a Mesh Instance
Used to create the NetMemory 2.0 instance interface, supports batch creation, with a maximum of 100 instances created at once.
Interface Address
/openapi/open/pad/v2/net/storage/res/create
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| clusterCode | 001 | String | Yes | Cluster coding identifies the cluster to which the instance belongs |
| specificationCode | SPEC_001 | String | Yes | Specification code, defines the hardware specifications of the instance |
| imageId | IMG_123456 | String | No | Image ID, used to create the system image of the instance. not passed, press aospVersion to get the default image configured by that client |
| aospVersion | android13 | String | No | AOSP version. only takes effect when imageId is not passed, is used to retrieve the default image configured by the customer under that AOSP version |
| number | 5 | Integer | Yes | The number of instances must be between 1 and 100 |
| storageSize | 32 | Integer | Yes | Storage size (GB) must be greater than 0, supported: 4, 8, 16, 32, 64, 128, 256 |
| screenLayoutCode | LAYOUT_001 | String | No | Screen layout encoding, mandatory if not random ADI templates and no ADI template parameters are passed |
| randomADITemplates | false | Boolean | No | Whether to randomly select an ADI template is false by default |
| excludeRealPhoneTemplateIds | [101,102] | List<Long> | No | List of template IDs to exclude when randomizing ADI templates; validity takes effect when randomADITemplates is true |
| realPhoneTemplateId | 12345 | Long | No | ADI Template ID, specifying the ADI template to use |
| countryCode | SG | String | No | Country code. It only takes effect on the first boot. If the system is empty, use the country code passed in during creation; if all are empty, SG is the default. |
| groupId | 0 | Integer | No | Group IDs default to public pools. |
imageId and aospVersion value rules
- Pass in
imageId: Create instances using this image according to the original logic,aospVersiondo not take effect (the original caller does not need to make any changes). - No
imageIdpassed:aospVersionmust be passed, and the system creates instances using the default image configured by the client for that AOSP version. imageIdandaospVersionare both empty: Reporting parameter errorimageId和aospVersion不能同时为空.- Passing in a
aospVersion, but the customer did not configure the default image for that AOSP version, or the configured default image is invalid (deleted/disabled): Reporting a parameter error未传imageId,且未设置aospVersion=xxx对应的默认镜像.
The default image is configured by ArmCloud operations at the (customer, AOSP version) dimension. For use, please contact the business/technical support provider.
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | [ {...} ] | Object[] | Create a list of results |
| ├─ padCode | ACN1234567890123 | String | Example coding |
| ├─ padName | Network storage example 001 | String | Instance name |
| ├─ status | 0 | Integer | Instance status |
Request Example
{
"clusterCode": "001",
"specificationCode": "SPEC_001",
"imageId": "IMG_123456",
"number": 5,
"storageSize": 32,
"screenLayoutCode": "LAYOUT_001",
"randomADITemplates": true,
"excludeRealPhoneTemplateIds": [101, 102],
"countryCode": "SG"
}
Request Example (without passing imageId, obtain the client's default image according to the AOSP version)
{
"clusterCode": "001",
"specificationCode": "SPEC_001",
"aospVersion": "android13",
"number": 5,
"storageSize": 32,
"screenLayoutCode": "LAYOUT_001",
"countryCode": "SG"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACN1234567890123",
"clusterCode": "001",
"storageSize": 32
},
{
"padCode": "ACN1234567890124",
"clusterCode": "001",
"storageSize": 32
}
],
"ts": 1742536327373
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 100000 | Cluster codes cannot be empty | Provides effective cluster coding |
| 100000 | The specification code cannot be empty | Provide valid specification codes |
| 100000 | imageId and aospVersion cannot be empty at the same time | At least one of the two is passed: either by passing imageId to specify the image, or by passing aospVersion to use the client's default image |
| 100000 | No imageId was passed, and the default image corresponding to aospVersion=xxx was not set | If the customer does not configure the default image or the default image is disabled in this AOSP version, directly pass the imageId or contact the administrator to configure the default image |
| 100000 | The number of instances must be between 1 and 100 | Adjust the number of instances to the effective range |
| 100000 | Storage size must be greater than 0 | Provides efficient storage size |
| 100000 | The screen layout encoding cannot be empty | Screen layout encoding is provided when the ADI template is not random and no ADI template is specified |
| 100000 | DNS format error | Confirm that the DNS format is correct |
| 110044 | The instance specifications do not exist | Confirm that the specification code is correct, then contact the administrator to confirm the specification configuration |
| 110041 | Mirrors do not exist | Confirm that the image ID is correct and check if the image is usable |
| 110045 | The screen layout does not exist | Confirm that the screen layout encoding is correct |
| 110099 | The ADI template does not exist; please check the parameters | Confirm that the ADI template ID is correct |
| 220003 | Current storage specifications are not supported at this time; please refer to the documentation settings | Supported storage specifications: 4, 8, 16, 32, 64, 128, 256GB |
| 220009 | If the current cluster storage capacity is insufficient, please contact the administrator | Contact the administrator to increase storage capacity or delete the cleanup instance |
| 110077 | Failed to obtain instance MAC, please try again | Try again later or contact the administrator |
Batch boot of network storage instances
Used for batch booting multiple network memory instances
Interface Address
/openapi/open/pad/v2/net/storage/batch/boot/on
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN250321HRKNE3F", "ACN250321HRKNE3G"] | String[] | Yes | List of instances that need to be powered on, with a range of 100 to 200 |
| dns | 8.8.8.8 | String | No | DNS configuration |
| countryCode | SG | String | No | Country code (see https://chahuo.com/country-code-lookup.html) Only activates when the instance boots for the first time; if not passed, use the country code passed in during instance creation (if empty, default is SG). |
| androidProp | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Android attribute configuration, refer to the Android Modification Attribute List (Note: time zone, language, and country attributes are currently not active ) |
| timeout | 1800 | Integer | No | Timeout time (seconds), range: 300-7200 seconds (5 minutes - 120 minutes) |
| imageId | img-25081965158 | String | No | Image ID: Supports changing the image ID at startup, and it takes effect every time the device is input at startup. note: Only mirrored of the same version is supported |
| regenSim | true | Boolean | No | Do you need to regenerate SIM information based on the country code? (Note: Previously, SIM information was only generated based on country code during the first boot; regenSim is ture, regardless of whether the first boot is or not, SIM information is generated based on country code, default is false) |
| certCode | ACN631098529xxxxx | String | No | Specify the certificate code; if not transferred, use the default certificate |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 does not mean the instance operation was successful; whether the instance was successful depends on the successList itself) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | {...} | Object | Operation result data |
| ├─ successList | [{...}] | Array | List of successful operations (asynchronous callback, indicating the current asynchronous execution was successful; business results require waiting for callbacks) |
| ├─ successList[].taskId | 13023 | Integer | Task ID |
| ├─ successList[].padCode | ACN280512603291648 | String | Example coding |
| ├─ successList[].vmStatus | 0 | Integer | Instance status |
| ├─ failList | [{...}] | Array | List of failed operations, caused by failure in business validation or other abnormalities causing operations to fail |
| ├─ failList[].padCode | ACN279133733257216 | String | Example coding |
| ├─ failList[].errCode | 110028 | String | Error code |
| ├─ failList[].errMsg | There are no instances | String | Reasons for failure |
| Request Example |
{
"padCodes": ["ACN250321HRKNE3F", "ACN250321HRKNE3G"],
"dns": "8.8.8.8",
"countryCode": "US",
"androidProp": {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"},
"timeout": 1800
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1752480095637,
"data": {
"successList": [
{
"taskId": 10111,
"padCode": "ACN281696605700096",
"vmStatus": 0
}
],
"failList": [
{
"errCode": 110028,
"padCode": "ACN281696605700095",
"errMsg": "实例不存在"
},
{
"errCode": 110028,
"padCode": "ACN281696605700094",
"errMsg": "实例不存在"
},
{
"errCode": 110028,
"padCode": "ACN281696605700093",
"errMsg": "实例不存在"
}
]
}
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 100000 | The instance encoding list cannot be empty | Make sure the padCodes parameter is not empty |
| 100000 | Number of instances ranges from 1 to 200 | Make sure the number of padCodes is between 1 and 200 |
| 100000 | The overtime must be between 5 minutes and 120 minutes | Ensure the timeout parameter is within the range of 300-7200 seconds |
| 100000 | DNS format error | Confirm that the DNS format is correct |
| 110042 | There exists instances that do not belong to the current user | Check whether the instance belongs to the current user |
| 110071 | There are non-net-memory instances | Confirm that the instance type is a network storage instance |
| 110079 | There are instances where hash power has not been released | Wait for the computing power to be released and then retry |
| 111070 | Do not repeat the operation; the current instance is currently booting | Wait for the current boot operation to finish and then try again |
| 111076 | Do not repeat the operation; the current instance is powered off | Wait for the shutdown operation to complete and then try again |
| 111071 | There are instances where the device is neither shutdown nor failed to boot, and startup operations are not allowed | Confirm that the instance status is either shutdown or failed to boot |
| 111074 | Batch boot failure of network memory instances (system exception) | System errors; please try again later or contact technical support |
| 110074 | Failed to obtain computing power units, please try again | Try again later or contact the administrator |
| 110075 | Failed to obtain the instance IP. Please try again | Retest shortly |
| 110076 | ARM server network segments do not exist | Contact the administrator to check the network segment configuration |
| 2200014 | Currently, there are no available computing resources in the cluster. If the resources are insufficient, please contact the administrator for assistance | Wait for computing resources to be released or contact the administrator |
| 111079 | The board belonging to the current instance is offline | Try again later or contact the administrator |
| 111081 | NetStorage 1.0 instances are not supported | Use the NetMemory 2.0 instance to call the interface |
Batch shutdown of network storage instances
Used for batch shutdown operations on NetMemory 2.0 instances. Supports shutting down multiple instances simultaneously; only instances that are running or in a failed shutdown state can perform shutdown operations.
Interface Address
/openapi/open/pad/v2/net/storage/batch/off
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN250321HRKNE3F", "ACN250321HRKNE3G"] | String[] | Yes | List of instances that need to be shut down, with a maximum of 200 instances allowed to be shut down simultaneously |
| timeout | 1800 | Integer | No | Timeout time (seconds), range: 300-7200 seconds (5 minutes to 120 minutes) |
| forceDel | false | Boolean | No | Please use with caution Whether to force deletion (will shut down and delete instances directly, data not retained) is set to false by default. Supported by CBS version 2.3.5 and above |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 does not mean the instance operation was successful; whether the instance was successful depends on the successList itself) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | {...} | Object | Operation result data |
| ├─ successList | [{...}] | Array | List of successful operations (asynchronous callback, indicating the current asynchronous execution was successful; business results require waiting for callbacks) |
| ├─ successList[].taskId | 13023 | Integer | Task ID |
| ├─ successList[].padCode | ACN280512603291648 | String | Example coding |
| ├─ successList[].vmStatus | 0 | Integer | Instance status |
| ├─ failList | [{...}] | Array | List of failed operations, caused by failure in business validation or other abnormalities causing operations to fail |
| ├─ failList[].padCode | ACN279133733257216 | String | Example coding |
| ├─ failList[].errCode | 110028 | String | Error code |
| ├─ failList[].errMsg | There are no instances | String | Reasons for failure |
Request Example
{
"padCodes": ["ACN250321HRKNE3F", "ACN250321HRKNE3G"],
"timeout": 1800
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1752480095637,
"data": {
"successList": [
{
"taskId": 10111,
"padCode": "ACN281696605700096",
"vmStatus": 0
}
],
"failList": [
{
"errCode": 110028,
"padCode": "ACN281696605700095",
"errMsg": "实例不存在"
},
{
"errCode": 110028,
"padCode": "ACN281696605700094",
"errMsg": "实例不存在"
},
{
"errCode": 110028,
"padCode": "ACN281696605700093",
"errMsg": "实例不存在"
}
]
}
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 100000 | The instance encoding list cannot be empty | Make sure the padCodes parameter is not empty |
| 100000 | Number of instances ranges from 1 to 200 | Ensure the number of instances ranges from 1 to 200 |
| 100000 | The overtime must be between 5 minutes and 120 minutes | Set a reasonable timeout time (300-7200 seconds) |
| 110028 | There are no instances | Check whether the instance code is correct |
| 110071 | There are non-net-memory instances | Make sure all operations are on the network storage instance |
| 110042 | There exists instances that do not belong to the current user | Check instance attribution permissions |
| 111072 | The instance is not bound to computing power and cannot shut down | Ensure the instance is bound to the computing power resource |
| 111073 | Consecutive failed shutdowns of the network storage instance | Check the instance status and contact the administrator for assistance |
| 111070 | Do not repeat the operation; the current instance is currently booting | Wait for the current boot operation to finish and then try again |
| 111076 | Do not repeat the operation; the current instance is powered off | Wait for the shutdown operation to complete and then try again |
| 111078 | If there are instances that are not running and not in a failed shutdown state, shutdown operations are not allowed | Confirm that the instance status is running or failed to shut down |
| 111079 | The board belonging to the current instance is offline | Try again later or contact the administrator |
| 111080 | The CBS version does not support forced deletion | If needed, please contact the administrator to upgrade to the CBS version |
| 111081 | NetStorage 1.0 instances are not supported | Use the NetMemory 2.0 instance to call the interface |
Batch forced shutdown of network memory instances
Interface Type: Asynchronous interface Association Callback: NetStorage 2.0 Forced Shutdown Callback (taskBusinessType: 1308)
Used to batch force shutdown operations on NetStorage 2.0 instances. The forced shutdown device shuts down directly and deletes instance data (without rewriting CEPH), using a separate queue channel from regular shutdown, unaffected by the regular shutdown queue. Only instances that are running or in a failed shutdown state can perform forced shutdown operations.
Note: After a forced shutdown, instance data will be deleted and cannot be recovered. Please use with caution. Requires CBS version > = 2.8.4.
Interface Address
/openapi/open/pad/v2/net/storage/batch/forceOff
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN250321HRKNE3F", "ACN250321HRKNE3G"] | String[] | Yes | A list of instances that require forced shutdown, allowing up to 200 instances to operate simultaneously |
| timeout | 1800 | Integer | No | Timeout time (seconds), range: 300-7200 seconds (5 minutes to 120 minutes) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 does not mean the instance operation was successful; whether the instance was successful depends on the successList itself) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | {...} | Object | Operation result data |
| ├─ successList | [{...}] | Array | List of successful operations (asynchronous callback, indicating the current asynchronous execution was successful; business results require waiting for callbacks) |
| ├─ successList[].taskId | 13023 | Integer | Task ID |
| ├─ successList[].padCode | ACN280512603291648 | String | Example coding |
| ├─ successList[].vmStatus | 0 | Integer | Instance status |
| ├─ failList | [{...}] | Array | List of failed operations, caused by failure in business validation or other abnormalities causing operations to fail |
| ├─ failList[].padCode | ACN279133733257216 | String | Example coding |
| ├─ failList[].errCode | 110028 | String | Error code |
| ├─ failList[].errMsg | There are no instances | String | Reasons for failure |
Request Example
{
"padCodes": ["ACN250321HRKNE3F", "ACN250321HRKNE3G"],
"timeout": 1800
}
Error Codes
| Error code | False information | Suggested handling methods |
|---|---|---|
| 100000 | Number of instances ranges from 1 to 200 | Ensure the number of instances ranges from 1 to 200 |
| 110028 | There are no instances | Check whether the instance code is correct |
| 110071 | There are non-net-memory instances | Make sure all operations are on the network storage instance |
| 110042 | There exists instances that do not belong to the current user | Check instance attribution permissions |
| 111072 | The instance is not bound to computing power and cannot shut down | Ensure the instance is bound to the computing power resource |
| 111073 | Consecutive failed shutdowns of the network storage instance | Check the instance status and contact the administrator for assistance |
| 111076 | Do not repeat the operation; the current instance is powered off | Wait for the shutdown operation to complete and then try again |
| 111078 | If there are instances that are not running and not in a failed shutdown state, shutdown operations are not allowed | Confirm that the instance status is running or failed to shut down |
| 111080 | The CBS version does not support forced shutdown | CBS version requires >=2.8.4. Please contact your administrator to upgrade |
| 111081 | NetStorage 1.0 instances are not supported | Use the NetMemory 2.0 instance to call the interface |
Batch deletion of network storage instances
Used for batch deletion of network memory instances, supports passing multiple instances for batch deletion operations.
Interface Address
/openapi/open/pad/v2/net/storage/batch/delete
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN250321HRKNE3F", "ACN250321HRKNE3G"] | String[] | Yes | List of instance codes to be deleted, with a range of 1 to 200 instances |
| timeout | 1800 | Integer | No | Timeout time (seconds), range: 300-7200 seconds (5 minutes - 120 minutes) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 does not mean all instances succeeded; whether the instance succeeded depends on the successList itself) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | {...} | Object | Operation result data |
| ├─ successList | [{...}] | Array | List of successful operations (asynchronous callback, indicating the current asynchronous execution was successful; business results require waiting for callbacks) |
| ├─ successList[].taskId | 13023 | Integer | Task ID |
| ├─ successList[].padCode | ACN280512603291648 | String | Example coding |
| ├─ successList[].vmStatus | 0 | Integer | Instance status |
| ├─ failList | [{...}] | Array | List of failed operations, caused by failure in business validation or other abnormalities causing operations to fail |
| ├─ failList[].padCode | ACN279133733257216 | String | Example coding |
| ├─ failList[].errCode | 110028 | String | Error code |
| ├─ failList[].errMsg | There are no instances | String | Reasons for failure |
| ├─ completeList | [{...}] | Array | A list of completed operations, examples that do not require asynchronous operations |
| ├─ completeList[].padCode | ACN279133733257231 | String | Example coding |
Request Example
{
"padCodes": ["ACN250321HRKNE3F", "ACN250321HRKNE3G"],
"timeout": 1800
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1752480095637,
"data": {
"successList": [
{
"taskId": 10111,
"padCode": "ACN281696605700096",
"vmStatus": 0
}
],
"failList": [
{
"errCode": 110028,
"padCode": "ACN281696605700095",
"errMsg": "实例不存在"
},
{
"errCode": 110028,
"padCode": "ACN281696605700094",
"errMsg": "实例不存在"
},
{
"errCode": 110028,
"padCode": "ACN281696605700093",
"errMsg": "实例不存在"
}
],
"completeList": [
{
"padCode": "ACN281696605700096"
}
]
}
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 100000 | The instance encoding list cannot be empty | Check whether the padCodes parameter is passed |
| 100000 | Number of instances ranges from 1 to 200 | Check whether the padCodes' array length is within the valid range |
| 100000 | The overtime must be between 5 minutes and 120 minutes | Check whether the timeout parameter is within the 300-7200 second range |
| 110028 | There are no instances | Check whether the incoming instance code is correct |
| 110042 | There exists instances that do not belong to the current user | Check whether the instance belongs to the currently logged-in user |
| 110071 | There are non-net-memory instances | Confirm that all incoming instances are network memory instances |
| 111070 | Do not repeat the operation; the current instance is currently booting | Wait until the startup operation is complete before deleting it |
| 111073 | Instances that are not currently powered down cannot be deleted | Make sure all instances are powered down before deleting |
| 111077 | Do not repeat the operation; the current instance is being deleted | Wait for the current deletion operation to complete |
| 111079 | The board belonging to the current instance is offline | Try again later or contact the administrator |
| 111081 | NetStorage 1.0 instances are not supported | Use the NetMemory 2.0 instance to call the interface |
Network Storage Example Cloning
Used for cloning a single network storage instance, supports specifying the number of clones and note information. This interface only supports network storage 2.0 instances that are powered on and powered on. Additionally, special attention should be paid to: ** must be connected to callback processing; instances created after successful cloning will be returned in the callback messages. **
Interface Address
/openapi/open/pad/v2/net/storage/clone
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | ACN250321HRKNE3F | String | Yes | The original instance code needed to be cloned |
| number | 2 | Integer | Yes | Number of clones, range 1-100 |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code: 200 means successful |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | {...} | Object | Clone result information |
| ├─ successList | [{...}] | Array | List of successful operations (asynchronous callback, indicating the current asynchronous execution was successful; business results require waiting for callbacks) |
| ├─ successList[].taskId | 13023 | Integer | Task ID |
| ├─ successList[].padCode | ACN280512603291648 | String | Example coding |
| ├─ successList[].vmStatus | 0 | Integer | Instance status |
| ├─ failList | [{...}] | Array | List of failed operations, caused by failure in business validation or other abnormalities causing operations to fail |
| ├─ failList[].padCode | ACN279133733257216 | String | Example coding |
| ├─ failList[].errCode | 110028 | String | Error code |
| ├─ failList[].errMsg | There are no instances | String | Reasons for failure |
Request Example
{
"padCode": "ACN250321HRKNE3F",
"number": 2,
"remark": "Test cloning"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": {
"successList": [
{
"taskId": 13023,
"padCode": "ACN250321HRKNE3F",
"vmStatus": 0
}
],
"failList": []
},
"ts": 1742536327373
}
Callback Examples
{
"endTime": 1754724268268,
"padCode": "ACN319190980034587",
"taskBusinessType": 1304,
"taskContent": "[\"ACN319348753039360\",\"ACN319348753039363\",\"ACN319348753039366\",\"ACN319348753039369\",\"ACN319348753039372\",\"ACN319348753039375\",\"ACN319348753039378\",\"ACN319348753039381\",\"ACN319348753039384\",\"ACN319348753039387\"]",
"taskId": 10682,
"taskResult": "Success",
"taskStatus": 3
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 100000 | Incorrect request parameters | Check whether the requested parameters are complete |
| 100000 | The instance number cannot be empty | Ensure the padCode parameter is not empty |
| 100000 | The number of clones cannot be empty and must be greater than 0 | Make sure the number parameter is greater than 0 and not empty |
| 100000 | The number of clones cannot exceed 100 | Make sure the number parameter does not exceed 100 |
| 111081 | NetStorage 1.0 instances are not supported | Make sure the instance type is Cache V2 instance |
| 110028 | There are no instances | Check whether the instance code is correct |
| 111083 | Instances that are not powered down are not allowed to be cloned | Ensure the instance status is off |
| 111085 | The instance does not have boot behavior and does not allow cloning | Make sure the instance has been powered on at least once |
| 111082 | Network storage units do not exist | Check whether the instance storage configuration is normal |
| 111086 | If the instance does not generate data after booting, cloning is not allowed | Ensure the instance has effective data storage |
| 111087 | The CBS version does not support cloning. Please upgrade to the CBS version and try again | Please contact us to upgrade to the CBS version |
| 111084 | Do not repeat the operation; the current instance is currently being cloned | It's best not to make concurrent calls |
| 111070 | Do not repeat the operation; the current instance is currently booting | It's best not to make concurrent calls |
| 111076 | Do not repeat the operation; the current instance is powered off | It's best not to make concurrent calls |
| 111077 | Do not repeat the operation; the current instance is being deleted | It's best not to make concurrent calls |
| 500 | System anomaly | System errors; please try again later or contact technical support |
Application Security Policy V2.0
1. API Interface
Paginated Search for Application Security Policy Group Lists
Used for paginating the list of application security policy groups, supports filtering by policy group name and type, and uses lastId+rows for paginated queries.
Interface Address
/openapi/open/appSecurityPolicyGroup/pageList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| policyName | Test strategy group | String | No | Policy group name (fuzzy query) |
| policyType | 0 | Integer | No | Strategy group types (0-blacklist, 1-whitelist) |
| lastId | 0 | Long | No | For the last record ID of the last query, pass null or 0 for the first query |
| rows | 10 | Integer | Yes | Query quantity, range 1-1000, default 10 |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | {...} | Object | Paginated result data |
| ├─ pageData | [{...}] | Array | List of strategy groups |
| ├─ pageData[].id | 123 | Long | Strategy group ID |
| ├─ pageData[].policyName | Test strategy group | String | Strategy group name |
| ├─ pageData[].policyType | 0 | Integer | Strategy group types (0-blacklist, 1-whitelist) |
| ├─ pageData[].appCount | 5 | Integer | Number of applications |
| ├─ pageData[].padCount | 10 | Integer | Number of instances |
| ├─ pageData[].remark | Note the information | String | Note |
| ├─ pageData[].createTime | 2025-01-29 10:00:00 | String | Creation date |
| ├─ pageData[].updateTime | 2025-01-29 10:00:00 | String | Update time |
| ├─ lastId | 123 | Long | The last record ID is used for the next page query |
| ├─ rows | 10 | Integer | Query quantity |
| ├─ size | 10 | Integer | Current page count |
| ├─ hasNext | true | Boolean | Is there a next page? |
Request Example
{
"policyName": "Testing",
"policyType": 0,
"lastId": 0,
"rows": 10
}
Response Examples
{
"msg": "success",
"code": 200,
"data": {
"pageData": [
{
"id": 123,
"policyName": "Test strategy group",
"policyType": 0,
"appCount": 5,
"padCount": 10,
"remark": "Note the information",
"createTime": "2025-01-29 10:00:00",
"updateTime": "2025-01-29 10:00:00"
}
],
"lastId": 123,
"rows": 10,
"size": 10,
"hasNext": true
},
"ts": 1742536327373
}
Query Application Security Policy Group Details
Used to query detailed information of application security policy groups based on policy group IDs, including information about associated applications and instances.
Interface Address
/openapi/open/appSecurityPolicyGroup/detail
Request Method
POST
Request Data Types
application/json
Request Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | Yes | Strategy group ID |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | {...} | Object | Detailed data from the strategy group |
| ├─ id | 123 | Long | Strategy group ID |
| ├─ policyName | Test strategy group | String | Strategy group name |
| ├─ policyType | 0 | Integer | Strategy group types (0-blacklist, 1-whitelist) |
| ├─ appNum | 5 | Integer | Number of applications |
| ├─ padNum | 10 | Integer | Number of instances |
| ├─ remark | Note the information | String | Note |
| ├─ appInfos | [{...}] | Array | Application information list |
| ├─ appInfos[].fileId | 456 | Long | File ID |
| ├─ appInfos[].appId | 789 | Long | Application ID |
| ├─ appInfos[].appName | Test applications | String | App name |
| ├─ appInfos[].packageName | com.test.app | String | Package name |
| ├─ appInfos[].appVersionNo | 1 | Integer | Application version number |
| ├─ appInfos[].appVersionName | 1.0.0 | String | Apply the version name |
| ├─ padInfos | [{...}] | Array | List of example information |
| ├─ padInfos[].padcode | ACN1234567890123 | String | Example code |
| ├─ padInfos[].padType | real | String | Instance Types (real-Cloud-Real, virtual-Virtual Machine) |
| ├─ padInfos[].padImageId | img_123456 | String | Instance image ID |
| ├─ padInfos[].padImageAosp | 10 | String | Instance mirrors the AOSP version |
| ├─ padInfos[].padImageVersion | 20251023_2 | String | Instance image version |
| ├─ padInfos[].padIp | 192.168.1.100 | String | Instance IP |
Request Example
POST /openapi/open/appSecurityPolicyGroup/detail?id=123
Response Examples
{
"msg": "success",
"code": 200,
"data": {
"id": 123,
"policyName": "Test strategy group",
"policyType": 0,
"appNum": 5,
"padNum": 10,
"remark": "Note the information",
"appInfos": [
{
"fileId": 456,
"appId": 789,
"appName": "Test applications",
"packageName": "com.test.app",
"appVersionNo": 1,
"appVersionName": "1.0.0"
}
],
"padInfos": [
{
"padcode": "ACN1234567890123",
"padType": "real",
"padImageId": "img_123456",
"padImageAosp": "10",
"padImageVersion": "20251023_2",
"padIp": "192.168.1.100"
}
]
},
"ts": 1742536327373
}
New/Updated Application Security Policy Group
Used to add or update the application security policy group. Updates when the ID is passed; new when the ID is not passed.
Interface Address
/openapi/open/appSecurityPolicyGroup/save
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | No | Strategy Group ID (required for updates, can be left empty when added) |
| policyName | Test strategy group | String | Yes | Strategy group name (non-repeatable) |
| policyType | 0 | Integer | Yes | Strategy group types (0-blacklist, 1-whitelist) |
| remark | Note the information | String | No | Note |
| appInfos | [{...}] | Array | No | Application information list (pass null, no updates, pass empty array[], clear) |
| ├─ appInfos[].appId | 789 | Long | No | App ID (choose between appId or packageName) can be obtained by uploading the app |
| ├─ appInfos[].packageName | com.test.app | String | No | Package Name (choose either appId or packageName) If appId is valid, this field will not be active |
| padCodes | ["ACN1234567890123"] | String[] | No | Example code list (pass null without updates, pass empty array[] to clear) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | 123 | Long | Strategy group ID |
Request Example
{
"policyName": "Test strategy group",
"policyType": 0,
"remark": "Note the information",
"appInfos": [
{
"appId": 789
},
{
"packageName": "com.test.app"
}
],
"padCodes": ["ACN1234567890123"]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": 123,
"ts": 1742536327373
}
Delete the Application Security Policy Group
Used to delete the application security policy group based on the policy group ID.
Interface Address
/openapi/open/appSecurityPolicyGroup/delete
Request Method
POST
Request Data Types
application/json
Request Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | Yes | Strategy group ID |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | null | Object | No data returned |
Request Example
POST /openapi/open/appSecurityPolicyGroup/delete?id=123
Response Examples
{
"msg": "success",
"code": 200,
"data": null,
"ts": 1742536327373
}
Instance Replacement Policy Group
Used to replace an instance with a specified set of policy groups, with the parameter set as instance number + set of policy group id.
Interface Address
/openapi/open/appSecurityPolicyGroup/changePadPolicyGroups
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | ACN1234567890123 | String | Yes | Case number |
| policyGroupIds | [123, 456] | Long[] | Yes | Set of policy group IDs (up to 100) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | null | Object | No data returned |
Request Example
{
"padCode": "ACN1234567890123",
"policyGroupIds": [123, 456]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": null,
"ts": 1742536327373
}
Query instance association policy group
Used to query all policy groups associated with each instance by instance number collection.
Interface Address
/openapi/open/appSecurityPolicyGroup/queryPadPolicyGroups
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN1234567890123", "ACN1234567890124"] | String[] | Yes | Instance numbered collection |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | [{...}] | Array | The instance associates a list of policy groups |
| ├─ padCode | ACN1234567890123 | String | Case number |
| ├─ policyGroups | [{...}] | Array | List of associated strategy groups |
| ├─ policyGroups[].id | 123 | Long | Strategy group ID |
| ├─ policyGroups[].policyName | Test strategy group | String | Strategy group name |
| ├─ policyGroups[].policyType | 0 | Integer | Strategy group types (0-blacklist, 1-whitelist) |
| ├─ policyGroups[].appCount | 5 | Integer | Number of applications |
| ├─ policyGroups[].remark | Note the information | String | Note |
Request Example
{
"padCodes": ["ACN1234567890123", "ACN1234567890124"]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACN1234567890123",
"policyGroups": [
{
"id": 123,
"policyName": "Test strategy group",
"policyType": 0,
"appCount": 5,
"remark": "Note the information"
}
]
}
],
"ts": 1742536327373
}
Additional Update to Strategy Group
Used for additional updates to the strategy group, allowing for additional applications or instances. The input parameters are the policy group ID + application set + instance number set.
Interface Address
/openapi/open/appSecurityPolicyGroup/appendRelations
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| policyGroupId | 123 | Long | Yes | Strategy group ID |
| appInfos | [{...}] | Array | No | App information list (up to 100 items), each app information can choose either appId or packageName |
| ├─ appInfos[].appId | 789 | Long | No | Application ID (choose either appId or packageName) |
| ├─ appInfos[].packageName | com.test.app | String | No | If both the package name (choose between appId and packageName) exists, the valid appId shall prevail |
| padCodes | ["ACN1234567890123"] | String[] | No | Instance number collection (up to 100) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | null | Object | No data returned |
Request Example
{
"policyGroupId": 123,
"appInfos": [
{
"appId": 789
},
{
"packageName": "com.test.app"
}
],
"padCodes": ["ACN1234567890123"]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": null,
"ts": 1742536327373
}
Delete Application/Example in Policy Group
Used to delete applications/instances in policy groups; the application list and instance list cannot be empty at the same time.
Interface Address
/openapi/open/appSecurityPolicyGroup/removeRelations
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| policyGroupId | 123 | Long | Yes | Strategy group ID |
| appInfos | [{...}] | Array | No | App information list (up to 100 items), each app information can choose either appId or packageName |
| ├─ appInfos[].appId | 789 | Long | No | Application ID (choose either appId or packageName) |
| ├─ appInfos[].packageName | com.test.app | String | No | If both the package name (choose between appId and packageName) exists, the valid appId shall prevail |
| padCodes | ["ACN1234567890123"] | String[] | No | Instance number collection (up to 100) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | null | Object | No data returned |
Request Example
{
"policyGroupId": 123,
"appInfos": [
{
"appId": 789
},
{
"packageName": "com.test.app"
}
],
"padCodes": ["ACN1234567890123"]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": null,
"ts": 1742536327373
}
Net Storage 1.0
Creating a Database Instance
Used to create a network memory instance in a specified cluster (default type is virtual machine)
Interface Address
/openapi/open/pad/net/storage/res/create
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| clusterCode | 001 | String | is | Cluster code identifies the cluster to which the instance belongs |
| specificationCode | m2-3 | String | is | Specification code defines the performance configuration of the instance |
| imageId | img-25021828327 | String | No | Image ID, specifying the system image. not passed, press aospVersion to get the default image configured by that client |
| aospVersion | android13 | String | No | AOSP version. only takes effect when imageId is not passed, is used to retrieve the default image configured by the customer under that AOSP version |
| screenLayoutCode | realdevice_1440x3120x560 | String | is | Screen layout code |
| number | 2 | Integer | is | The number of instances that need to be created |
| dns | 8.8.8.8 | String | No | DNS server address |
| storageSize | 16 | Integer | is | Storage size (GB) |
| randomADITemplates | true | boolean | No | Random ADI template (if true, it means real machine, and randomly fill in an ADI template) |
| excludeRealPhoneTemplateIds | [36,37] | Long[] | No | List of template IDs to exclude when randomizing ADI templates; validity takes effect when randomADITemplates is true |
| realPhoneTemplateId | 36 | Integer | No | Real device template ID |
| groupId | 0 | Integer | No | Group IDs default to public pools. |
imageId and aospVersion value rules
- Pass in
imageId: Create instances using this image according to the original logic,aospVersiondo not take effect (the original caller does not need to make any changes). - No
imageIdpassed:aospVersionmust be passed, and the system creates instances using the default image configured by the client for that AOSP version. imageIdandaospVersionare both empty: Reporting parameter errorimageId和aospVersion不能同时为空.- Passing in a
aospVersion, but the customer did not configure the default image for that AOSP version, or the configured default image is invalid (deleted/disabled): Reporting a parameter error未传imageId,且未设置aospVersion=xxx对应的默认镜像.
The default image is configured by ArmCloud operations at the (customer, AOSP version) dimension. For use, please contact the business/technical support provider.
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536074329 | Long | Timestamp |
| data | Instance creation successful | String | Business returns information |
| ├─padCode | ACN250424UPHQOTG | Integer | Case number |
| ├─screenLayoutCode | realdevice_1440x3120x560 | String | Screen layout numbering |
| ├─netStorageResId | “ZSC250424G4S6RH1-ACN250424UPHQOTG” | String | Network storage code |
| ├─deviceLevel | “m2-4” | String | Example specifications |
| ├─clusterCode | “006” | String | Cluster numbering |
Request Example
{
"clusterCode": "001",
"specificationCode": "m2-3",
"imageId": "img-25021828327",
"screenLayoutCode": "realdevice_1440x3120x560",
"isolateCpu": true,
"isolateMemory": true,
"number": 2,
"isolateStorage": true,
"dns": "8.8.8.8",
"storageSize": 16,
"randomADITemplates": true,
"excludeRealPhoneTemplateIds": [36, 37],
"realPhoneTemplateId": 36
}
Request Example (without passing imageId, obtain the client's default image according to the AOSP version)
{
"clusterCode": "001",
"specificationCode": "m2-3",
"aospVersion": "android13",
"screenLayoutCode": "realdevice_1440x3120x560",
"number": 2,
"storageSize": 16
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACN250424UPHQOTG",
"cloudVendorType": 3,
"memory": 8192,
"groupId": 0,
"storage": 45,
"padIp": null,
"streamType": 1,
"padSn": 1,
"armServerCode": null,
"screenLayoutCode": "realdevice_1440x3120x560",
"netStorageResSize": 16,
"imageId": "img-25041475147",
"dns": "8.8.8.8",
"dataSize": 17179869184,
"dataSizeAvailable": null,
"cpu": -1,
"clusterCode": "006",
"netStorageResId": "ZSC250424G4S6RH1-ACN250424UPHQOTG",
"realPhoneTemplateId": null,
"dataSizeUsed": null,
"netStorageResFlag": 1,
"deviceLevel": "m2-4",
"online": 0,
"socModel": "MACS2080",
"streamStatus": 0,
"status": 1
}
],
"ts": 1745465574610
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 100000 | imageId and aospVersion cannot be empty | at the same time At least one of the two is passed: either by passing imageId to specify the image, or by passing aospVersion to use the client's default image |
| 100000 | No imageId was passed, and the default image | , corresponding to aospVersion=xxx, was not set If the customer does not configure the default image or the default image is disabled in this AOSP version, directly pass the imageId or contact the administrator to configure the default image |
| 220003 | Current storage specifications are not supported at this time. Please refer to the documentation settings | Currently supports fixed stored values (4, 16, 32, 64, 128, 256) |
| 110099 | The ADI template does not exist. Please check the parameters | Confirm that the value of the ADI template exists and is not disabled |
| 110044 | The instance specification does not exist | Currently supports m2-1~10 |
| 220009 | Currently, network storage capacity is insufficient. Please contact the administrator | Contact the administrator to increase network storage capacity or delete some unused instances to free up space |
| 110041 | Mirror does not exist | Confirm that the image ID is correct |
| 110045 | Screen layout does not exist | Confirm that the screen layout code is correct |
Network Storage Instance Powers On
Used to boot up a network memory instance in a specified cluster. If the incoming country code does not match, the default code: SG will be used
Interface Address
/openapi/open/pad/net/storage/on
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| clusterCode | 001 | String | No | Cluster code identifies the cluster to which the instance belongs |
| androidProp | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Refer to the Android Modification Attribute List (Note: Time zone, language, and country attributes are currently not active ) |
| countryCode | SG | String | No | Country code (see details for details:https://chahuo.com/country-code-lookup.html) |
| padCodes | ["ACN250321HRKNE3F"] | String[] | is | List of instances that need to be powered on, with a maximum of 200 instances allowed to start simultaneously |
| imageId | img-25081965158 | String | No | Image ID: Supports changing the image ID at startup, and it takes effect every time the device is input at startup. note: Only mirrored of the same version is supported |
| regenSim | true | Boolean | No | Do you need to regenerate SIM information based on the country code? (Note: Previously, SIM information was only generated based on country code during the first boot; regenSim is ture, regardless of whether the first boot is or not, SIM information is generated based on country code, default is false) |
| certCode | ACN631098529xxxxx | String | No | Specify the certificate code; if not transferred, use the default certificate |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | [ {...} ] | Object[] | List of instance status information |
| ├─ padCode | ACN250321HRKNE3F | String | Example coding |
| ├─ vmStatus | 0 | Integer | Instance status (0 means started) |
| ├─ taskId | 13023 | Integer | Background task ID |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"clusterCode": "001",
"padCodes": ["ACN250321HRKNE3F"],
"countryCode":"US",
"androidProp": "{\"persist.sys.cloud.wifi.mac\": \"D2:48:83:70:66:0B\"}"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACN250321HRKNE3F",
"vmStatus": 0,
"taskId": 13023,
"dispatchCode": 200
}
],
"ts": 1742536327373
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110095 | There is no instance that can be turned on. Please check the instance status | Check whether the instance status is powered off |
| 220011 | Frequent network storage instances, please try again later | Try again later |
| 110101 | No board matching the sample specifications was found. Please go to the board list to set the specifications. | Confirm that the instance's specifications match the board specifications, and that the board has no computing power occupied |
Network Storage Instance Shutdown
Used to perform shutdown operations on network memory instances within a specified cluster.
Interface Address
/openapi/open/pad/net/storage/off
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| clusterCode | 001 | String | No | Cluster code identifies the cluster to which the instance belongs |
| padCodes | ["ACN250321HRKNE3F"] | String[] | is | List of instance codes that need to be shut down |
| forceDel | false | Boolean | No | Please use with caution Whether to forcibly delete (will shut down and delete instances directly, data not retained) Default is false. CBS version 2.3.5 and above supports |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | [ {...} ] | Object[] | List of shutdown result information |
| ├─ padCode | ACN250321HRKNE3F | String | Example coding |
| ├─ vmStatus | 0 | Integer | Instance status (0 means shutdown) |
| ├─ taskId | 13023 | Integer | Background task ID |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"clusterCode": "001",
"padCodes": ["ACN250321HRKNE3F"]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACN250321HRKNE3F",
"vmStatus": 0,
"taskId": 13023,
"dispatchCode": 200
}
],
"ts": 1742536327373
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110094 | There are no instances that can shut down. Please check the instance status | Confirm instance status (shutdown status and power-on status cannot be shut down) |
Forced Shutdown Network Storage Example
Interface Type: Asynchronous interface Associated Callback: Forced shutdown callback for network storage instance (taskBusinessType: 1208)
Used to force shutdown operations on NetStorage 1.0 instances. The forced shutdown device shuts down directly and deletes instance data (without rewriting CEPH), using a separate queue channel from regular shutdown, unaffected by the regular shutdown queue.
Note: After a forced shutdown, instance data will be deleted and cannot be recovered. Please use with caution. Requires CBS version > = 2.8.4.
Interface Address
/openapi/open/pad/net/storage/forceOff
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN250321HRKNE3F"] | String[] | is | List of instance codes that require forced shutdown, up to 200 entries |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536327373 | Long | Timestamp |
| data | [ {...} ] | Object[] | List of forced shutdown result information |
| ├─ padCode | ACN250321HRKNE3F | String | Example coding |
| ├─ vmStatus | 0 | Integer | Instance status |
| ├─ taskId | 13023 | Integer | Background task ID |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": ["ACN250321HRKNE3F"]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACN250321HRKNE3F",
"vmStatus": 0,
"taskId": 13023,
"dispatchCode": 200
}
],
"ts": 1742536327373
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110094 | There are no instances that can shut down. Please check the instance status | Confirm instance status (shutdown status and power-on status cannot be shut down) |
Delete Network Storage Examples
Used to delete specified Memory instances in a specified cluster.
Interface Address
/openapi/open/pad/net/storage/delete
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| clusterCode | "" | String | No | Cluster code identifies the cluster to which the instance belongs (can be empty) |
| padCodes | ["ACN250321GYWUP8J"] | String[] | is | List of instance codes to be deleted |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536423100 | Long | Timestamp |
| data | [ {...} ] | Object[] | Delete the list of result information |
| ├─ padCode | ACN250321GYWUP8J | String | Example coding |
| ├─ vmStatus | 0 | Integer | Instance status (0 means deleted or shut down) |
| ├─ taskId | 13025 | Integer | Background task ID |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"clusterCode": "",
"padCodes": ["ACN250321GYWUP8J"]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACN250321GYWUP8J",
"vmStatus": 0,
"taskId": 13025,
"dispatchCode": 200
}
],
"ts": 1742536423100
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110096 | The current instance status cannot be deleted. Please check the instance status | Confirm instance status (only instances in the connection state can be deleted) |
Gengbai Network Storage Examples
Used to perform configuration operations on specified network memory instances, supporting modification of storage space size or instance specifications.
Interface Address
/openapi/open/pad/net/storage/update
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN250321GYWUP8J"] | String[] | is | List of instance codes that need to be further matched (minimum 1, maximum 200) |
| storageCapacity | 100 | Integer | No | Storage space size, unit: GB |
| deviceLevel | "S1" | String | No | Example specifications |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742536423100 | Long | Timestamp |
| data | null | String | Returns data (empty on success) |
Request Example
{
"padCodes": ["ACN250321GYWUP8J"],
"storageCapacity": 100,
"deviceLevel": "S1"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": null,
"ts": 1742536423100
}
Query Network Storage Cluster Details
Query the user's quota, used capacity, and remaining available capacity on each storage cluster.
Whether a cluster appears in the response depends on whether operations have allocated quotas to the user on that cluster; If not allocated, the cluster will not appear in the results.
Interface Address
/openapi/open/pad/net/detail/storageCapacity/available
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| clusterCode | "example001" | String | No | Storage cluster encoding; If not transmitted, it returns all the clusters with allocated quotas for that user |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742476224830 | Long | Timestamp |
| data | [] | Array | The user's capacity details on each storage cluster |
| data[].clusterCode | "example001" | String | Storage cluster encoding |
| data[].storageCapacityTotal | 1000 | Number | User quota (unit: GB); Returns 99999999 when there is no limit |
| data[].storageCapacityUsedTotal | 100 | Number | The user's usage capacity (unit: GB) |
| data[].storageCapacityAvailable | 900 | Number | Remaining Available Capacity (unit: GB) = storageCapacityTotal − storageCapacityUsedTotal |
Request Example
{
"clusterCode": "example001"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1745406673542,
"data": [
{
"clusterCode": "example001",
"storageCapacityTotal": 1000,
"storageCapacityUsedTotal": 100,
"storageCapacityAvailable": 900
}
]
}
Setting Network Storage Cluster Board Specifications
Used to set the specification level of the specified equipment's board.
Interface Address
/openapi/open/device/net/setDeviceLevel
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| deviceCodes | ["ACD250320R4I7OLM", "ACD250320UEH4OV3"] | Array | is | Device code list, including the codes for the board that needs specification settings |
| deviceLevel | "m2-8" | String | is | The equipment specifications and grades are set up |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1742526263389 | Long | Timestamp |
| data | "" | String | Business returns information |
Request Example
{
"deviceCodes": ["ACD250320R4I7OLM", "ACD250320UEH4OV3"],
"deviceLevel": "m2-8"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": "",
"ts": 1742526263389
}
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 220002 | The current specification does not exist; please check the parameters | Confirm that the specification code is correct |
| 220007 | The operating board does not exist; please check the parameters | Confirm that the board code is correct |
| 220008 | Currently, the board has running computing power units and cannot modify | There is a running instance on the board, and the specifications cannot be changed; you need to shut down the instance on the board first |
Network Storage Backup
Used to initiate a network storage backup task, the system will generate a corresponding backup task for each incoming network storage resource number.
Interface Address
/openapi/open/pad/net/storage/pad/backup
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| remark | Google verification is logged in | String | is | Backup markup information |
| padCodes | ["ACN250403SFPIB1N"] | List<String> | is | Instances padCode: minimum 1, maximum 200 |
Response Parameters
List of network storage resource numbers
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1743664828338 | Long | Timestamp |
| data | [ { "padCode": "ZSC2504034L6B26X-ACN250403SFPIB1N", "vmStatus": 0, "taskId": 10350 } ] | List<GeneratePadTaskVO> | Backup and storage code list |
| ├─ dispatchCode | 0 | Integer | (data list element field) The task issues a status code. 200 means the instance was successfully issued; 200 is the failure reason code (used for internationalization, distinct from interface layer code). The value is shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"ACN250403SFPIB1N"
],
"remark": "Google verification is now on"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ZSC2504034L6B26X-ACN250403SFPIB1N",
"vmStatus": 0,
"taskId": 10350,
"dispatchCode": 200
}
],
"ts": 1743664828338
}
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 220009 | Unable to operate storage units that do not belong to you, please check the parameters | Make sure the storage code is filled in correctly |
| 220010 | Network storage that is powered on cannot be backed up. Please check the data | Storage is only allowed to be backed up when the device is in the shutdown state |
| 220001 | There are instances in the current batch that have not been turned off. Please check the instance status |
Boot (Restore) of the Specified Network Storage Instance
Used to boot on instances bound to specified network storage resource numbers (netStorageResUnitCode). If the incoming country code does not match, the default code: SG will be used When starting up a specified storage, interception is required in the following situations:
Cross-Device Type:
- Virtual machine → cloud physical device
- Cloud physical device → virtual machine
Cross-real machine brand and model (except for instances where the machine is not yet powered on):
- Brand A cloud physical device → Brand B cloud physical device (for example, Samsung → Xiaomi)
- Brand A model 1 cloud physical device → Brand A model 2 cloud physical device (for example, Samsung Galaxy A53 → Samsung Galaxy A71)
Cross-mirror versions:
- Android 13 → Android 14
- Android 13 → Android 10
- Android 14 → Android 13
- Android 14 → Android 10
- Android 10 → Android 13
- Android 10 → Android 14
Interface Address
/openapi/open/pad/net/storage/specifiedCode/on
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| clusterCode | "001" | String | No | Cluster coding |
| padCode | "ACN250403FKAX2HX" | String | is | Case number |
| netStorageResUnitCode | "ZSC250403MMGUFGN-ACN250403ZIMD9KJ" | String | No | Network Storage Resource Number (optional) |
| androidProp | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Refer to the [Android Modification Attribute List] (./InstanceAndroidPropList.html) |
| countryCode | SG | String | No | Country code (see details for details:https://chahuo.com/country-code-lookup.html) |
| certCode | ACN631098529xxxxx | String | No | Specify the certificate code; if not transferred, use the default certificate |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1743664443188 | Long | Timestamp |
| data | { "padCode": "ACN250403FKAX2HX", "vmStatus": 0, "taskId": 10341 } | GeneratePadTaskVO | Mission details |
| ├─ dispatchCode | 0 | Integer | (data object field) The task sends a status code. 200 means the instance was successfully sent. A non-200 is a failure reason code (used for internationalization, distinct from interface layer code). The value is shown at the end of the article in the PadTaskFailCode Encoding Table |
Request Example
{
"clusterCode": "001",
"padCode": "ACN250403FKAX2HX",
"netStorageResUnitCode": "ZSC250403MMGUFGN-ACN250403ZIMD9KJ",
"countryCode":"US",
"androidProp": "{\"persist.sys.cloud.wifi.mac\": \"D2:48:83:70:66:0B\"}"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": {
"padCode": "ACN250403FKAX2HX",
"vmStatus": 0,
"taskId": 10341,
"dispatchCode": 200
},
"ts": 1743664443188
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110095 | There is no instance that can be turned on. Please check the instance status | Check whether the instance status is powered off |
| 220011 | Frequent network storage instances, please try again later | Try again later |
| 110101 | No board matching the sample specifications was found. Please go to the board list to set the specifications. | Confirm that the instance's specifications match the board specifications, and that the board has no computing power occupied |
Network Storage Deletion
Used to delete specified network storage resources.
Interface Address
POST /openapi/open/pad/net/storage/pad/delete
Request Data Types
application/json
Request Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| netStorageResUnitCodes | ["ZSC250407XLYILP4-ACN250407XRY4CW9"] | List<String> | Yes | List of network storage resource numbers to be deleted, supporting up to 200 items |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1744026334273 | Long | Timestamp |
| data | [{"padCode": "ZSC250407XLYILP4-ACN250407XRY4CW9", "vmStatus": 0, "taskId": 10159}] | List<GeneratePadTaskVO> | List of deletion task results for each storage resource |
| ├─ dispatchCode | 0 | Integer | (data list element field) The task issues a status code. 200 means the instance was successfully issued; 200 is the failure reason code (used for internationalization, distinct from interface layer code). The value is shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"netStorageResUnitCodes": [
"ZSC250407XLYILP4-ACN250407XRY4CW9"
]
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ZSC250407XLYILP4-ACN250407XRY4CW9",
"vmStatus": 0,
"taskId": 10159,
"dispatchCode": 200
}
],
"ts": 1744026334273
}
Error Codes [Error Code Explanation] (./ErrorMsgCode.md#system-error-code-explanation)
Obtaining Usage Details for Network Storage Instances
Used to query usage details of network storage instances, grouped by device level.
Interface Address
POST /openapi/open/pad/netPad/group/deviceLevel
Request Data Types
application/json
Request Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| clusterCode | "001" | String | Yes | Cluster coding |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| totalNumber | 16 | Long | Total hash rate |
| onNumber | 2 | Long | Number of units already started |
| deviceLevel | "m2-8" | String | Specifications |
Request Example
{
"clusterCode": "001"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"totalNumber": 16,
"onNumber": 2,
"deviceLevel": "m2-8"
},
{
"totalNumber": 9,
"onNumber": 1,
"deviceLevel": "m2-3"
}
],
"ts": 1744024331175
}
Detailed Query for Network Storage Details
Used to query detailed information of network storage resources, supports paginated queries.
Interface Address
POST /openapi/open/netStorage/resUnit/net/storage/pad/resUnit
Request Data Types
application/json
Request Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| page | 3 | Integer | Yes | Current page number |
| rows | 10 | Integer | Yes | Display the number of entries per page |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| total | 27 | Integer | Total recorded count |
| size | 7 | Integer | Current page number of records |
| totalPage | 3 | Integer | Total pages |
| page | 3 | Integer | Current page number |
| pageData | [...] | List<NetStorageResUnitVO> | Data list on the current page |
NetStorageResUnitVO Field Description
| field name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| netStorageResUnitId | 87 | Long | Network storage details ID |
| shutdownFlag | 0 | Integer | Is there an instance of power on and off (0: Shut down, 1: Turn on) |
| netStorageResUnitCode | "ZSC25040761D2GP8-ACN250407XRY4CW9" | String | Network Storage Details Code |
| clusterCode | "001" | String | Cluster Code |
| padCode | "ACN250407XRY4CW9" | String | Example Code |
| netStorageResUnitSize | 16 | Long | Network storage size (unit: GB) |
Request Example
{
"page": 3,
"rows": 10
}
Response Examples
{
"msg": "success",
"code": 200,
"data": {
"total": 27,
"size": 7,
"totalPage": 3,
"page": 3,
"pageData": [
{
"shutdownFlag": 0,
"padCode": "ACN250407XRY4CW9",
"netStorageResUnitCode": "ZSC25040761D2GP8-ACN250407XRY4CW9",
"clusterCode": "001",
"netStorageResUnitId": 87,
"netStorageResUnitSize": 16
}
// ... More net-stored instance objects
],
"rows": 10
},
"ts": 1744023373581
}
Query for Storage Blocks (Check whether a block exists and its details)
Interface Address
POST /openapi/open/netStorage/resUnit/pad/net/storage/unit/detail
Request Data Types
application/json
Request Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| netStorageResUnitCode | ZSC250403MMGUFGN-ACxxxxxxxxx | String | Yes | Unique encoding of network storage blocks |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Interface request status information |
| data | - | Object | Business returns data |
| ├─ exist | true | Boolean | Whether the storage block exists, true=existent/false=nonexistent |
| ├─ netStorageResUnitCode | ZSC250403MMGUFGN-ACxxxxxxxxx | String | Input Storage Block Encoding (Echo) |
| ├─ clusterCode | 001 | String | Cluster code of the storage block (returns if present, null if nonexistent) |
| ├─ padCode | ACN250403ZIMD9xx | String | The encoding of the storage block associated network instance (returns if present, null if nonexistent) |
| ├─ storageSize | 32 | Integer | Storage block size (GB) (returns if present, null if nonexistent) |
Request Example
{
"netStorageResUnitCode": "ZSC250403MMGUFGN-ACN25040xxxxxxxxx"
}
Response Examples
{
"code": 200,
"msg": "success",
"data": {
"exist": true,
"netStorageResUnitCode": "ZSC250403MMGUFGN-ACN250403Zxxxxx",
"clusterCode": "001",
"padCode": "ACN250403ZIMDxxx",
"storageSize": 32
}
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 100000 | The network storage block encoding cannot be empty | Check and pass in a valid netStorageResUnitCode |
| 110028 | Network storage block encoding format error | Confirm that the code complies with the platform's standard format |
| 220009 | No access permission to this storage block | Confirm that the storage block belongs to the current user |
| 500 | System Anomaly | Retry later or contact technical support |
Database Instance Storage Usage Query
Batch query the currently used storage capacity (in GB) and the most recent reporting time of instances by instance number, with a maximum of 200 instances at a time.
data depends on CBS versions
The number of this interface requires CBS version >= 2.13.32. If the CBS version of the board where the instance is located is lower than 2.13.32, the interface will not show errors, but the returned storageUsedGb and storageStatUpdateTime will be null; After upgrading to the target version, you can access the data (within about 5 minutes).
Interface Address
POST /openapi/open/netStorage/resUnit/pad/storage/stat/list
Request Data Types
application/json
Request Parameters
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN260709TTF8NHU","ACN260709LT1F8N1"] | List<String> | Yes | List of instance numbers, up to 200 per session; Elements cannot be null or empty strings, and duplicates are not allowed |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code, 200 means successful |
| msg | success | String | Interface request status information |
| data | [...] | List<PadStorageStatVO> | A list of results corresponding to the order of entering padCodes for entry |
PadStorageStatVO Field Description
| field name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| padCode | "ACN260709TTF8NHU" | String | Instance Number (corresponding to entry) |
| storageUsedGb | 3.6055 | Double | The instance is currently using storage (GB); when not collected, it is null |
| storageStatUpdateTime | "2026-07-01 18:20:00" | String | The most recent reported time for storage usage (GMT+8, format yyyy-MM-dd HH:mm:ss) is null when not collected |
Cases with a return value of null
In any of the following cases, storageUsedGb and storageStatUpdateTime will be null, but the padCode will still appear in the result list, and the interface will not give an error:
- The CBS version of the board on which this instance is located is lower than 2.13.32
Request Example
{
"padCodes": ["ACN260709TTF8NHU", "ACN260709LT1F8N1"]
}
Response Examples
{
"code": 200,
"msg": "success",
"data": [
{
"padCode": "ACN260709TTF8NHU",
"storageUsedGb": 3.6055,
"storageStatUpdateTime": "2026-07-01 18:20:00"
},
{
"padCode": "ACN260709LT1F8N1",
"storageUsedGb": null,
"storageStatUpdateTime": null
}
]
}
Error Codes
| Error code | Error Explanation | Operational advice |
|---|---|---|
| 110027 | The instance number set contains duplicate entries | Retest after removing duplicates |
| 110028 | The instance does not exist | If the entry contains instance numbers not under the account name, check and retry |
| 110029 | The instance cannot be empty | If the parameter group contains null or an empty string element, check and try again |
| 500 | System Exception | Retry later or contact technical support |
Certificate Management
Upload Certificate
Used to upload Google root certificates (Keybox's XML structure)
Interface Address
/openapi/open/certificate/google/root/upload
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| certCode | GCA202603090xxx | String | No | Unique certificate encoding (custom / system generated) |
| certName | Google Root Certificate _v1.0 | String | is | Certificate name |
| certContent | xxxx | String | is | Certificate contents (converted to string upload) |
| certType | ROOT | String | No | Certificate type, fixed value "ROOT", default value "ROOT" |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─ certCode | GCA202603090xxx | String | Unique certificate encoding (custom / system generated) |
| ├─ certName | Google Root Certificate _v1.0 | String | Certificate name |
| ├─ status | 1 | Integer | Upload status (0 successful, 1 failed). |
| ├─ errorMsg | Certificate format error | String | Failure Reason (Returns only when status=1) |
Request Example
{
"certName": "Google Root Certificate _v1.0",
"certContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Keyboxes>\n <Keybox DeviceID=\"DEVICE_SAMPLE_ID\">\n <Key algorithm=\"ecdsa\">\n <PrivateKey>MIIBS...[PKCS8_PRIVATE_KEY]...A=</PrivateKey>\n <CertificateChain>\n <NumberOfCertificates>1</NumberOfCertificates>\n <Certificate>MIIC...[BASE64_CERTIFICATE]...Q==</Certificate>\n </CertificateChain>\n </Key>\n <Key algorithm=\"rsa\">\n <PrivateKey>MIIEv...[PKCS8_PRIVATE_KEY]...E=</PrivateKey>\n <CertificateChain>\n <NumberOfCertificates>1</NumberOfCertificates>\n <Certificate>MIID...[BASE64_CERTIFICATE]...S==</Certificate>\n </CertificateChain>\n </Key>\n </Keybox>\n</Keyboxes>"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1773211788170,
"data": {
"certCode": "GCA202603090xxx",
"certName": "Google Root Certificate _v1.0",
"status": 0,
"errorMsg": null
},
"traceId": "ffo6go7g0we8"
}
Certificate Specification Template
<?xml version="1.0" encoding="UTF-8"?>
<Keyboxes>
<Keybox DeviceID="TEST_DEVICE_002">
<Key algorithm="ecdsa">
<PrivateKey> [Enter one segment of Base64 private key here]. </PrivateKey>
<CertificateChain>
<NumberOfCertificates>4</NumberOfCertificates>
<Certificate> [Level 1: Leaf/User Certificate (Leaf)]. </Certificate>
<Certificate> [Level 2: Intermediate Certificate 1]. </Certificate>
<Certificate> [Level 3: Intermediate 2</Certificate>].
<Certificate> [Level 4: Root Certificate</Certificate>].
</CertificateChain>
</Key>
<Key algorithm="rsa">
<PrivateKey> [Enter one segment of Base64 private key here]. </PrivateKey>
<CertificateChain>
<NumberOfCertificates>4</NumberOfCertificates>
<Certificate> [Level 1: Leaf/User Certificate (Leaf)]. </Certificate>
<Certificate> [Level 2: Intermediate Certificate 1]. </Certificate>
<Certificate> [Level 3: Intermediate 2</Certificate>].
<Certificate> [Level 4: Root Certificate</Certificate>].
</CertificateChain>
</Key>
</Keybox>
</Keyboxes>
Query by Certificate Code
Query certificates based on the unique code of the certificate
Interface Address
/openapi/open/certificate/google/root/query
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| certCode | GCA202603090xxx | String | No | Certificate Unique Code (Precise Query/No Transmission Query All Items) |
| certName | Google Root Certificate _v1.0 | String | No | Certificate Name (Fuzzy Lookup) |
| rows | 10 | Integer | No | Query quantity, range 1-1000, default 10 |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─ certCode | GCA202603090xxx | String | Unique certificate encoding (custom / system generated) |
| ├─ certName | Google Root Certificate _v1.0 | String | Certificate name |
| ├─ ├─efficient | true | Boolean | Upload status (0 successful, 1 failed). |
Request Example
{
"certCode":"GCA202603090xxx"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1773370014107,
"data": [
{
"certCode": "GCA202603090xxx",
"certName": "Google Root Certificate _v1.0",
"efficient": true
}
],
"traceId": "ffuppeig3qbk"
}
Domain Name Management
Adding Domain Name Certificate Configuration
Add domain name certificate configuration; the same domain cannot be added multiple times
Interface Address
/openapi/open/domainCertConfig/add
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| hostname | example.com | String | Yes | Domain name only |
| protocolType | https | String | Yes | Protocol types: currently supported: http / https / follow |
| domainCertPem | String | No | Domain Certificate PEM Contents | |
| domainKeyPem | String | No | Domain private key PEM content | |
| ip | String | No | IP address | |
| defaultRoute | Boolean | No | Default route is set to false |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | Response data | |
| traceId | a1b2c3d4e5f6 | String | Link Tracing ID |
Request Example
{
"hostname": "example.com",
"protocolType": "https"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1711267200000,
"data": null,
"traceId": "a1b2c3d4e5f6"
}
Query Domain Certificate Configuration List
Query the current domain name certificate configuration under the customer's name, supporting fuzzy queries based on domain names
Interface Address
/openapi/open/domainCertConfig/list
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| hostname | example.com | String | No | Domain keywords, fuzzy matching |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | List | Response data | |
| ├─id | 1 | Long | Record ID |
| ├─customerId | 0 | Long | Customer ID |
| ├─hostname | example.com | String | Domain name |
| ├─protocolType | https | String | Types of Protocols |
| ├─domainCertPem | -----BEGIN CERTIFICATE-----\n... | String | Domain Certificate PEM Contents |
| ├─domainKeyPem | -----BEGIN PRIVATE KEY-----\n... | String | Domain private key PEM content |
| ├─ip | 1.2.3.4 | String | IP address |
| ├─defaultRoute | false | Boolean | Whether the default route is available |
| ├─createTime | 2026-03-25 10:00:00 | String | Creation date |
| ├─updateTime | 2026-03-25 10:00:00 | String | Modify the time |
| traceId | a1b2c3d4e5f6 | String | Link Tracing ID |
Request Example
{
"hostname": "example"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1711267200000,
"data": [
{
"id": 101,
"customerId": 888,
"hostname": "example.com",
"protocolType": "https",
"domainCertPem": "-----BEGIN CERTIFICATE-----\n...",
"domainKeyPem": "-----BEGIN PRIVATE KEY-----\n...",
"ip": "1.2.3.4",
"defaultRoute": false,
"createTime": "2026-03-25 10:00:00",
"updateTime": "2026-03-25 10:00:00"
}
],
"traceId": "a1b2c3d4e5f6"
}
Deleting Domain Name Certificate Configuration
Batch deleting domain name certificate configurations based on the ID set can only delete records under the current customer's name
Interface Address
/openapi/open/domainCertConfig/remove
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| ids | [1] | List | Yes | Record the ID set, which cannot be empty |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | Response data | |
| traceId | a1b2c3d4e5f6 | String | Link Tracing ID |
Request Example
{
"ids": [1, 2]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1711267200000,
"data": null,
"traceId": "a1b2c3d4e5f6"
}
Resource Cache Management
Upload Game Resources
Clients must upload the URL of the updated game resources; the same URL under the same client cannot be added again
Interface Address
/openapi/open/gameResUrl/upload
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| resUrl | https://cdn.example.com/game/v2/patch.zip | String | Yes | Game resource URL, maximum 2048 characters |
| resName | Version 2.0 resource pack | String | No | Resource name/note, maximum 128 characters |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Long | Returns the new record ID on success | |
| traceId | a1b2c3d4e5f6 | String | Link Tracing ID |
Request Example
{
"resUrl": "https://cdn.example.com/game/v2/patch.zip",
"resName": "Version 2.0 resource pack"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1711267200000,
"data": null,
"traceId": "a1b2c3d4e5f6"
}
Query Game Resource List
Paginated query of the current customer's game resource URL list, supports fuzzy URL search, and deleted records will not be returned
Interface Address
/openapi/open/gameResUrl/list
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| resUrl | patch | String | No | URL keywords, fuzzy matching |
| pageNum | 1 | Integer | No | Page number, minimum value 1, default 1 |
| pageSize | 10 | Integer | No | Number of entries per page, range 1~100, default 10 |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | Paginated data objects | |
| ├─records | List | Current page data list | |
| ├─├─id | 1001 | Long | Record ID |
| ├─├─customerId | 888 | Long | Customer ID |
| ├─├─resUrl | https://cdn.example.com/game/v2/patch.zip | String | Resource URL |
| ├─├─resName | Version 2.0 resource pack | String | Resource Name/Note |
| ├─├─createTime | 2026-03-24 10:00:00 | String | Creation date |
| ├─├─updateTime | 2026-03-24 10:00:00 | String | Update time |
| ├─total | 2 | Long | Total number of articles |
| ├─size | 10 | Long | Number of entries per page |
| ├─current | 1 | Long | Current page number |
| ├─pages | 1 | Long | Total pages |
| traceId | a1b2c3d4e5f6 | String | Link Tracing ID |
Request Example
{
"resUrl": "patch",
"pageNum": 1,
"pageSize": 10
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1711267200000,
"data": {
"records": [
{
"id": 1001,
"customerId": 888,
"resUrl": "https://cdn.xxx.com/game/v2/patch.zip",
"resName": "Version 2.0 resource pack",
"createTime": "2026-03-24 10:00:00",
"updateTime": "2026-03-24 10:00:00"
},
{
"id": 1002,
"customerId": 888,
"resUrl": "https://cdn.xxx.com/game/v2/hotfix.zip",
"resName": "2.0 Thermal Repair Package",
"createTime": "2026-03-24 11:30:00",
"updateTime": "2026-03-24 11:30:00"
}
],
"total": 2,
"size": 10,
"current": 1,
"pages": 1
},
"traceId": "a1b2c3d4e5f6"
}
Delete Game Resources
Batch delete game resource URL records based on the ID collection, but only records under the current customer's name can be deleted
Interface Address
/openapi/open/gameResUrl/remove
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| ids | [1001] | List | Yes | Record the ID set, which cannot be empty |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | Response data | |
| traceId | a1b2c3d4e5f6 | String | Link Tracing ID |
Request Example
{
"ids": [1001, 1002]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1711267200000,
"data": null,
"traceId": "a1b2c3d4e5f6"
}
Example Management
Modifying Example WIFI Properties
Modify the WiFi list properties of the specified instance (choose between this interface and the WiFi settings for the first new machine; otherwise, coverage issues may occur)
Interface Address
/openapi/open/pad/setWifiList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | Case number | |
| wifiJsonList | String[] | is | WiFi attribute list | |
| ├─SSID | 110101 | String | is | WiFi Name (Chinese not supported) |
| ├─BSSID | 02:31:00:00:00:01 | String | is | Access point MAC address |
| ├─MAC | 02:00:10:00:00:00 | String | is | WiFi network card MAC address |
| ├─IP | 02:00:10:00:00:00 | String | is | WiFi network IP |
| ├─MAC | 02:00:10:00:00:00 | String | is | WiFi network card MAC address |
| ├─gateway | 192.168.120.1 | String | is | WiFi gateway |
| ├─DNS1 | 1.1.1.1 | String | is | DNS1 |
| ├─DNS2 | 8.8.8.8 | String | is | DNS2 |
| ├─hessid | 0 | Integer | No | Network identifiers |
| ├─anqpDomainId | 0 | Integer | No | ANQP (Access Network Query Protocol) domain ID |
| ├─capabilities | "" | String | No | WPA/WPA2 and other 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 | Estimate the standard deviation of distance |
| ├─channelWidth | 0 | Integer | No | Channel bandwidth |
| ├─centerFreq0 | 0 | Integer | No | Central frequency 0 |
| ├─centerFreq1 | -1 | Integer | No | Central frequency 1 |
| ├─is80211McRTTResponder | false | Boolean | No | Does it support 802.11mc (Wi-Fi RTT, ranging technology?). |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─ taskId | 1 | Integer | Task ID |
| ├─ padCode | AC2025030770R | String | Case number |
| ├─ vmStatus | 1 | Integer | Instance online status: 0-offline, 1-online |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
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 Examples
{
"code": 200,
"msg": "success",
"ts": 1741676855566,
"data": [
{
"taskId": 14904,
"padCode": "AC2025030770R92X",
"vmStatus": 0,
"dispatchCode": 200
}
]
}
Example Details
Query the attribute information of the specified instance, including system attribute information and configuration information.
Interface Address
/openapi/open/pad/padDetails
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | No | Page number |
| rows | 10 | Integer | No | Record the number per page |
| padCodes | String[] | No | ||
| ├─ | AC21020010391 | String | No | Case number |
| padIps | String[] | No | ||
| ├─ | 192.168.1.1 | String | No | Example IP |
| vmStatus | 1 | String | No | Instance online status: 0-offline, 1-online |
| controlStatus | 1 | String | No | Controlled state (push flow state): 1 - Uncontrolled, 2 - Controlled |
| faultStatus | 14 | String | No | Instance Running Status: 14-Abnormal Other-Normal |
| deviceStatus | 0 | String | No | Physical machine online status: 0-offline, 1-online |
| groupId | 2 | Integer | No | Group ID |
| idcCode | HNCS-C-01 | String | No | Data center number |
| brand | samsung | Brand | No | Brand used for instances (exact match) |
| brandModel | SM-G996U1(8G) | String | No | Brand-Matched Model (Exact Match) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756360093771 | Long | Timestamp |
| traceId | ewc83bwudvr4 | String | Link Tracing ID |
| data | Object | Response data | |
| ├─ page | 1 | Integer | Current page |
| ├─ rows | 10 | Integer | Record the number per page |
| ├─ size | 10 | Integer | Current page count |
| ├─ total | 13398 | Integer | Total recorded count |
| ├─ totalPage | 1340 | Integer | Total pages |
| ├─ pageData | object[] | List | |
| ├─ ├─ padId | 552 | Long | Instance ID |
| ├─ ├─ padCode | ACP250331GLMP7YX | String | Cloud machine numbering |
| ├─ ├─ customerId | null | Long | Customer ID |
| ├─ ├─ imageId | img-25032628136 | String | Mirror ID |
| ├─ ├─ deviceLevel | m2-6 | String | Example specifications |
| ├─ ├─ dcInfo | Object | Data center information | |
| ├─ ├─ ├─ id | 1 | Long | Data center ID |
| ├─ ├─ ├─ dcName | Small Calculation Test - Data Center | String | Machine room name |
| ├─ ├─ ├─ dcCode | 001 | String | Data center code |
| ├─ ├─ ├─ area | changsha | String | Region |
| ├─ ├─ ├─ ossEndpoint | null | String | OSS public network interface address |
| ├─ ├─ ├─ ossEndpointInternal | null | String | OSS intranet interface address |
| ├─ ├─ ├─ ossFileEndpoint | null | String | File access address |
| ├─ ├─ ├─ ossScreenshotEndpoint | null | String | Screenshot the access address |
| ├─ ├─ padStatus | 15 | Integer | Instance status (10-Running, 11-Restarting, 12-Resetting, 13-Upgrading, 14-Abnormal, 15-Not Ready, 16-Backup, 17-Data Restore, 18-Shutdown, 19-Shutdown, 20-Starting, 21-Shutdown Failed, 22-Boot Failed, 23-Deleted, 24-Delete Failed, 25-Deleted, 26-Cloning) |
| ├─ ├─ deviceStatus | 1 | Integer | Physical machine status (0-offline, 1-online) |
| ├─ ├─ online | 0 | Integer | Instance online status (0-offline, 1-online) |
| ├─ ├─ streamStatus | 0 | Integer | Example streaming status (0-idle, 1-streaming) |
| ├─ ├─ dataSize | null | Long | Total storage capacity (bytes) |
| ├─ ├─ dataSizeUsed | null | Long | Storage capacity used (bytes) |
| ├─ ├─ adbOpenStatus | null | String | adb switch status (1 On; Empty/0 Close) |
| ├─ ├─ deviceIp | 172.31.1.4 | String | Boards IP |
| ├─ ├─ screenLayoutCode | multiple-portrait-basic | String | Screen layout coding |
| ├─ ├─ mac | "" | String | MAC address |
| ├─ ├─ netStorageResId | null | String | Network storage ID |
| ├─ ├─ dns | 192.168.50.15 | String | Example DNS |
| ├─ ├─ memory | null | Integer | Memory size |
| ├─ ├─ cpu | -1 | Integer | CPU size |
| ├─ ├─ socModel | MACS2080 | String | SoC model |
| ├─ ├─ netStorageResFlag | 0 | Integer | Memory Tags (1 Memory Instances; 0 local instances) |
| ├─ ├─ netStorageResSize | null | Long | Mesh instance size (GB) |
| ├─ ├─ realPhoneTemplateId | 389 | Long | Real model template ID |
| ├─ ├─ clusterCode | ZEG3650947 | String | Cluster coding |
| ├─ ├─ padIp | null | String | Example IP |
| ├─ ├─ updateNetStorageResFlag | false | Boolean | Whether to specify a network storage ID to boot up |
| ├─ ├─ targetStorageResId | null | String | Specified network storage ID |
| ├─ ├─ armIp | 192.168.200.50 | String | ARM server IP |
| ├─ ├─ countryCode | null | String | Country code |
| ├─ ├─ type | virtual | String | Instance Type (virtual-Virtual Machine / real-Cloud-Real-machine) |
| ├─ ├─ armServerId | 179 | Long | Server ID |
| ├─ ├─ lastComputeUnitCode | null | String | The final computing power code used for startup |
| ├─ ├─ lastDeviceCode | null | String | Finally, the number of the board used for power-up |
| ├─ ├─ lastDeviceIp | null | String | Finally, the IP of the board used for booting |
| ├─ ├─ cloneFlag | null | String | Clone Logo (0-No, 1-Yes) |
| ├─ ├─ baseResUnitCode | null | String | The base storage code of the cloned instance |
| ├─ ├─ cbsInfo | 2.0.14 | String | CBS News |
| ├─ ├─ firstBoot | true | Boolean | Is it the first time you start the machine? |
Request Example
{
"page": 1,
"rows": 10,
"padCodes": ["AC21020010391"],
"padIps":["192.168.1.1"],
"vmStatus":"1",
"controlStatus":"1",
"faultStatus":"14",
"deviceStatus":"0"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756360093771,
"data": {
"page": 1,
"rows": 10,
"size": 10,
"total": 13398,
"totalPage": 1340,
"pageData": [
{
"padId": 552,
"padCode": "ACP250331GLMP7YX",
"customerId": null,
"imageId": "img-25032628136",
"deviceLevel": "m2-6",
"dcInfo": {
"id": 1,
"dcName": "Small Calculation Test - Data Center",
"dcCode": "001",
"area": "changsha",
"ossEndpoint": null,
"ossEndpointInternal": null,
"ossFileEndpoint": null,
"ossScreenshotEndpoint": null
},
"padStatus": 15,
"deviceStatus": 1,
"online": 0,
"streamStatus": 0,
"dataSize": null,
"dataSizeUsed": null,
"adbOpenStatus": null,
"deviceIp": "172.31.1.4",
"screenLayoutCode": "multiple-portrait-basic",
"mac": "",
"netStorageResId": null,
"dns": "192.168.50.15",
"memory": null,
"cpu": -1,
"socModel": "MACS2080",
"netStorageResFlag": 0,
"netStorageResSize": null,
"realPhoneTemplateId": 389,
"clusterCode": "ZEG3650947",
"padIp": null,
"updateNetStorageResFlag": false,
"targetStorageResId": null,
"armIp": "192.168.200.50",
"countryCode": null,
"type": "virtual",
"armServerId": 179,
"lastComputeUnitCode": null,
"lastDeviceCode": null,
"lastDeviceIp": null,
"cloneFlag": null,
"baseResUnitCode": null,
"cbsInfo": "2.0.14",
"firstBoot": true
}
]
},
"traceId": "ewc83bwudvr4"
}
Code Examples
// Example of a Java call
PadDetailsRequest requestParam = new PadDetailsRequest();
List<String> padCodes = new ArrayList<>();
padCodes.add("AC22010041147");
requestParam.setPadCodes(padCodes);
Result<Page<PadDetailsResponse>> result = armCloudApiService.execute(ArmCloudApiEnum.PAD_DETAILS, requestParam,new TypeReference<Result<Page<PadDetailsResponse>>>() {});
Example Details - Streamlined Version
Query the basic attribute information of the instance.
Interface Address
/openapi/open/pad/padBaseInfoList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| lastId | 1234 | Long | No | The lastId returned from the last query; the first query can skip or pass null |
| rows | 10 | Integer | No | Each page can have up to 1,000 entries per page |
| padCodes | String[] | No | ||
| ├─ | ACP250331GLXXXXX | String | No | Case number |
| padIps | String[] | No | ||
| ├─ | 192.168.1.1 | String | No | Example IP |
| online | 1 | Integer | No | Instance online status: 0-offline, 1-online |
| padStatus | 14 | Integer | No | Instance Running Status: 14-Abnormal Other-Normal |
| computeOccupied | true | Boolean | No | Filter computing power usage: true means computing power usage, false means no computing power usage |
| netStorageResFlag | 1 | Integer | No | Memory tags: 1 - Memory instance, 0 - Local instance |
| brand | samsung | Brand | No | Brand used for instances (exact match) |
| brandModel | SM-G996U1(8G) | String | No | Brand-Matched Model (Exact Match) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756360093771 | Long | Timestamp |
| traceId | ewc83bwudvr4 | String | Link Tracing ID |
| data | Object | Response data | |
| ├─ rows | 10 | Integer | Record the number per page |
| ├─ size | 10 | Integer | Current page count |
| ├─ lastId | 1234 | Long | The last record ID is used for the next page query |
| ├─ hasNext | true | Boolean | Is there a next page? |
| ├─ pageData | object[] | List | |
| ├─ ├─ padCode | ACP250331GLXXXXX | String | Case number |
| ├─ ├─ padIp | null | String | Example IP |
| ├─ ├─ padStatus | 15 | Integer | Instance running status (10-Running, 11-Restarting, 12-Reset, 13-Upgrading, 14-Abnormal, 15-Not Ready, 16-Backup, 17-Data Restore, 18-Shutdown, 19-Shutdown, 20-Starting, 21-Shutdown Failed, 22-Boot Failure, 23-Deleted, 24-Delete Failed, 25-Deleted, 26-Cloning) |
| ├─ ├─ online | 0 | Integer | Instance online status (0-offline, 1-online) |
| ├─ ├─ computeOccupied | true | Boolean | Computing power usage: true means usage of computing power, false means no computing power usage |
| ├─ ├─ netStorageResFlag | 1 | Integer | Memory tags: 1 - Memory 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 Examples
{
"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"
}
Case Restart
Perform a restart operation on a specified instance to resolve issues such as system unresponsiveness and freezing.
Interface Address
/openapi/open/pad/restart
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Case number |
| groupIds | Integer[] | No | ||
| ├─ | 1 | Integer | No | Instance group ID |
| certCode | ACN631098529xxxxx | String | No | Certificate code. Specify the use of the private certificate corresponding to the client's name and code for issuance to Yunzhenji; If not passed (null), certificates are automatically allocated according to the platform's default logic (backward compatible, no changes needed for stock calls). This interface does not involve certificate; certCode takes effect directly. If the code does not exist under the client's name, the interface will report an error at the acceptance stage saying "certificate does not exist, certCode: xxx" and will not generate a task |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC21020010001 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─ taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC22030022693"
],
"groupIds": [1]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313806284,
"data": [
{
"taskId": 4844869,
"padCode": "ATP250818261XVMO",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewab9x88fkzk"
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 10001 | Restart failed Contact the administrator | |
| 110004 | Failed to execute the restart command Restart later | |
| 110028 | The instance does not exist | Please check if the instance exists |
Code Examples
// Example of a Java call
public class SDKExample {
private final ArmCloudApiService armCloudApiService;
public SDKExample() {
ArmCloudConfig armCloudConfig = new ArmCloudConfig();
armCloudConfig.setOpenUrl("https://openapi-hk.armcloud.net");
armCloudConfig.setService("armcloud-paas");
armCloudConfig.setHost("openapi.armcloud.net");
armCloudConfig.setAk("your access_key_id");
armCloudConfig.setSk("your secret_access_key");
armCloudApiService = new ArmCloudApiServiceImpl(armCloudConfig, new DefaultHttpExecutor());
}
@Test
public void test() throws Exception {
RestartRequest requestParam = new RestartRequest();
List<String> padCodes = new ArrayList<>();
padCodes.add("AC22010041147");
requestParam.setPadCodes(padCodes);
Result<PadTaskResponse> result = armCloudApiService.execute(ArmCloudApiEnum.PAD_RESTART, requestParam, new TypeReference<Result<PadTaskResponse>>() {});
}
}
Instance Reset
Note: Instance reset clears all system data. Please use with caution; after each reset, the public IP will be restored to its default value
Performing a reset operation on the instance will clean all data from the cloud phone
Interface Address
/openapi/open/pad/reset
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Case number |
| groupIds | Integer[] | No | ||
| ├─ | 1 | Integer | No | Instance group ID |
| androidProp | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Refer to the [Android Modification Attribute List] (./InstanceAndroidPropList.html) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC21020010001 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─ taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC21020010001"
],
"groupIds": [1]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313781715,
"data": [
{
"taskId": 760459892,
"padCode": "ATP250817PIJLWRP",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewab8lv65yio"
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 10002 | Reset failed | Contact the administrator |
| 110005 | Failing to execute the reset command | Reset again later |
Code Examples
// Example of a Java call
ResetRequest requestParam = new ResetRequest();
List<String> padCodes = new ArrayList<>();
padCodes.add("AC22010041147");
requestParam.setPadCodes(padCodes);
Result<PadTaskResponse> result = armCloudApiService.execute(ArmCloudApiEnum.PAD_RESET, requestParam, new TypeReference<Result<PadTaskResponse>>() {});
Query Instance Properties
Query the attribute information of the specified instance, including system attribute information and configuration information.
Interface Address
/openapi/open/pad/padProperties
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | AC21020010001 | String | Yes | Case number |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─padCode | AC21020010001 | String | Case number |
| ├─modemPropertiesList | Object[] | Modem - Property list | |
| ├─├─propertiesName | IMEI | String | Attribute name |
| ├─├─propertiesValue | 412327621057784 | String | Attribute values |
| ├─systemPropertiesList | Object[] | System-Property List | |
| ├─├─propertiesName | ro.build.id | String | Attribute name |
| ├─├─propertiesValue | QQ3A.200805.001 | String | Attribute values |
| ├─settingPropertiesList | Object[] | setting-- Property list | |
| ├─├─propertiesName | ro.build.tags | String | Attribute name |
| ├─├─propertiesValue | release-keys | String | Attribute values |
| ├─oaidPropertiesList | Object[] | oaid—Property list | |
| ├─├─propertiesName | oaid | String | Attribute name |
| ├─├─propertiesValue | 001 | String | Attribute values |
Request Example
{
"padCode": "AC21020010001"
}
Response Examples
{
"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 | Misstatement | Operational advice |
|---|---|---|
| 110028 | There are no instances | Please check if the instance is correct |
Code Examples
// Example of a Java call
PadPropertiesRequest requestParam = new PadPropertiesRequest();
requestParam.setPadCode("AC22010041147");
Result<PadPropertiesResponse> result = armCloudApiService.execute(ArmCloudApiEnum.PAD_GET_PROPERTIES, requestParam,new TypeReference<Result<PadPropertiesResponse>>() {});
Batch Query Instance Properties
Batch query of the attribute information of specified instances, including system attribute information and configuration information.
Interface Address
/openapi/open/pad/batchPadProperties
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | There are no more than 200 instances | |
| ├─ | AC21020010001 | String | Yes | Case number |
| ├─ | AC21020010002 | String | Yes | Case number |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC21020010001 | String | Case number |
| ├─modemPropertiesList | Object[] | Modem - Property list | |
| ├─├─propertiesName | IMEI | String | Attribute name |
| ├─├─propertiesValue | 412327621057784 | String | Attribute values |
| ├─systemPropertiesList | Object[] | System-Property List | |
| ├─├─propertiesName | ro.build.id | String | Attribute name |
| ├─├─propertiesValue | QQ3A.200805.001 | String | Attribute values |
| ├─settingPropertiesList | Object[] | setting-- Property list | |
| ├─├─propertiesName | ro.build.tags | String | Attribute name |
| ├─├─propertiesValue | release-keys | String | Attribute values |
| ├─oaidPropertiesList | Object[] | oaid—Property list | |
| ├─├─propertiesName | oaid | String | Attribute name |
| ├─├─propertiesValue | 001 | String | Attribute values |
Request Example
{
"padCodes": [
"AC21020010001",
"AC21020010002"
]
}
Response Examples
{
"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 | Misstatement | Operational advice |
|---|---|---|
| 110028 | There are no instances | Please check if the instance is correct |
Code Examples
// Example of a Java call
PadPropertiesRequest requestParam = new PadPropertiesRequest();
List<String> padCodes = new ArrayList<>();
padCodes.add("AC21020010001");
padCodes.add("AC21020010002");
requestParam.setPadCodes(padCodes);
Result<List<PadPropertiesResponse>> result = armCloudApiService.execute(ArmCloudApiEnum.PAD_POST_PROPERTIES, requestParam,new TypeReference<Result<PadPropertiesResponse>>() {});
Modifying Instance Properties
Dynamically modify the instance's attribute information, including system properties and settings
The instance must be in the boot state, and this interface takes effect immediately
Refer to the [Instance Property List] (./InstanceList.html#modem-properties---property-list)
Interface Address
/openapi/open/pad/updatePadProperties
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Case number |
| modemPersistPropertiesList | Object[] | No | Modem - Persistence - Property List | |
| ├─propertiesName | IMEI | String | No | Attribute name |
| ├─propertiesValue | 412327621057784 | String | No | Attribute values |
| modemPropertiesList | Object[] | No | Modem - Non-persistent - Property list | |
| ├─propertiesName | IMEI | String | No | Attribute name |
| ├─propertiesValue | 412327621057784 | String | No | Attribute values |
| systemPersistPropertiesList | Object[] | No | System - Persistence - Property List | |
| ├─propertiesName | ro.build.id | String | No | Attribute name |
| ├─propertiesValue | QQ3A.200805.001 | String | No | Attribute values |
| systemPropertiesList | Object[] | No | System - Non-persistent - Property List | |
| ├─propertiesName | ro.build.id | String | No | Attribute name |
| ├─propertiesValue | QQ3A.200805.001 | String | No | Attribute values |
| settingPropertiesList | Object[] | No | setting-- Property list | |
| ├─propertiesName | ro.build.tags | String | No | Attribute name |
| ├─propertiesValue | release-keys | String | No | Attribute values |
| oaidPropertiesList | Object[] | No | oaid—Property list | |
| ├─propertiesName | oaid | String | No | Attribute name |
| ├─propertiesValue | 001 | String | No | Attribute values |
| webkitPropertiesList | Object[] | No | webkit-property list | |
| ├─propertiesName | oaid | String | No | Attribute name |
| ├─propertiesValue | 001 | String | No | Attribute values |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC21020010001 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
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"
}
],
"webkitPropertiesList": [
{
"propertiesName": "oaid",
"propertiesValue": "001"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570916196,
"data": [
{
"taskId": 36,
"padCode": "AC22030010001",
"vmStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 110011 | Failing to execute the modifying property command | Please try again later |
| 110028 | There are no instances | Please check if the instance is correct |
| 110027 | There are duplicate entries in the instance number set | Please check for duplicates in the instance |
Code Examples
// Example of a Java call
UpdatePadPropertiesRequest requestParam = new UpdatePadPropertiesRequest();
List<String> padCodes = new ArrayList<>();
padCodes.add("AC22010041147");
requestParam.setPadCodes(padCodes);
List<PadPropertiesSub> subs = new ArrayList<>();
PadPropertiesSub sub = new PadPropertiesSub();
sub.setPropertiesName("oaid");
sub.setPropertiesValue("123456789");
subs.add(sub);
requestParam.setSystemPropertiesList(subs);
Result<List<GeneratePadResponse>> result = armCloudApiService.execute(ArmCloudApiEnum.PAD_UPDATE_PROPERTIES, requestParam,new TypeReference<Result<List<GeneratePadResponse>>>() {});
Modifying Android Modification Attributes for Examples
Static settings for Android modification properties require restarting the instance to take effect, generally used to modify device information
The difference between this interface and the [Modify Instance Properties] (./OpenAPI_AI.md#modifying-instance-properties) interface lies in its effective timing, which is initialized at each startup
setting instance properties, the attribute data is persistently stored, so restarting or resetting the instance does not require calling the interface
Refer to the [Android Modification Attribute List] (./InstanceAndroidPropList.html)
Using this interface requires a certain understanding of the Android system. Some properties may affect the normal launch of the instance. If modifications cause instance abnormalities, you can restore the interface by calling the instance
Interface Address
/openapi/open/pad/updatePadAndroidProp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | AC32010210001 | String | No | Instance ID |
| restart | false | Boolean | No | Automatically restarts after setup (default false) |
| props | {} | Object | Yes | System Properties (this field is defined by key-value) |
| ├─ro.product.vendor.name | OP52D1L1 | String | Yes | Property settings |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─taskId | 24 | Long | Task ID |
| ├─padCode | AC32010210001 | String | Instance ID |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCode": "AC32010210001",
"props": {
"ro.product.vendor.name": "OP52D1L1"
},
"restart": false
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313781338,
"data": {
"taskId": 760459884,
"padCode": "AC32010160134",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
},
"traceId": "ewab8l4lqu4g"
}
Modifying SIM Card Information According to Country Code
Static settings for Android modification properties require restarting the instance to take effect, generally used to modify device information
This interface has the same functionality as the [Modifying Android Modification Properties for Instances (./OpenAPI_AI.md#modify-the-android-modification-properties-of-the-example) interface. The difference is that this interface randomly generates SIM card information and restarts each time
setting instance properties, the attribute data is persistently stored, so restarting or resetting the instance does not require calling the interface
Interface Address
/openapi/open/pad/replacePadAndroidPropByCountry
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | AC32010210001 | String | Yes | Instance ID |
| countryCode | US | String | No | Country code |
| props | {} | Object | No | System Properties (this field is defined by key-value) |
| ├─ro.product.vendor.name | OP52D1L1 | String | No | Property settings |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756360113813 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object | Response data | |
| ├─taskId | 10002486 | Long | Task ID |
| ├─padCode | ACN342712020172800 | String | Case number |
| ├─vmStatus | 0 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
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,
"dispatchCode": 200
},
"traceId": "ewc84g8si0oy"
}
Response Example 2
{
"code": 500,
"msg": "目前不支持国家编码: XX",
"ts": 1753521350163,
"data": null
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110065 | Parameter requests are non-compliant; please refer to the interface documentation | Check the parameters and refer to the interface documentation |
| 110028 | The instance does not exist | Please check if the instance number is correct |
Stop Streaming
Stop pushing the specified instance stream and disconnect the instance connection.
Interface Address
/rtc/open/room/dissolveRoom
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC11010000031 | String | Yes | Case number |
| ├─ | AC22020020700 | String | Yes | Case number |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object[] | ||
| ├─successList | Object[] | Successful collection | |
| ├─├─padCode | AC11010000031 | String | Case number |
| ├─├─taskId | 1234567890 | Long | Task ID |
| ├─failList | Object[] | Failed collection | |
| ├─├─padCode | AC22020020700 | String | Case number |
| ├─├─errorCode | 120005 | Integer | Error code |
| ├─├─errorMsg | There are no instances | String | The reason for failure |
Request Example
{
"padCodes": ["AC11010000031","AC22020020700"]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": {
"successList": [
{
"padCode": "AC11010000031",
"taskId": 1234567890
}
],
"failList": [
{
"padCode": "AC22020020700",
"errorCode": 120005,
"errorMsg": "实例不存在"
}
]
},
"traceId": "ewab9njt3gn4"
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 120005 | The instance does not exist | Please check if the instance number is correct |
| 120004 | Stream Interruption Error, Command Service Exception | Please try again later |
Batch Application for RTC Connection Tokens
Batch request RTC Token connection information for multiple instances under the current account, with connection information returned by pad grouping.
When the Pad cannot connect, the RTC Toekn message will not be returned;
msgfield will display the reason for the connection.Currently, this interface only supports the production of ArmcloudRTC tokens. If you encounter abnormal messages such as
此接口暂不支持此功能, please contact the relevant personnel to reconfigure the traffic informationTokens generated do not currently support refreshing or extending validity. When the token expires, a new token must be reapplied
Encrypted data must be decrypted using the AES GCM mode, with the key being padCode
Interface Address
/rtc/open/room/batchApplyToken
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| userId | 202 | String | Yes | The business side defines the user ID, which is used to generate room information. Implement a user in the same room as the GameServer. The caller must perform user-level uniqueness. For example, using the same userId to generate different Toekn connections to the same GamerServer will cause the previous established connection to be disconnected |
| expire | 3600 | Integer | No | Token validity period (unit: seconds). Default: 86400) |
| pads | Object[] | Yes | List of instances | |
| ├─padCode | AC11010000031 | String | Yes | Case number |
| ├─videoStream | Object | No | Streaming Configuration | |
| ├─├─resolution | 07 | String | No | Resolution |
| ├─├─frameRate | 30 | String | No | Frame rate |
| ├─├─bitrate | 2000 | String | No | Bit rate |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─roomToken | 001j7Tb2jAyAzR6UtLv3cgclCFhw6Q== | String | token |
| ├─roomCode | AC22030010181202 | String | Room number |
| ├─appId | j7Tb2GcE9rN5oF6xP3A4qwer | String | Application ID |
| ├─padCode | AC22030010181 | String | Instance ID |
| ├─signalServer | LnBbVX4AD1CA4uyoN1kXp:P8H01PaGZDHEFD | String | Signaling address (decryption required using AES GCM mode) |
| ├─stuns | pL25iYgaA12RNmdCYR/:SUJD21Bz4S6HE88GzVN | String | stuns address (decryption using AES GCM mode) |
| ├─turns | doF22kA7Z6OiVP1br29:rA1R4d6Vyk9e | String | Turns address (requires AES GCM mode decryption) |
| ├─msg | connect pad fail | String | False information |
Request Example
{
"userId": "202",
"expire": 3600,
"pads": [
{
"padCode": "AC22010010842",
"videoStream ": {
"resolution": "1",
"frameRate": "30",
"bitrate": "2000"
}
},
{
"padCode": "AC22030010181",
"videoStream ": {
"resolution": "1",
"frameRate": "30",
"bitrate": "2000"
}
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1721305008916,
"data": [
{
"roomToken": null,
"roomCode": "AC22010010842202",
"appId": "j7Tb2GcE9rN5oF6xP3A4qwer",
"streamType": 2,
"videoCodec": "",
"reportSdkLog": false,
"padCode": "AC22010010842",
"msg": "connect pad fail",
"signalServer": null,
"stuns": null,
"turns": null
},
{
"roomToken": "001j7Tb2GcE9rN15oF6xP3A4qwerNwDyCHIRtQrGxZABAAC1ZuzKkAEAABAAQUMyMjAzMDAxMDE4MA12D1TIwMgMAMjAyAQAEALVm7MqQAQAAIABpLvj5zX3dnyN/8UvRsLJnHWA4zR6UtLv3cgclCFhw6Q==",
"roomCode": "AC22030010181202",
"appId": "j7Tb2GcE9rN5oF6xP3A4qwer",
"streamType": 2,
"videoCodec": "",
"reportSdkLog": false,
"padCode": "AC22030010181",
"msg": null,
"signalServer": "LnBbVX4AD1CA4uyoN1kXp:P8H01PaGZDHEFDsnU6nRCbOFzvL2smbG9HxKh+XP5WHC",
"stuns": "pL25iYgaA12RNmdCYR/:SUJD21Bz4S6HE88GzVN8rANlfL9925iaHW+ilJAaWldPpoBKqwoEq0Ggon0HhDc4a6v0pg=",
"turns": "doF22kA7Z6OiVP1br29:rA1R4d6Vyk9efIFX6qPPMyKs7OhmxFA7xBr65P8NA/Rxb31Js6VOaO3Zrtd3h9uM/mNYUy5mJOQ4j8TJ8DjfBFaEHVNOAcF5tzgbg8iksGhNONfv8hHw=="
}
]
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 120005 | There are no instances | Please check if the instance number is correct |
| 120007 | This interface does not currently support this function | Contact relevant personnel to change the streaming configuration |
Apply for RTC Shared Room Token
Used to implement multiple instances in one room, where instances receive broadcast messages from rooms for processing and to obtain common streams
Room number generation rules: terimer + userId + paas user identifier For example: terimer = pc, userId=123, paas user identifier = qwer
Room number: PC123QWER
Interface Address
/rtc/open/room/share/applyToken
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| userId | 202 | String | Yes | The caller business user ID |
| terminal | pc | String | Yes | Terminal |
| expire | 3600 | Integer | No | Token validity period: in seconds. The default is 1 hour |
| pushPublicStream | true | Boolean | No | Whether to push public streams (default false) |
| pads | Array | Yes | List of instances that need to be added to the shared room | |
| ├─padCode | AC22010010842 | String | Yes | Instance ID |
| ├─├─videoStream | Object | No | Streaming Configuration | |
| ├─├─├─videoStream | 1 | String | No | |
| ├─├─├─frameRate | 30 | String | No | |
| ├─├─├─bitrate | 2000 | String | No |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─roomToken | 00165b7AS149e52467a4016f050b8cQQBDjDJKuTAb | String | Room tokens |
| ├─roomCode | android_12345 | String | Room number |
| ├─appId | 65b749e52467a4016f050b8c | String | App ID |
Request Example
{
"userId": "202",
"terminal": "pc",
"expire": 3600,
"pushPublicStream": true,
"pads": [
{
"padCode": "AC22010010842",
"videoStream": {
"resolution": "1",
"frameRate": "30",
"bitrate": "2000"
}
},
{
"padCode": "AC22030010181",
"videoStream": {
"resolution": "1",
"frameRate": "30",
"bitrate": "2000"
}
}
]
}
Response Examples
{
"code": 200,
"msg": null,
"data": {
"roomToken": "00165b7AS149e52467a4016f050b8cQQBDjDJKuTAbnZVwU52UOAENSTTExMDEwMDAwMDExAwAxMjMFAAAAXBTnZQEAXBTnZQIAXBTnZQMAXBTnZQQAAAAAACAADCbuyT9crLX9MNUCWyFhsFXwb4nuFPxfgE7MqHjv4yQ=",
"roomCode": "android_12345",
"appId": "65b749e52467a4016f050b8c"
}
}
Modifying Instance Timezone
Interface Address
/openapi/open/pad/updateTimeZone
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| timeZone | Asia/Shanghai | String | Yes | UTC Standard Time |
| padCodes | Array | Yes | List of instances |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object | ||
| ├─taskId | 24 | Long | Task ID |
| ├─padCode | AC22030010001 | String | Room number |
| ├─vmStatus | Instance status | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC32010140003"
],
"timeZone": "Asia/Shanghai"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313802157,
"data": [
{
"taskId": 760460229,
"padCode": "ACP250417QAGGQ3S",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewab9p712ww0"
}
Modifying Example Language
Interface Address
/openapi/open/pad/updateLanguage
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| language | zh | String | Yes | Language |
| country | CN | String | No | Country |
| padCodes | Array | Yes | List of instances |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object | ||
| ├─taskId | 24 | Long | Task ID |
| ├─padCode | AC22030010001 | String | Room number |
| ├─vmStatus | Instance status | Integer | Instance online status (0: offline; 1: Online) |
| ├─ taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC32010140026"
],
"language": "zh",
"country": ""
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"traceId": "ewab9p712ww0",
"data": [
{
"taskId": 24,
"padCode": "AC32010140026",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Modifying Example SIM Card Information
Interface Address
/openapi/open/pad/updateSIM
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| imei | 868034031518269 | String | No | IMEI |
| imeisv | 00 | String | No | Version number |
| operatorShortnam | CMSS | String | No | Operator abbreviation |
| operatorLongname | CHINA MOBILE | String | No | Full name of the operator |
| iccid | 89860002191807255576 | String | No | The SIM card is uniquely identified |
| imsi | 460074008004488 | String | No | Prefix for SIM card carrier number: MCC (3 digits) + MNC (2 or 3 digits) |
| phonenum | 18511112222 | String | No | Phone number |
| mcc | 502 | String | No | Network country to which it belongs |
| mnc | 146 | String | No | Mobile device network code |
| padCodes | Array | Yes | List of instances | |
| type | 1 | String | Yes | Network type |
| tac | 871420 | String | Yes | Tracking area codes |
| cellid | 870091003 | String | Yes | Base station ID |
| narfcn | 99240 | String | Yes | Frequency point numbering used to identify channels in 5G networks |
| physicalcellid | 6C | String | Yes | Used to identify specific cells in 5G or LTE networks |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─taskId | 24 | Long | Task ID |
| ├─padCode | AC22030010001 | String | Room number |
| ├─vmStatus | Instance status | Integer | Instance online status (0: offline; 1: Online) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": ["AC32010230011"],
"imei": "868034031518269",
"imeisv": "00",
"operatorLongname": "CHINA MOBILE",
"operatorShortnam": "CMSS",
"iccid": "89860002191807255576",
"imsi": "460074008004488",
"phonenum": "861234566",
"type": "9",
"mcc": "502",
"mnc": "146",
"tac": "871420",
"cellid": "870091003",
"narfcn": "99240",
"physicalcellid": "6C"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC32010140033",
"vmStatus": 1,
"dispatchCode": 200
}
]
}
Setting Example Latitude and Longitude
Interface Address
/openapi/open/pad/gpsInjectInfo
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| longitude | 116.397455 | Float | Yes | Longitude |
| latitude | 39.909187 | Float | Yes | Latitude |
| altitude | 8 | Float | No | Elevation (requires updating to the latest image) |
| speed | 8 | Float | No | Speed, m/s (Mirror after 20251024) |
| bearing | 0 | Float | No | Velocity direction, ° (mirror image after 20251024) |
| horizontalAccuracyMeters | 0.1 | Float | No | Horizontal accuracy (mirroring after 20251024) |
| padCodes | Array | Yes | List of instances |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Boolean |
Request Example
{
"padCodes": [
"AC32010030001"
],
"longitude": 116.397455,
"latitude": 39.909187,
"altitude": 8
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570663080,
"traceId": "ewab9p712ww0",
"data": true
}
Task Execution: Querying Proxy Exit IP Information
This interface only creates tasks and returns information such as the task ID and execution status. The results need to be queried through /task-center/open/task/padTaskDetail to return fields taskResult corresponding pad_task.result.
Interface Address
/openapi/open/network/proxy/info
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | Array | Yes | List of instances |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object | ||
| ├─taskId | 24 | Long | Task ID |
| ├─padCode | AC22030010001 | String | Room number |
| ├─vmStatus | Instance status | Integer | Instance online status (0: offline; 1: Online) |
| ├─ taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC32010140012"
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756348835040,
"data": [
{
"taskId": 14294,
"padCode": "ACP250820SBM4NEU",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewbrcry0frb4"
}
One-Click New Phone ⭐
Note: One-click new account will clear all system data. Please use with caution!
One-click new device function to clear all current instance data and reset Android properties
- The virtual machine directly sets Android properties, then clears all data
- The cloud real device directly erases all data (equivalent to resetting) and adds SIM information. If there is an incoming template ID, it will replace the ADI template. If no template is passed and replacementRealAdiFlag is true, a template Id will be randomly selected
- Note: If you do not send country information, or if the incoming country information service cannot find it, Singapore SIM information will be set by default
- If the incoming country does not support it, error 500 will be returned, prompt: Country code XX is currently not supported
Explanation of 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)
- Raw path completion prefix: system/... -> /system/...; misc/... -> /misc/...; data/... -> /data/...
- /sdcard/... -> /media/0/... (Convert paths starting with /sdcard to starting with /media/0)
- Other paths: remain unchanged
Interface Address
/openapi/open/pad/replacePad
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | [] | Array | is | List of instance IDs |
| countryCode | SG | String | No | Country code (see details for details:https://chahuo.com/country-code-lookup.html) |
| realPhoneTemplateId | 65 | Long | No | Template ID (obtained from the /openapi/open/realPhone/template/list interface) |
| androidProp | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Refer to the [Android Modification Attribute List] (./InstanceAndroidPropList.html) |
| replacementRealAdiFlag | false | Boolean | No | Is the ADI template random on the real machine? (false not random, true random) |
| excludeRealPhoneTemplateIds | [101,102] | Long[] | No | List of template IDs to exclude when using random ADI templates |
| certificate | Refer to Mobile Root Certificate | String | No | Root certificate for the phone |
| wipeData | true | Boolean | No | Whether user data is erased, default is true (supported by CBS version 2.4.4 and above) |
| wipeSpecificData | ["/fonts","/media"] | String[] | No | wipeData is false, this parameter takes effect; Which data needs to be erased |
| keepSpecificData | ["/fonts","/media"] | String[] | No | wipeData is false, this parameter takes effect; What data needs to be retained (mutually exclusive with wipeSpecificData) |
| enableCpuCoreConfig | true | Boolean | No | Whether to enable CPU and big-small core configurations, this feature is based on the Android cpuset mechanism, providing a static and staggered CPU resource allocation solution for multiple containers on the physical machine of the cloud phone. By finely dividing Little/Big Cores resources, it significantly improves the performance stability and user experience of a single container. |
| canvasConsistentWithVendor | true | Boolean | No | Whether to simulate Canvas to match the phone manufacturer's image. The default is true, true simulates consistency, false does not simulate consistency |
| certCode | ACN631098529xxxxx | String | No | Certificate code. Specify the use of the private certificate corresponding to the client's name and code for issuance to Yunzhenji; If not passed (null), certificates are automatically allocated according to the platform's default logic (backward compatible, no changes needed for stock calls). priority is lower than certificate, see the explanation below. If the code does not exist under the client's name (and no certificate is passed), the interface will report an error "Certificate not existing, certCode: xxx" during the acceptance phase and will not generate the task |
certificateandcertCodepriority explanation: When bothcertificate(the entire certificate content) andcertCodeare passed in simultaneously,certificateis used as the standard,certCodeis ignored and not verified;certCodeonly takes effect whencertificatehas not been sent (issued using a private certificate under the customer's name and corresponding to the code). If neither is transferred, certificates are automatically allocated according to the platform's default logic.
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object | ||
| ├─taskId | 12818 | Long | Task ID |
| ├─padCode | AC22030010124 | String | Case number |
| ├─vmStatus | Instance status | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
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": "Root certificate for the phone",
"wipeData": false,
"wipeSpecificData": ["/fonts", "/media"],
"canvasConsistentWithVendor": true
}
Response Example 1
{
"code": 200,
"msg": "success",
"ts": 1732270378320,
"data": {
"taskId": 8405,
"padCode": "AC32010250031",
"vmStatus": 2,
"taskStatus": 1,
"dispatchCode": 200
},
"traceId": "ewab8qjqbaio"
}
Response Example 2
{
"code": 500,
"msg": "目前不支持国家编码: xx",
"ts": 1753521350163,
"data": null,
"traceId": "ewab8qjqbaio"
}
Check the list of supported countries for new phones with one click
Interface Address
/openapi/open/info/country
Request Method
GET
Request Data Types
application/json
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─code | AD | String | Country code |
| ├─name | Andorra | String | Country Name (English) |
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1730192434383,
"traceId": "ewab8qjqbaio",
"data": [{
"code": "AD",
"name": "Andorra"
}]
}
Update Contacts
fileUniqueId and info are required
Interface Address
/openapi/open/pad/updateContacts
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | [] | Array | is | List of instance IDs |
| fileUniqueId | cfca25a2c62b00e065b417491b0cf07ffc | String | No | Address book file ID |
| operateType | -1 | Interger | No | -1 Add contact 0 Delete contact 1 Overwrite contact, default is -1 |
| info | Object[] | No | Address book information | |
| ├─firstName | tom | String | No | Name |
| ├─phone | 13111111111 | String | No | Mobile phone number |
| tom@gmail.com | String | No | Mailbox |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object | ||
| ├─taskId | 12818 | Long | Task ID |
| ├─padCode | AC22030010124 | String | Case number |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
| ├─vmStatus | Instance status | Integer | Instance online status (0: offline; 1: Online) |
Request Example
{
"fileUniqueId": "cfca25a2c62b00e065b417491b0cf07ffc",
"info": [{
"firstName": "tom",
"phone": "13111111111",
"email": "xxxxx@gmail.com"
}],
"padCodes": [
"AC32010180326"
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756373645105,
"data": [
{
"taskId": 392077,
"padCode": "ATP250822LBOD8V7",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewcs8ow5u328"
}
Example Proxy Setup
Interface Address
/openapi/open/network/proxy/set
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| account | 2222 | String | No | Account |
| password | 2222 | String | No | Password |
| ip | 47.76.241.5 | String | No | IP |
| port | 2222 | Integer | No | Port |
| enable | true | Boolean | Yes | Activated |
| padCodes | Array | Yes | List of instances | |
| proxyType | vpn | String | No | Supported parameters: proxy, VPN |
| proxyName | socks5 | String | No | Supported parameters: socks5, http-relay (including http and https) |
| model | bypass | String | No | List validation mode, value bypass or limit; If no values are passed, null, or invalid values are passed, they are handled as bypass (compatible with older versions). bypass: bypass* No agents (direct connections) are on the list; others are agents; limit:limit* Use proxies within the list, and direct connections for others (see explanation below) (limit mode requires image support from 2026.06.05 onwards) |
| bypassPackageList | Array | No | Package Name: Set the package name without going through a proxy (valid when model=bypass) | |
| bypassIpList | Array | No | IP set without using proxies (effective when model=bypass) | |
| bypassDomainList | Array | No | Domain name: Set the domain name to be proxy-free (effective when model=bypass) | |
| limitPackageList | Array | No | This package name is licensed by an agent (valid for model=limit, requires image support from 2026.06.05 onwards) | |
| limitIpList | Array | No | This IP is proxy (valid for model=limit, requires image support after 2026.06.05) | |
| limitDomainList | Array | No | This domain is proxy (valid at model=limit, requires image support from 2026.06.05 onward) | |
| sUoT | true | Boolean | No | Whether UDP connection is enabled default: false |
Notes on
modeland Two Sets of Lists
modelDecide which list to use in this setup, as well as the flow of traffic inside and outside the list, with values set tobypassorlimit, which are mutually exclusive:
model = bypass(default): Use thebypassPackageList/bypassIpList/bypassDomainListlist. Items in the list are not brokered (direct connection), while other traffic is proxy. If nomodelis passed, null is passed, or invalid values are not passed tobypass/limit, this mode is applied, which is exactly the same as the old version.model = limit: Use thelimitPackageList/limitIpList/limitDomainListlist, only items within the list are handled by proxies, while other traffic is directly connected.Please fill in the corresponding list according to the selected
model:bypass*Three lists correspond tomodel=bypass,limit*three lists correspond tomodel=limit.
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object | ||
| ├─taskId | 24 | Long | Task ID |
| ├─padCode | AC22030010001 | String | Room number |
| ├─vmStatus | Instance status | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC32010140023"
],
"account": "2222",
"password": "2222",
"ip": "47.76.241.5",
"port": 2222,
"enable": true,
"model": "bypass",
"bypassPackageList": [],
"bypassIpList": [],
"bypassDomainList": [],
"limitPackageList": [],
"limitIpList": [],
"limitDomainList": [],
"sUoT": true
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313787216,
"data": [
{
"taskId": 22323879,
"padCode": "ACN250828ED53YMG",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewab8whwonb4"
}
Real-Time Query of Installed App Lists
Interface Address
/openapi/open/pad/listInstalledApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | Yes | Case number |
| appName | String | No | App name |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | ||
| ├─padCode | AC32010250001 | String | Case number |
| ├─apps | Object[] | Application collection | |
| ├─├─appName | Test the app | String | App name |
| ├─├─packageName | com.xxx.xxx | String | Package name |
| ├─├─versionCode | 150600 | String | Version number |
| ├─├─versionName | 15.6.0 | String | Version name |
| ├─├─appState | 0 | Integer | 0 Completed 1 Installing 2 Downloading |
Request Example
{
"padCodes": ["AC32010250001"],
"appName": ""
}
Response Examples
{
"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 Startup
Used for configuring the auto-start function on startup for a single or multiple instances. This API is for override modification. If you need to modify the auto-start application, use the new auto-start application list to overwrite the current auto-start application list before calling this interface.
- When
applyAllInstances=true, no task is assigned, configuration is saved to the database, only takes effect at the next startup, applies to all instances (including newly created instances in the future) - When
applyAllInstances=false, assign tasks to the specified instance, the task takes effect immediately after execution padCodesandapplyAllInstancesmutually exclusive, withapplyAllInstancespreferred
Currently, it only supports Android 13, 14, and 15
Interface Address
openapi/open/pad/setKeepAliveApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | No | Instance ID (required when applyAllInstances=false) |
| applyAllInstances | false | Boolean | Yes | Whether all instance modes are applied (if true, no task is issued; it will only take effect at the next startup; mutually exclusive with padCodes, higher priority) |
| appInfos | Object[] | No | ||
| ├─serverName | com.example/com.example.service.TaskService | String | Yes | com.xxx.xxx (package name)/com.xxx.xxx.service.DomeService (full path to the service to be started) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"serverName": "com.example/com.example.service.TaskService"
}
],
"applyAllInstances": false
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null
}]
}
Setting App Retention (New)
Used to configure app keepalive for single or multiple instances and to set up a list of saved apps. Once enabled, applications in the list will not be killed by the system if the instance runs out of memory. By default, application survival is persistently configured (the instance restarts also take effect) This interface is for overwrite modification. If you need to modify the live application, use the new live app list to overwrite the current active application list, then call this API.
Interface Address
openapi/open/pad/setKeepAliveApp/new
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | Yes | Instance Number (up to 500) |
| appInfos | Object[] | Yes | Save the app list; empty arrays mean clearing (up to 3 apps can be kept alive) | |
| ├─packageName | com.tencent.mm | String | No | Apply package names; leaving blank or empty arrays means clearing |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"packageName": "com.tencent.mm"
}]
}
Example of Clearing a Saved List
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": []
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": null
}
Set App Hide
Send a list of hidden package names to a specified instance, allowing the package name list to be empty (if empty, clear the hidden list and send an empty list). Note: If the app is not installed, the settings will not take effect and will only take effect after restarting.
Interface Address
openapi/open/pad/setHideAppList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | AC32010250001 | String[] | Yes | Case number (up to 200) |
| appInfos | Object[] | Yes | Hide the application list; empty arrays indicate clearing (0-200) | |
| ├─packageName | com.tencent.mm | String | No | Apply package names; leaving blank or empty arrays means clearing |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": [{
"packageName": "com.tencent.mm"
}]
}
Sample of Clearing Hidden Lists
{
"padCodes": [
"AC002",
"AC001"
],
"appInfos": []
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": null
}
Hidden Auxiliary Services
A list of applications requiring hidden auxiliary service permissions is sent to the specified instance. Once set, applications with hidden permissions will not be detected by other applications on the same instance for requesting accessibility. Explanation:
- Specify that the app itself can access accessibility itself
- Third-party apps cannot obtain accessibility enabled by the specified app
- This specified app is also not available in the accessibility list
Interface Address
/openapi/open/pad/setHideAccessibilityAppList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["AC32010250001"] | String[] | Yes | Instance number array (up to 200) |
| appInfos | [] | Object[] | Yes | Hide the array of application list objects; passing an empty array[] means emptying (0-200) |
| ├─packageName | com.tencent.mm | String | Yes (when the array is not empty) | App package name. Special values: passing * or ALL indicates hiding auxiliary service permissions for all applications |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example - Hide Specified Application
{
"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 Examples
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": null
}
Modifying Real Device ADI Templates
Modify the instance cloud real machine ADI template and pass in the template ID
Requirements:
- When creating an instance, it must be created as a cloud real machine type
- The Android version used when the instance is created must match the target ADI Android version
Interface Address
/openapi/open/pad/replaceRealAdiTemplate
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Case number |
| wipeData | false | Boolean | Yes | Whether to erase data |
| realPhoneTemplateId | 186 | Long | Yes | Cloud Genuine Machine Template ID |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC21020010001 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
Request Example
{
"padCodes": ["AC32010250011"],
"wipeData": true,
"realPhoneTemplateId": 186
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1736326542985,
"data": [{
"taskId": 10074,
"padCode": "AC32010250011",
"errorMsg": null,
"taskStatus": 1
}]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110028 | The instance does not exist | Contact the administrator |
| 110064 | There are instances that do not meet the conditions for upgrading to a real machine. Please check the instance | Check if the instance is a real device |
| 110099 | The ADI template does not exist. Please check the parameters | Check the information about the ADI template |
Asynchronous Execution of ADB Commands
Executes commands asynchronously in one or more cloud phone instances
Interface Address
/openapi/open/pad/asyncCmd
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22020020793 | String | Yes | Case number |
| scriptContent | cd /root;ls | String | Yes | ADB commands: Multiple commands are separated by semicolons |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewc84g8si0oy | String | Link trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID, which is null, means the task creation failed |
| ├─padCode | AC22020020793 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─errorMsg | null | String | Error message, null on success |
Request Example
{
"padCodes": [
"AC22020020793"
],
"scriptContent": "cd /root;ls"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570297639,
"traceId": "ewab8whwonb4",
"data": [
{
"taskId": 14,
"padCode": "AC22030010001",
"vmStatus": 1,
"errorMsg": null
},
{
"taskId": 15,
"padCode": "AC22030010002",
"vmStatus": 0,
"errorMsg": null
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110003 | Failed to execute ADB commands Contact the administrator | |
| 110012 | Command execution timeout | Please try again later |
Toggle Root Permissions
Toggle root permissions on one or more cloud phone instances. To root a single application, you need to specify the package name; otherwise, an exception will be thrown. (For cloud real machine products, it is not recommended to set global root permissions when calling this interface, as it may be detected by risk control.) )
Interface Address
/openapi/open/pad/switchRoot
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22020020793 | String | Yes | Case number |
| globalRoot | false | Boolean | No | Whether global root access is enabled is not enabled by default |
| packageName | com.example | String | No | Application package names (not required for global root): Multiple package names pass and connect |
| rootStatus | Root is enabled | Integer | Yes | root state: 0: Off, 1: On |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22020020793 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
Request Example
{
"padCodes": [
"AC32010250002"
],
"globalRoot": false,
"packageName": "com.android.ftpeasys",
"rootStatus": 0
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570297639,
"data": [
{
"taskId": 14,
"padCode": "AC32010250002",
"vmStatus": 1
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110003 | Failed to execute ADB commands Contact the administrator | |
| 110089 | Enable a single root package name that cannot be empty | When opening a single application root, the package name cannot be empty |
Local Screenshot
Example screenshot.
Interface URL
openapi/open/pad/screenshot
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010231 | String | Yes | Case number |
| rotation | 0 | Integer | Yes | Screenshot Horizontal and Vertical Rotation: 0: No processing of screenshot direction, default; 1: When the screenshot is rotated to portrait: a: Screenshot of the phone's vertical screen, do not process it. b: Screenshot of the phone's landscape screen, rotate the screenshot clockwise 90 degrees. |
| broadcast | false | Boolean | No | Whether the event is broadcast (default false) |
| definition | false | Integer | No | Clarity: Value range 0-100 |
| resolutionHeight | false | Integer | No | Resolution - High greater than 1 |
| resolutionWidth | false | Integer | No | Resolution - width greater than 1 |
Response Parameters
| Parameter name | Example value | Parameter type | required | Parameter description |
|---|---|---|---|---|
| code | 200 | Integer | is | Status code |
| msg | success | String | is | Respond to the message |
| ts | 1756021167163 | Long | is | Timestamp |
| data | Object[] | |||
| ├─taskId | 1 | Integer | No | Task ID |
| ├─padCode | AC21020010231 | String | No | Case number |
| ├─vmStatus | 1 | Integer | is | Instance online status (0: offline; 1: Online) |
| ├─dispatchCode | 0 | Integer | No | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC21020010231"
],
"rotation": 0,
"broadcast": false,
"definition": 50,
"resolutionHeight": 1920,
"resolutionWidth": 1080
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570337023,
"data": [
{
"taskId": 16,
"padCode": "AC22030010001",
"vmStatus": 1,
"dispatchCode": 200
},
{
"taskId": 17,
"padCode": "AC22030010002",
"vmStatus": 0,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110001 | Screenshot failed Please try again | |
| 110004 | Failed to execute the restart command Restart later | |
| 110028 | The instance does not exist | Please check if the instance exists |
Get Real-Time Preview of Example Images
Get a screenshot of the specified instance at the current time. Calling this interface returns a URL and expiration date to the instance. During the validity period, accessing this URL can provide real-time cloud phone screenshots. Batch transfer of multiple instance IDs to batch obtain preview image URLs.
Interface Address
/openapi/open/pad/getLongGenerateUrl
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC11010000031 | String | Yes | Case number (supports up to 100 instances) |
| format | png | String | No | Image format: enumeration values: png, jpg, webp (supported by CBS 2.3.7 and above), default is jpg |
| height | 50 | String | No | Zoom height (pixels; if not transferred or exceeds the current device height, use the device's current height) |
| width | 50 | String | No | Zoom width (pixels; if not transferred or exceeds the current device width, use the device's current width) |
| quality | 60 | String | No | Image quality (percentage: 0~100; if not transmitted or not within the parameter range, default is 60%) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC11010000031 | String | Case number |
| ├─url | http://xxx.armcloud.png | String | Access address |
| ├─expireAt | 1756024767163 | Long | URL expiration time (millisecond timestamp) |
| ├─success | true | Boolean | Whether the URL was successfully generated |
| ├─reason | Instance status abnormality | String | Reasons for failure (empty when successful) |
Request Example
{
"padCodes": [
"AC11010000031",
"AC11010000032"
],
"format": "png"
}
Response Examples
{
"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": "实例状态异常"
}
]
}
Get Real-Time Preview Images of Instances (High Performance)
Note: By default, the new interface does not accept conversion parameters such as size, clarity, or format; output images retain the original cloud resolution and format. If customers have special requirements, please handle them yourself. Get a screenshot of the specified instance at the current time. Calling this interface returns a URL and expiration date to the instance. During the validity period, accessing this URL can provide real-time cloud phone screenshots. Batch transfer of multiple instance IDs to batch obtain preview image URLs. Interface Description: High-performance mode: CBS no longer performs any encoding, decoding, or transcoding on screenshots, only serving as a data transmission channel, reducing intermediary overhead Original output: Directly outputs the original screenshot data generated by the ROM, preserving the original cloud resolution and format Parameter simplification: does not accept conversion parameters such as size, clarity, or format Performance optimization comparison with the old interface: Reduced memory usage: Prevents the original image from being fully loaded into memory for software decoding, reducing double memory usage Improved response speed: Restoring streaming advantages and reducing system resource consumption.
Interface Address
/openapi/open/pad/getLongGenerateUrlRaw
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC11010000031 | String | Yes | Case number (supports up to 100 instances) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC11010000031 | String | Case number |
| ├─url | http://xxx.armcloud.png | String | Access address |
| ├─expireAt | 1756024767163 | Long | URL expiration time (millisecond timestamp) |
| ├─success | true | Boolean | Whether the URL was successfully generated |
| ├─reason | Instance status abnormality | String | Reasons for failure (empty when successful) |
Request Example
{
"padCodes": [
"AC11010000031",
"AC11010000032"
]
}
Response Examples
{
"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 Mirrors
Batch instance image upgrades
Interface Address
/openapi/open/pad/upgradeImage
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22030010182 | String | is | Case number |
| imageId | mg-24061124017 | String | is | Mirror ID |
| wipeData | false | Boolean | is | Whether to clear instance data (data partition): Clear true, do not delete false |
| enableCpuCoreConfig | true | Boolean | No | Whether to enable CPU and big-small core configurations, this feature is based on the Android cpuset mechanism, providing a static and staggered CPU resource allocation solution for multiple containers on the physical machine of the cloud phone. By finely dividing Little/Big Cores resources, it significantly improves the performance stability and user experience of a single container. |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─padCode | AC22030010182 | String | Case number |
| ├─taskId | 1 | Integer | Task ID |
| ├─errorMsg | “” | String | False information |
Request Example
{
"padCodes": [
"AC22030010182"
],
"wipeData": false,
"imageId": "mg-24061124017"
}
Response Examples
{
"code": 200,
"traceId": "ewab8whwonb4",
"msg": "success",
"ts": 1718594881432,
"data": [
{
"taskId": 63,
"padCode": "AC22030010182",
"errorMsg": null
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110041 | Mirroring does not exist | The mirror ID is incorrect in passing parameters |
| 110037 | Failed to execute the upgrade image command If the instance status is incorrect, contact the administrator | |
| 110038 | Failed to execute the upgrade image command If the instance status is incorrect, contact the administrator |
Upgrading Real Device Mirrors
Batch instance real machine image upgrades
Interface Address
/openapi/open/pad/virtualRealSwitch
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22030010182 | String | is | Case number |
| imageId | mg-24061124017 | String | is | Mirror ID |
| wipeData | false | Boolean | is | Whether to clear instance data (data partition): Clear true, do not delete false |
| realPhoneTemplateId | 178 | Integer | No | Required when real machine template ID upgradeImageConvertType = real |
| upgradeImageConvertType | virtual | String | is | Convert image types: virtual: virtual machine, real: cloud real machine |
| screenLayoutId | 14 | Integer | No | Screen layout ID upgradeImageConvertType=virtual is required |
| certificate | Refer to Mobile Root Certificate | String | No | Customize the phone's root certificate |
| deviceAndroidProps | {"persist.sys.cloud.wifi.mac": "D2:48:83:70:66:0B"} | Object | No | Android attribute configuration, refer to the Android Modification Attribute List (Note: CBS version 2.4.4 and below does not support ) |
| enableCpuCoreConfig | true | Boolean | No | Whether to enable CPU and big-small core configurations, this feature is based on the Android cpuset mechanism, providing a static and staggered CPU resource allocation solution for multiple containers on the physical machine of the cloud phone. By finely dividing Little/Big Cores resources, it significantly improves the performance stability and user experience of a single container. |
| certCode | ACN631098529xxxxx | String | No | Certificate code. Specify the use of the private certificate corresponding to the client's name and code for issuance to Yunzhenji; If not passed (null), certificates are automatically allocated according to the platform's default logic (backward compatible, no changes needed for stock calls). priority is lower than certificate, see the explanation below. If the code does not exist under the client's name (and no certificate is passed), the interface will report an error "Certificate not existing, certCode: xxx" during the acceptance phase and will not generate the task |
certificateandcertCodepriority explanation: When bothcertificate(the entire certificate content) andcertCodeare passed in simultaneously,certificateis used as the standard,certCodeis ignored and not verified;certCodeonly takes effect whencertificatehas not been sent (issued using a private certificate under the customer's name and corresponding to the code). If neither is transferred, certificates are automatically allocated according to the platform's default logic.
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─padCode | AC22030010182 | String | Case number |
| ├─taskId | 1 | Integer | Task ID |
| ├─errorMsg | “” | String | False information |
Request Example
{
"padCodes": [
"AC32010210023"
],
"imageId": "img-24112653977",
"wipeData": true,
"realPhoneTemplateId": 178,
"upgradeImageConvertType": "virtual",
"screenLayoutId": 14
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1718594881432,
"traceId": "ewab8whwonb4",
"data": [
{
"taskId": 63,
"padCode": "AC22030010182",
"errorMsg": null
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110041 | Mirroring does not exist | The mirror ID is incorrect in passing parameters |
| 110037 | Failed to execute the upgrade image command If the instance status is incorrect, contact the administrator | |
| 110038 | Failed to execute the upgrade image command If the instance status is incorrect, contact the administrator | |
| 110064 | There are instances that do not meet the conditions for upgrading to a real machine. Please check the instance | There are instances in the current instance that do not meet the upgrade conditions for a real device. Please check the instance |
Creating Templates
Create a "Create Template" task for a specified Cloud Phone instance (taskBusinessType=1058), which is pulled and executed by the Cloud Phone side. After a task succeeds, an application resource package will be generated, which can be obtained via the download link (#create-template-task-callback) [Create Template Task Callback].
Interface Address
/openapi/open/pad/makeAppTemplate
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCode | AC22030010182 | String | is | The cloud phone instance number must belong to the customer where the caller resides |
| packageName | com.android.gpstest | String | is | App package name |
| appName | GPSTest | String | No | App name (resource name). When left blank, the field corresponding to the callback and inventory entry is null |
| version | 3.10.5 | String | No | Application version. When left blank, the field corresponding to the callback and inventory entry is null |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object[] | ||
| ├─taskId | 12345 | Integer | Customer Perspective Task ID (i.e., customerTaskId) can be used for subsequent task result queries, log association, and callback reconciliation |
| ├─padCode | AC22030010182 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (1: Online; 0: Offline) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCode": "AC22030010182",
"packageName": "com.android.gpstest",
"appName": "GPSTest",
"version": "3.10.5"
}
Minimal form (required fields only):
{
"padCode": "AC22030010182",
"packageName": "com.android.gpstest"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1718594881432,
"traceId": "ewab8whwonb4",
"data": [
{
"taskId": 12345,
"padCode": "AC22030010182",
"vmStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operational advice |
|---|
- | padCode is not currently a customer | Check padCode attribution, using OpenAPI common error codes
Paginated Access to Real Device Templates
Pagination to obtain real machine templates
Interface Address
/openapi/open/realPhone/template/list
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| pageIndex | 1 | Integer | No | Page number Default is 1 |
| pageSize | 10 | Integer | No | Display quantity per page: Default is 10, value range is 1-100 |
| androidImageVersion | 14 | String | No | Android mirror version |
| source | OpenAPI | String | No | Template source, optional values: OpenAPI / OPS / Manage |
| isCustomerUploaded | true | Boolean | No | Whether the current customer originally uploaded the template: true = own uploads; false = other or unknown ownership; omitted/null = no ownership filter |
Accepts only JSON true, false, null, or omission; numbers and strings are rejected. Ownership is based on the original uploader, not the source or authorization list.
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object[] | Response data list | |
| ├─id | 178 | Long | Account ID |
| ├─brand | String | Brand | |
| ├─model | Pixel 7 Pro(12G) | String | Model |
| ├─fingerprintMd5 | f5da7b97678ac19309f0cf0203e072d7 | String | Android MD5 (ro.build.fingerprint) |
| ├─fingerprint | google/cheetah/cheetah:13/TQ3A.230901.001/10750268:user/release-keys | String | Android: ro.build.fingerprint |
| ├─resourceSpecificationCode | m2-3 | String | Specification number |
| ├─screenLayoutCode | realdevice_1440x3120x560 | String | Screen layout coding |
| ├─adiTemplateDownloadUrl | https://example.com/file.zip | String | The download path for the adi template file |
| ├─adiTemplatePwd | 123456 | String | ADI template file password |
| ├─propertyJson | {"test": "testa"} | JSON | Instance properties |
| ├─androidImageVersion | 13 | Integer | Android mirror version |
| ├─deleteFlag | 0 | Integer | Whether to delete (1: Deleted; 0: Not deleted) |
| ├─createTime | 2024-08-28 12:00:00 | Timestamp | Creation date |
| ├─updateTime | 2024-08-28 12:30:00 | Timestamp | Modify the time |
| ├─deviceName | Pixel Pro | String | Model Name (Alias/For Display Use) |
| ├─isOfficial | 1 | Integer | Is it an official release? (0: Beta 1: Official release) |
| ├─status | 1 | Integer | Whether to enable (0: disable 1: enable) |
| ├─adiTemplateVersion | v1.0.2 | String | adi template version number |
| ├─modelCode | cheetah | String | Model identification |
| ├─isPublic | 1 | Integer | Template usage types (1=Public 0=Private) |
| ├─aospVersion | 13.0.1 | String | AOSP version |
| ├─testCasesDownloadUrl | https://example.com/cases.zip | String | Test case file download path |
| ├─source | OPS | String | Template source: OpenAPI / OPS / Manage |
| ├─isCustomerUploaded | true | Boolean | Whether the current authenticated customer originally uploaded and created this template; false for other or unknown ownership |
Request Example
{
"pageIndex": 1,
"pageSize": 10,
"source": "OpenAPI",
"isCustomerUploaded": true
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313820061,
"data": [
{
"id": 202,
"createTime": "2025-03-12T02:29:43.000+00:00",
"updateTime": "2025-04-29T09:44:28.000+00:00",
"brand": "HONOR(FIX)",
"model": "ELZ-AN10(8G)",
"fingerprint": "HONOR/ELZ-AN10/HNELZ:14/HONORELZ-AN10/8.0.0.185CHNC00E185R4P6:user/release-keys",
"fingerprintMd5": "9bf2de4b6aa70466a6f76f66539c4613",
"resourceSpecificationCode": "m2-4",
"screenLayoutCode": "realdevice_1344x2772x476",
"adiTemplateDownloadUrl": "https://oss-hk.armcloud.net/adi/35fdc068d6fdc32a691554989008160b_fix2.zip",
"adiTemplatePwd": "XMDoxJgoKIZKoWbWlnmY",
"propertyJSON": "{}",
"androidImageVersion": 14,
"deleteFlag": false,
"deviceName": "ELZ-AN10(8G)",
"isOfficial": 1,
"status": 1,
"adiTemplateVersion": null,
"modelCode": null,
"isPublic": 1,
"testCasesDownloadUrl": null,
"aospVersion": "android14",
"source": "OpenAPI",
"isCustomerUploaded": true
}
],
"traceId": "ewabantnnwn4"
}
Upload ADI Templates
Download the ADI file via URL, parse and process it, then create an ADI template. Only zip and tar formats are supported.
Interface Address
/openapi/open/realPhone/template/adi/upload
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| adiUrl | https://example.com/adi-template.zip | String | Yes | The ADI file download URL only supports zip and tar formats |
| password | 123456 | String | No | The compression package decompression password, which is null or an empty string, means no extraction password is needed |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object | Response data | |
| ├─id | 256 | Long | Template ID |
| ├─brand | String | Brand | |
| ├─model | Pixel 7 Pro(12G) | String | Model |
| ├─deviceName | Pixel Pro | String | Model name |
| ├─fingerprint | google/cheetah/cheetah:13/TQ3A.230901.001/10750268:user/release-keys | String | Android: ro.build.fingerprint |
| ├─fingerprintMd5 | f5da7b97678ac19309f0cf0203e072d7 | String | The MD5 value for Android fingerprints |
| ├─androidImageVersion | 13 | Integer | Android mirror version |
| ├─screenLayoutCode | realdevice_1440x3120x560 | String | Screen layout coding |
| ├─status | 1 | Integer | Template status (0: Disable 1: Enable) |
| ├─adiTemplateVersion | v1.0.2 | String | ADI template version number |
| ├─source | OpenAPI | String | Template source: OpenAPI for newly created templates; unchanged when an existing template is reused |
explanation
- New templates record the current customer as the original uploader; reuse preserves ownership.
- An undeleted template with the same fingerprintMd5 and authorization for the current customer is returned directly (code=200).
- ADI files support up to 10MB, with a download timeout of 5 seconds
- adiURLs must start with http or https, and file extensions only support .zip or .tar
Request Example
{
"adiUrl": "https://example.com/adi-template.zip",
"password": "123456"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313820061,
"data": {
"id": 256,
"brand": "google",
"model": "Pixel 7 Pro(12G)",
"deviceName": "Pixel Pro",
"fingerprint": "google/cheetah/cheetah:13/TQ3A.230901.001/10750268:user/release-keys",
"fingerprintMd5": "f5da7b97678ac19309f0cf0203e072d7",
"androidImageVersion": 13,
"screenLayoutCode": "realdevice_1440x3120x560",
"status": 1,
"adiTemplateVersion": "v1.0.2",
"source": "OpenAPI"
},
"traceId": "ewabantnnwn4"
}
Error Codes
| Error code | Error Explanation | Operational advice |
|---|---|---|
| 500 | The ADI file URL format is incorrect | Check whether adiUrl starts with http/https and has a .zip or .tar extension |
| 500 | ADI file download failed | Check whether adiUrl is accessible properly and whether the file size exceeds 10MB |
| 500 | ADI file parsing failed | Check whether the ADI file content is complete and valid |
| 500 | Extraction password error | Check if the password parameters are correct |
Getting a List of Public Screen Layouts
Get a list of public screen layouts
Interface Address
/openapi/open/screenLayout/publicList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756349808017 | Long | Timestamp |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| data | Object[] | Response data list | |
| ├─id | 12 | Long | Account ID |
| ├─code | single-portrait-basic | String | Screen layout coding |
| ├─screenWidth | 1080 | String | Screen width |
| ├─screenHigh | 1920 | String | Screen height |
| ├─pixelDensity | 320 | String | Pixel density |
| ├─screenRefreshRate | 60 | String | Screen refresh rate |
| ├─status | 1 | Integer | Status (0: Disabled; 1: Enable) |
| ├─deleteFlag | 0 | Integer | Whether to delete (1: Deleted; 0: Not deleted) |
Request Example
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756349808017,
"data": [
{
"id": 12,
"code": "single-portrait-basic",
"screenWidth": "1080",
"screenHigh": "1920",
"pixelDensity": "320",
"screenRefreshRate": "60",
"status": 1,
"deleteFlag": 0
}
],
"traceId": "ewbssur1jbwg"
}
Batch Acquisition of Instance Model Information
Batch obtain model information for corresponding instances based on instance numbers.
Interface Address
/openapi/open/pad/modelInfo
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22030010182 | String | is | Case number |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC22030010182 | String | Case number |
| ├─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 | The unique identifier of the Android instance |
| ├─model | Mi 10 Pro | String | Model |
| ├─brand | Xiaomi | String | Brand |
| ├─manufacturer | Xiaomi | String | Manufacturer |
| ├─isRoot | 1 | String | Is it ROOT permission? |
| ├─width | 720 | Integer | The maximum width of cloud phones does not exceed 1080 |
| ├─height | 1280 | Integer | The maximum height of cloud phones does not exceed 1920 |
| ├─memoryLimit | 1024 | Integer | Memory limit |
| ├─bluetoothaddr | 3A:1F:4B:9C:2D:8E | String | Bluetooth address |
| ├─phonenum | 1112341234 | String | Mobile phone number |
| ├─romVersion | android13 | String | Android version |
| ├─dataSize | 2367381504 | Integer | Memory size (b) |
| ├─dataSizeAvailable | 365830144 | Integer | Remaining available (b) |
| ├─dataSizeUsed | 1024 | 2001551360 | Used (b) |
| ├─romVersion | android14 | String | ROM version |
Request Example
{
"padCodes": [
"AC22030010182"
]
}
Response Examples
{
"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"
}
Add to App Blacklist List
Add application blacklists based on instance specifications.
Interface Address
/openapi/open/appBlack/setUpBlackList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padGrade | q2-1 | String | is | Example specifications |
| blackApps | Object[] | is | Blacklist list | |
| ├─appPkg | cn.v8box.app | String | is | App package name |
| ├─appName | x8 sandbox | String | is | App name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721647657112 | Long | Timestamp |
| data | “” | String |
Request Example
{
"padGrade": "q2-1",
"blackApps": [
{
"appPkg": "cn.v8box.app",
"appName": "x8 sandbox"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1721647657112,
"data": null
}
Setting Example Blacklist
Set instance blacklists based on instance specifications.
Interface Address
/openapi/open/pad/triggeringBlacklist
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padGrade | q2-1 | String | is | Example specifications |
| padCodes | String[] | No | ||
| ├─ | AC22030010124 | String | No | Case number |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 12818 | Integer | Task ID |
| ├─padCode | AC22030010124 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padGrade": "q2-4",
"padCodes": [
"AC22030010124"
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1721739857317,
"data": [
{
"taskId": 12818,
"padCode": "AC22030010124",
"vmStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110051 | This specification does not have an app blacklist configuration Specification applications must be added to the blacklist list | |
| 110028 | The instance does not exist | The transmission of the censor was mistaken |
| 110052 | Failed to execute the set application blacklist command | Please try again |
Setting Instance Bandwidth
Set instance bandwidth based on instance number.
Interface Address
/openapi/open/pad/setSpeed
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22030010124 | String | is | Case number |
| upBandwidth | 10.00 | float | is | Uplink bandwidth Mbps (0: no limit; -1: Internet access restricted) |
| downBandwidth | 10.00 | float | is | Downlink bandwidth Mbps (0: no limit; -1: Internet access restricted) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| data | Object[] | ||
| ├─taskId | 679 | Integer | Task ID |
| ├─padCode | AC32010140011 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC32010140011"
],
"upBandwidth": 10.00,
"downBandwidth": 10.00
}
Response Examples
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1721640654237,
"data": [
{
"taskId": 679,
"padCode": "AC32010140011",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Turn Off ADB
Enable or close instance ADB based on the instance number
Interface Address
/openapi/open/pad/openOnlineAdb
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | Instance list (number of instances 1-200) | |
| ├─ | AC32010250032 | String | is | Case number |
| openStatus | 1 | Integer | is | Turn ADB status on or off (1 on, 0 or off by default) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721739857317 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 16147 | Integer | Task ID |
| ├─padCode | AC32010250032 | String | Case number |
| ├─taskStatus | 3 | Integer | Task status (-1 All failures, -2 partial failures, -3 canceled, -4 Timeout, -5 Exceptions, 1, Awaiting execution, 2 Execution, 3 Completed) |
| ├─taskResult | success | String | Mission results |
Request Example
{
"padCodes":[
"AC32010250032"
],
"openStatus": 1
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1736920929306,
"data": [
{
"taskId": 16147,
"padCode": "AC32010250032",
"taskStatus": 3,
"taskResult": "success"
}
]
}
Obtaining ADB Connection Information
Obtain ADB connection information based on the instance number If the response data (key, adb) is incomplete, please call [Turn ADB On/Off] (#pad_openOnlineAdb) enable ADB.
Interface Address
/openapi/open/pad/adb
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCode | AC32010250032 | String | is | Example number |
| enable | true | Boolean | is | ADB status true: Enable false: Turn off |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC32010250032 | String | Case number |
| ├─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 validity period |
| ├─enable | true | Boolean | ADB status true: On, false: Off |
| ├─key | 3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== | String | Connection key |
| ├─adb | adb connect localhost:8577 | String | ADB connection information |
Request Example
{
"padCode": "AC32010250032",
"enable": true
}
Response Examples
{
"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 Acquisition of ADB Connection Information
Batch retrieves or closes ADB connection information based on the instance number list. If the connection information returned after successful activation is incomplete, please first call the [Enable or Disable ADB] interface (#pad_openOnlineAdb) re-enable ADB and try again. This interface supports up to 10 instances at a time.
Interface Address
/openapi/open/pad/batch/adb
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | ["AC32010250032","AC32010250033"] | String[] | is | List of instance numbers, maximum of 10 instances |
| enable | true | Boolean | is | Whether ADB is enabled or not: true means it is enabled and returns connection information; false means ADB is off |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| ts | 1736922808949 | Long | Timestamp |
| data | Object | ||
| ├─successList | Object[] | List of successful batch execution results | |
| │ ├─padCode | AC32010250032 | String | Case number |
| │ ├─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 validity period |
| │ ├─enable | true | Boolean | ADB status: true: On, false: Off |
| │ ├─key | 3CXr3FJZ6gbnGuJctDOpP9M6X6Rl786xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx== | String | Connection key |
| │ ├─adb | adb connect localhost:8577 | String | ADB connection information |
| ├─failedList | Object[] | List of batch execution failures | |
| │ ├─padCode | AC32010250034 | String | Case number |
| │ ├─errorMsg | The instance did not run | String | Reasons for failure |
| │ ├─errorCode | PAD_NOT_RUNNING | String | Error code |
Request Example
{
"padCodes": [
"AC32010250032",
"AC32010250033"
],
"enable": true
}
Response Examples
{
"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"
}
]
}
}
Simulated Touch
Simulate touch events in instances (press, lift, touch) by passing in xy coordinates.
Exception Check: If there is a duplicate request within 2 seconds, an error message will appear: Do not operate frequently
Interface Address
/openapi/open/pad/simulateTouch
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| padCodes | 2200 | String[] | The instance code that needs to be triggered by clicks |
| width | 120 | Integer | Container width |
| height | 120 | Integer | Container height |
| pointCount | 1 | Integer | Multi-touch (multiple fingers tap the cloud phone screen effect), default 1, range 1-10, other numbers use default values |
| positions | [{"actionType":0,"x":100,"y":100,"nextPositionWaitTime":20}] | Object[] | Click on the coordinate group |
| ├─ actionType | 1 | Integer | Operation type (0: Press; 1: to lift; 2: Touching) |
| ├─ x | 100 | float | Click the X coordinate |
| ├─ y | 100 | float | Click the y-coordinate of the point |
| ├─ nextPositionWaitTime | 100 | Integer | When there are multiple coordinate groups, the waiting time in milliseconds for the next set of click coordinates is triggered |
| ├─ swipe | -1 | float | Scroll distance -1, swipe down 1, swipe up |
| ├─ touchType | gestureSwipe | String | gestureSwipe event gesture touch event keystroke key event (default is pressing to raise) |
| ├─ keyCode | 1 | Integer | Used to identify the specific button the user presses or releases |
| ├─ pressure | 0.5 | float | Contact pressure |
| ├─ size | 0.5 | float | The proportion of contact area to the screen |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1736922808949 | Long | Timestamp |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| data | Object[] | ||
| ├─padCode | AC32032 | String | Case number |
| ├─taskId | 10004759 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"Case number"
],
"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 Examples
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"traceId": "ewab8qjqbaio",
"data": [
{
"taskId": 100059,
"padCode": "ACP00001",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
},
{
"taskId": 100060,
"padCode": "ACP00001",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Detailed Task Instances
Query detailed execution results for specified instance operation tasks.
Interface Address
/task-center/open/task/padTaskDetail
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| taskIds | Integer[] | is | ||
| ├─taskId | 1 | Integer | Yes, the task ID |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| data | Object [] | Details of the subtask list | |
| ├─ taskId | 1 | Integer | Subtask ID |
| ├─ padCode | VP22020020793 | String | Instance identification |
| ├─ taskStatus | 2 | String TODO type usage error | Mission Status (-1: All failures; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Completed; 9: Queue) |
| ├─ endTime | 1713429401000 | Long | Subtask end timestamp |
| ├─ taskContent | “” | String | Mission Details |
| ├─ taskResult | “” | String | Mission results |
| ├─ errorMsg | “” | String | False information |
Request Example
{
"taskIds":[1,2]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756313781081,
"data": [
{
"taskId": 22323794,
"padCode": "ACN250828DYJE95Z",
"taskStatus": 2,
"endTime": null,
"taskContent": null,
"taskResult": null,
"errorMsg": null
}
],
"traceId": "ewab8kpxb7k0"
}
Obtaining Instance Execution Script Results
Obtain the script execution result by executing the script task ID.
Interface Address
/task-center/open/task/executeScriptInfo
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| taskIds | Integer [] | is | Array lengths range from 1 to 100 | |
| ├─ | 1 | Integer | No | Task ID |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewc84g8si0oy | String | Link trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22020020793 | String | Case number |
| ├─taskStatus | 3 | Integer | Mission Status (-1: All failures; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| ├─endTime | 1756021166163 | Long | Task execution end time |
| ├─taskContent | Success | String | Mission Details |
| ├─taskResult | Success | String | Mission results |
| ├─errorMsg | The instance does not exist | String | Reasons for failure |
Request Example
{
"taskIds": [1]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1752214432301,
"data": [
{
"taskId": 49884,
"padCode": "ATP250707FNSVRMC",
"taskStatus": 3,
"endTime": 1752214271000,
"taskContent": null,
"taskResult": null,
"errorMsg": "调用Adb命令成功"
}
],
"traceId": "erl0i57h6v40"
}
Obtaining Example Screenshot Results
Obtain the screenshot result of the instance using the screenshot task ID.
Interface URL
/task-center/open/task/screenshotInfo
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| taskIds | Integer [] | is | ||
| ├─ | 1 | Integer | No | Task ID |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| ts | 1756021167163 | Long | Timestamp |
| data | - | Object[] | Task list details |
| ├─ taskId | 1 | Integer | Task ID |
| ├─ taskStatus | 3 | Integer | Mission Status (-1: All failures; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| ├─ padCode | AC22020020793 | String | Case number |
| ├─ taskContent | Success | String | Mission Details |
| ├─ taskResult | Success | String | Mission results |
| ├─ endTime | 1756121167163 | String | Task execution end time |
Request Example
{
"taskIds": [1]
}
Response Examples
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts":1713773577581,
"data":[
{
"taskId": 1,
"taskStatus": 3,
"padCode": "AC22020020793",
"taskContent": "Success",
"taskResult": "Success",
"endTime": 1756121167163
}
]
}
Instance Restarts and Resets Execution Results
Retrieve the result of instance restart and reset execution through the task ID.
Interface Address
/task-center/open/task/padExecuteTaskInfo
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| taskIds | Integer [] | Yes | ||
| ├─ | 1 | Integer | Yes | Task ID |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewbssur1jbwg | String | Link Tracing ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC21020010001 | String | Case number |
| ├─taskStatus | 3 | Integer | Quest Status: (-1: All failures; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| ├─ endTime | 1756021166163 | Long | Task execution end time |
| ├─ taskContent | “” | String | Mission Details |
| ├─ taskResult | Success | String | Mission results |
Request Example
{
"taskIds": [1]
}
Response Examples
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1756021167163
"data":[
{
"taskId": 1,
"padCode": "AC22030022911",
"taskStatus": 3,
"endTime": 1756021166163,
"taskContent": null,
"taskResult": "Success"
}
]
}
Example List Information
Paginate instance list information according to query conditions.
Interface Address
/openapi/open/pad/infos
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | is | Page number |
| rows | 10 | Integer | is | Number of items |
| filterSubCustomerFlag | 1 | Integer | No | 0: Query both main and sub-accounts simultaneously; 1: Only query the main account; -1: Only queries sub-accounts. By default, query both main and sub-accounts simultaneously. |
| armServerCode | ACS32010260000 | Integer | No | Server number |
| deviceCode | AC32010250020 | String | No | Board number |
| netStorageResFlag | 1 | Integer | No | 0: Local instance, 1: Net storage instance |
| padStatus | 10 | Integer | No | Instance status: 10-Running 11-Restarting 12-Resetting 13-Upgrading 14-Abnormal 15-Not Ready 16-Backup 17-Restoring 18-Shutdown 19-Shutdown 20-Booting 21-Shutdown Failed 22-Boot Failure |
| padType | real | String | No | Instance type (virtual: virtual machine; real: real device) |
| instanceTypes | String[] | No | List of example specifications | |
| idc | 1 | String | No | Data center ID |
| padCodes | String[] | No | ||
| ├─ | AC22010020062 | String | No | Case number |
| groupIds | Integer[] | No | ||
| ├─ | 1 | Integer | No | Instance group ID |
| orderBy | CreateTime_DESC | String | No | Sort fields, listing situations: CreateTime_DESC: Create reverse chronological order; any other value: Create chronological order |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | Object | ||
| ├─page | 1 | Integer | Current page |
| ├─rows | 10 | Integer | The number per page |
| ├─size | 1 | Integer | Current page count |
| ├─total | 1 | Integer | Total recorded count |
| ├─totalPage | 1 | Integer | Total pages |
| ├─pageData | object[] | List | |
| ├─├─padCode | VP21020010391 | String | Case number |
| ├─├─padGrade | q1-2 | String | Number of Instances (Q1-6 Six-Instance, Q1-2 Two-Instance) |
| ├─├─padStatus | 10 | String | Instance status (10-Running, 11-Restarting, 12-Reset, 13-Upgrading, 14-Exception, 15-Not Ready) |
| ├─├─groupId | 0 | Integer | Group ID |
| ├─├─idc | 1 | String | Data center ID |
| ├─├─deviceIp | 192.168.0.0 | String | Cloud Phone IP |
| ├─├─padIp | 192.168.0.0 | String | Example IP |
| ├─├─customerAccount | star@test | String | The account to which the instance belongs |
| ├─├─armServerCode | ACS32010160000 | String | Server number |
| ├─├─padType | real | String | Instance type (virtual: virtual machine; real: real device) |
| ├─├─deviceCode | AC32010150070 | String | Board number |
| ├─├─createTime | 2025-09-15 14:11:21 | String | Instance creation time |
| ├─├─imageVersion | android14 | String | Android version |
| ├─├─apps | String[] | List of installed applications | |
| ├─├─├─ | armcloud001 | String | Installed applications |
Request Example
{
"page": 1,
"rows": 10,
"filterSubCustomerFlag": 0,
"padCodes": [
"AC21020010391"
],
"armServerCode": "ACS32010260000",
"deviceCode": "AC32010250020",
"groupIds": [
1
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1737625119669,
"data": {
"page": 1,
"rows": 10,
"size": 3,
"total": 3,
"totalPage": 1,
"pageData": [
{
"padCode": "AC32010250021",
"padGrade": "m2-3",
"padStatus": 12,
"groupId": 3,
"idcCode": "1",
"deviceIp": "172.31.3.3",
"padIp": "10.255.3.5",
"customerAccount": "star@test",
"padType": "real",
"adbOpenStatus": "0",
"armServerCode": "ACS32010260000",
"deviceCode": "AC32010250020",
"apps": null,
"imageId": "img-25012330968",
"createTime": "2025-09-15 14:11:21",
"imageVersion": "android14"
}
// ... More instance objects
]
}
}
Example List Information (Optimized Pagination Version)
Retrieve instance list information based on query criteria, using lastId + rows for pagination.
Interface Address
/openapi/open/pad/infos/new
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | No | Case number | |
| ├─ | AC22010020062 | String | No | Case number |
| deviceSubnet | 192.168.0.0/24 | String | No | Physical machine subnet |
| armServerCode | ACS32010260000 | String | No | Server number |
| clusterCode | cluster-001 | String | No | Cluster numbering |
| idc | 1 | String | No | Data center ID |
| padType | real | String | No | Instance type (virtual: virtual machine; real: real device) |
| deviceCode | AC32010250020 | String | No | Board number |
| groupIds | Integer[] | No | Instance group ID | |
| ├─ | 1 | Integer | No | Instance group ID |
| lastId | 0 | Long | No | For the last record ID of the last query, pass null or 0 for the first query |
| rows | 10 | Integer | is | Query quantity, range 1-1000, default 10 |
| netStorageResFlag | 1 | Integer | No | Is it a network storage cluster 0 local cluster 1 network storage cluster 2 Magic Box? |
| instanceTypes | String[] | No | List of example specifications |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | Object | ||
| ├─rows | 10 | Integer | The number per page |
| ├─size | 3 | Integer | Current page count |
| ├─lastId | 123 | Long | The last record ID is used for the next page query |
| ├─hasNext | true | Boolean | Is there a next page? |
| ├─pageData | object[] | List | |
| ├─├─padCode | VP21020010391 | String | Case number |
| ├─├─padGrade | q1-2 | String | Number of Instances (Q1-6 Six-Instance, Q1-2 Two-Instance) |
| ├─├─padStatus | 10 | String | Instance status (10-Running, 11-Restarting, 12-Reset, 13-Upgrading, 14-Exception, 15-Not Ready) |
| ├─├─groupId | 0 | Integer | Group ID |
| ├─├─idc | 1 | String | Data center ID |
| ├─├─deviceIp | 192.168.0.0 | String | Cloud Phone IP |
| ├─├─padIp | 192.168.0.0 | String | Example IP |
| ├─├─customerAccount | star@test | String | The account to which the instance belongs |
| ├─├─armServerCode | ACS32010160000 | String | Server number |
| ├─├─padType | real | String | Instance type (virtual: virtual machine; real: real device) |
| ├─├─deviceCode | AC32010150070 | String | Board number |
| ├─├─createTime | 2025-09-15 14:11:21 | String | Instance creation time |
| ├─├─imageVersion | 14 | String | Android version |
| ├─├─apps | String[] | List of installed applications | |
| ├─├─├─ | armcloud001 | String | Installed applications |
| ├─├─diskTotal | 32417603584 | Long | Total disk volume (bytes) |
| ├─├─diskUsed | 19356405760 | Long | Disk Used (bytes) |
Request Example
{
"lastId": 0,
"rows": 10,
"padCodes": [
"AC21020010391"
],
"armServerCode": "ACS32010260000",
"deviceCode": "AC32010250020",
"groupIds": [
1
],
"netStorageResFlag": 1
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1737625119669,
"data": {
"rows": 10,
"size": 3,
"lastId": 123,
"hasNext": true,
"pageData": [
{
"padCode": "AC32010250021",
"padGrade": "m2-3",
"padStatus": 12,
"groupId": 3,
"idcCode": "1",
"deviceIp": "172.31.3.3",
"padIp": "10.255.3.5",
"customerAccount": "star@test",
"padType": "real",
"adbOpenStatus": "0",
"armServerCode": "ACS32010260000",
"deviceCode": "AC32010250020",
"apps": null,
"imageId": "img-25012330968",
"createTime": "2025-09-15 14:11:21",
"imageVersion": "14",
"diskTotal": 32417603584,
"diskUsed": 19356405760
}
// ... More instance objects
]
}
}
Example Grouping List
Retrieves the current list of all instance group lists for the user (including: group ID, group name, number of instances under the group). Interface Address
/openapi/open/group/infos
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCode | AC21020010391 | String | No | Case number |
| groupIds | Integer[] | No | ||
| ├─ | 1 | Integer | No | Group ID |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─groupId | 1 | Integer | Group ID |
| ├─groupName | Group 1 | String | Group names |
| ├─padCount | 1 | Integer | Number of instances under the group |
Request Example
{
"padCode": "AC21020010391",
"groupIds": [1]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data": [
{
"groupId": 1,
"groupName": "Group One",
"padCount": 1
}
]
}
Batch Instance Batch Change/Grouping
Batch changes of a batch of instances (up to 200) to a specified target group. Both instances and target groups must belong to the current caller customer.
Interface Address
/openapi/open/group/movePad
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| groupId | 10086 | Long | is | The target group ID must be a valid group under the current customer's name that has not been deleted |
| padCodes | String[] | is | List of instance numbers for groups to be changed, up to 200 instances | |
| ├─ | AC32010xxxxx01 | String | is | Case number |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | None |
Request Example
{
"groupId": 10086,
"padCodes": ["AC32010xxxxx01", "AC32010xxxxx02"]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1713773577581,
"data": null
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 100009 | Illegal requests, missing necessary customer information | Check whether the request is carried by the gateway to carry the customer's identity |
| 140007 | There are no groupings | Confirm that the target group belongs to the current customer and has not been deleted |
| 110028 | There are no instances | Check whether the instance number is correct and belongs to the current customer |
| 140010 | Group move instance fails | Try again later. If it continues to fail, please contact the administrator for assistance |
| 100000 | The group ID cannot be empty | Make sure the groupId parameter is not empty |
| 100000 | The instance number cannot be empty | Make sure the padCodes parameters are not empty |
| 100000 | Instance numbers can be up to 200 | Ensure the number of instances does not exceed 200 |
Import Call Records
This interface allows you to import call log data into the cloud phone. During the import process, the interface automatically detects contacts saved in the cloud phone address book and displays their corresponding names in the call log, making it easy for users to quickly identify contacts.
Interface Address
/openapi/open/pad/addPhoneRecord
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | Yes | Instance codes that need to be edited for call records |
| callRecords | [{"number":"18009781201","inputType":1,"duration":30,"timeString":"2025-05-06 14:00:09"}] | Object[] | Yes | Call records |
| ├─ number | 13900000000 | String | Yes | Phone number |
| ├─ inputType | 1 | int | Yes | Call types (1: Outbound; 2: Answer the call; 3: Not answered) |
| ├─ duration | 60 | int | Yes | Call duration; The unit is seconds, and missed calls are 0 seconds |
| ├─ timeString | 2025-05-08 12:30:00 | String | No | Talk duration |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC32032 | String | Case number |
| ├─taskId | 10004759 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"Case number"
],
"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 Examples
{
"code": 200,
"msg": "success",
"ts": 1743676563784,
"data": [
{
"taskId": 100059,
"padCode": "ACP00001",
"vmStatus": 0,
"dispatchCode": 200
},
{
"taskId": 100060,
"padCode": "ACP00001",
"vmStatus": 0,
"dispatchCode": 200
}
]
}
Cloud Phone Text Information Input
Pre-focus the input box in the cloud phone, call this interface to input the specified text information, and the text will be displayed at the designated location on the cloud phone.
Interface Address
/openapi/open/pad/inputText
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | Yes | Example coding |
| text | hello123 | String | Yes | Enter text |
| Response Parameters |
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC32032 | String | Case number |
| ├─taskId | 10004759 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | String | Current status of the task |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"ACP250509FECQN33",
"ACP250509T1VME44",
"ACP25050917AYX11"
],
"text": "12345678"
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACP250509FECQN33",
"vmStatus": 0,
"taskId": 10013014,
"taskStatus": 1,
"dispatchCode": 200
},
{
"padCode": "ACP250509T1VME44",
"vmStatus": 0,
"taskId": 10013015,
"taskStatus": 1,
"dispatchCode": 200
},
{
"padCode": "ACP25050917AYX11",
"vmStatus": 0,
"taskId": 10013016,
"taskStatus": 1,
"dispatchCode": 200
}
],
"ts": 1746797852244
}
Simulated SMS Sending Message
Simulates sending a text message to an instance, supporting batch instances. (Temporarily limited to AOSP13 and 14)
Interface Address
/openapi/open/pad/simulateSendSms
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN2505060777"] | String[] | Yes | Example code list, quantity 1-100 |
| senderNumber | 13800000000 | String | Yes | Sender number, does not support mainland numbers. (Format: length limit 16 bits, allowing numbers, English, spaces, + - . & ' !) |
| smsContent | This is a test text message. | String | Yes | SMS content (length limit: 127 bits) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1736922808949 | Long | Timestamp |
| traceId | ewb123abc | String | Tracking ID |
| data | true | Boolean | Whether the call was successful |
Request Example
{
"padCodes": ["ACN2505060777"],
"senderNumber": "13800000000",
"smsContent": "This is a test text message."
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1736922808949,
"traceId": "ewb123abc",
"data": true
}
Reset GAID
Calling this interface to pass a specified instance number or instance group will reset the advertising ID in the cloud phone (Reset advertising ID)
Interface Address
/openapi/open/pad/resetGAID
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC21020010001 | String | Yes | Case number |
| groupIds | Integer[] | No | ||
| ├─ | 1 | Integer | No | Instance group ID |
| resetGmsType | GAID | String | Yes | Reset the GMS type, optional: GAID |
| oprBy | zhangsan | String | No | Operator |
| taskSource | OPEN_PLATFORM | String | Yes | Task source, optional: OPEN_PLATFORM |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC21020010001 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"ACPXXXXXXXXXXXXXXX"
],
"taskSource": "OPEN_PLATFORM",
"oprBy": "admin",
"resetGmsType": "GAID"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717559681604,
"data": [
{
"taskId": 88,
"padCode": "AC22030010001",
"vmStatus": 1,
"dispatchCode": 200
},
{
"taskId": 89,
"padCode": "AC22030010002",
"vmStatus": 0,
"dispatchCode": 200
}
]
}
Injecting Audio to Example Microphone
Injecting an audio file into the microphone of the instance to replace the microphone pickup interface Note: Currently, only PCM format audio files are supported for injection. Please convert the files properly before uploading
Interface Address
/openapi/open/pad/injectAudioToMic
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ACP2505060777 | String[] | Yes | Example coding |
| url | http://localhost/abc | String | No | Audio file download address (choose one of two between this field and fileUniqueId, pass the value) |
| fileUniqueId | 8fc73d05371740008ea27a2707496a82 | String | No | File ID unique identifier (choose one of two fields and URLs) |
| enable | true | Boolean | Yes | Injection switch |
| Response Parameters |
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1736922808949 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC32032 | String | Case number |
| ├─taskId | 10004759 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | String | Current status of the task |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"ACP250509FECQN33","ACP250509T1VME44","ACP25050917AYX11
],
"url":"http://localhost/abc ",
"fileUniqueId":"8a6d0df189ef4b0e83858fd9eeb7620c",
"enable":true
}
Response Examples
{
"msg": "success",
"code": 200,
"data": [
{
"padCode": "ACP250509FECQN33",
"vmStatus": 0,
"taskId": 10013014,
"taskStatus": 1,
"dispatchCode": 200
},
{
"padCode": "ACP250509T1VME44",
"vmStatus": 0,
"taskId": 10013015,
"taskStatus": 1,
"dispatchCode": 200
},
{
"padCode": "ACP25050917AYX11",
"vmStatus": 0,
"taskId": 10013016,
"taskStatus": 1,
"dispatchCode": 200
}
],
"ts": 1746797852244
}
Creating Local Instance Backups
Used to create a local instance backup interface.
Interface Address
/openapi/open/pad/local/pod/backup
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | PAD_001 | String | Yes | The instance number cannot be empty, with a maximum of 64 characters |
| backupName | backnameinfo | String | No | Backup name, maximum 128 characters |
| backupPath | backup/db | String | No | Do not start with /. If omitted, the backup is saved under the root directory /{backup ID}/ by default. Maximum length: 256 characters. |
| ossConfig | {...} | Object | No | Object storage configuration must support the S3 protocol, cannot be empty or permanently licensed |
| ├─ endpoint | oss-cn-shanghai.aliyuncs.com | String | ossConfig != null-yes | Object storage endpoint, maximum 128 characters |
| ├─ bucket | pad-backup | String | ossConfig != null-yes | The object stores the bucket name, with a maximum of 128 characters |
| ├─ accessKey | AKIA123456 | String | ossConfig != null-yes | Object storage accessKey, maximum 128 characters |
| ├─ secretKey | xxxxxxx | String | ossConfig != null-yes | Object storage secretKey, maximum 128 characters |
| ├─ protocol | https | String | ossConfig != null-yes | Object storage access protocol: HTTP or HTTPS, maximum 16 characters |
| ├─ region | cn-shanghai | String | ossConfig != null-yes | OSS region, maximum 32 characters |
| ├─ securityToken | xxxxxxxxx | String | credentialType=2 - Yes | Temporary certificate token |
| ├─ expiration | 2025-12-01T21:38:49z | String | credentialType=2 - Yes | Expiration date |
| credentialType | 1 | Integer | No | Voucher types: 1 - Permanent voucher, 2 - Temporary voucher |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1758271736814 | Long | Timestamp |
| data | {...} | Object | Returned task information objects |
| ├─ taskId | 59 | Long | Task ID |
| ├─ padCode | ACP250919HTTMIBQ | String | Case number |
| ├─ vmStatus | 0 | Integer | Instance online status: 0 = offline, 1 = online |
| ├─ taskStatus | 1 | Integer | Task status: -1 = Task exists (do not submit multiple times), 1 = Task added |
| ├─ errMsg | null | String | Description or misinformation |
| ├─ backupName | backupName | String | Backup name |
| ├─ backupId | bkp-ACP250919HTTMIBQ-1758271735910 | String | Backup ID |
| traceId | eyj68nk6dnuo | String | Request link trace IDs for troubleshooting |
Request Example
{
"padCode": "ACP25091XXXXXX15",
"backupName": "backnameinfo",
"backupPath": "backup/data/",
"credentialType": 1,
"ossConfig": {
"endpoint": "oss-cn-xxxxx.xxxxx.com",
"bucket": "armcloud-cn",
"accessKey": "LTAI5txxxxxxxYC",
"secretKey": "kjgvYxxxxxxxxxxx8URWU",
"protocol": "httpxxxx",
"region": "cn-xxxxx"
}
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1758271736814,
"data": {
"taskId": 59,
"padCode": "ACP25091XXXXXX15",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null,
"backupName": "backnameinfo",
"backupId": "bkp-ACP25091XXXXXX15-1758271735910"
},
"traceId": "eyj68nk6dnuo"
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 220025 | There are other tasks currently running or pending in the local instance. Please wait until the task finishes before trying again! | Wait until the task is completed before attempting |
| 220026 | Only supports local instance backup! | Confirm that the operation instance is a local instance |
| 220029 | The current instance state is not running | Confirm that the instance is running |
| 220033 | The current instance's CBS version is too outdated and does not support backup or restore | Contact your account manager to upgrade your board system to the latest version before trying again |
Create Local Instance Restoration
Used to create a local instance backup file restoration interface.
Interface Address
/openapi/open/pad/local/pod/restore
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| backupId | bkp-ACP250917XSYESH3-1758097064458 | String | Yes | Backup ID up to 128 characters |
| padCode | ACP250917CLAQJ15 | String | Yes | The instance number cannot be empty, with a maximum of 64 characters |
| ossConfig | {...} | Object | No | Object storage configuration must support the S3 protocol, cannot be empty or permanently licensed |
| ├─ endpoint | oss-cn-shanghai.aliyuncs.com | String | ossConfig != null-yes | Object storage endpoint, maximum 128 characters |
| ├─ bucket | pad-backup | String | ossConfig != null-yes | The object stores the bucket name, with a maximum of 128 characters |
| ├─ accessKey | AKIA123456 | String | ossConfig != null-yes | Object storage accessKey, maximum 128 characters |
| ├─ secretKey | xxxxxxx | String | ossConfig != null-yes | Object storage secretKey, maximum 128 characters |
| ├─ protocol | https | String | ossConfig != null-yes | Object storage access protocol: HTTP or HTTPS, maximum 16 characters |
| ├─ region | cn-shanghai | String | ossConfig != null-yes | OSS region, maximum 32 characters |
| ├─ securityToken | xxxxxxxxx | String | credentialType=2 - Yes | Temporary certificate token |
| ├─ expiration | 2025-12-01T21:38:49z | String | credentialType=2 - Yes | Expiration date |
| credentialType | 1 | Integer | No | Voucher types: 1 - Permanent voucher, 2 - Temporary voucher |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1758271736814 | Long | Timestamp |
| data | {...} | Object | Returned task information objects |
| ├─ taskId | 59 | Long | Task ID |
| ├─ padCode | ACP250919HTTMIBQ | String | Case number |
| ├─ vmStatus | 0 | Integer | Instance online status: 0 = offline, 1 = online |
| ├─ taskStatus | 1 | Integer | Task status: -1 = Task exists (do not submit multiple times), 1 = Task added |
| ├─ errMsg | null | String | Description or misinformation |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
| traceId | eyj68nk6dnuo | String | Request link trace IDs for troubleshooting |
Request Example
{
"padCode": "ACP25091XXXXXJ15",
"backupId": "bkp-ACP25091XXXXXJ15-1758097064458",
"credentialType": 1
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1758271736814,
"data": {
"taskId": 59,
"padCode": "ACP25091XXXXXX15",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null,
"dispatchCode": 200
},
"traceId": "eyj68nk6dnuo"
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 220025 | There are other tasks currently running or pending in the local instance. Please wait until the task finishes before trying again! | Wait until the task is completed before attempting |
| 220027 | The local instance backup file does not exist. Please check the file before trying again! | Check if the backup file exists |
| 220030 | The current instance status is not in running or exceptional | Confirm that the instance is running or in an abnormal state |
| 220031 | Backed files do not belong to the current user | Confirm the privileges of the backup instance |
| 220032 | The current backup ID instance does not exist, making it impossible to determine whether the current backup file belongs to the current user | Check if the backup ID is correct |
| 220033 | The current instance's CBS version is too outdated and does not support backup or restore | Try after upgrading the instance CBS version |
Local Instance Backup Result Query
Obtain available backups of local instances based on instance numbers.
Interface Address
/openapi/open/pad/local/pod/backupSelectPage
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | No | Current page |
| rows | 10 | Integer | No | The number per page |
| padCodes | String[] | Yes | ||
| ├─padCode | ACP5C24S9G6xxxxx | String | Yes | Case number, with a maximum of 100 instances supported |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object | Returned data objects | |
| ├─ page | 1 | Integer | Current page |
| ├─ rows | 10 | Integer | The number per page |
| ├─ size | 1 | Integer | Current page count |
| ├─ total | 1 | Integer | Total recorded count |
| ├─ totalPage | 1 | Integer | Total pages |
| ├─ pageData | Object[] | List | |
| ├─├─ padCode | ACP5C24S9G6xxxxx | String | Case number |
| ├─├─ backupId | bkp-xxxxxS4QBMGEW1ZX-1764728535556 | String | Backup ID |
| ├─├─ backupName | backupName | String | Backup name |
| ├─├─ backupPath | backup/db | String | Backup data save path |
| ├─├─ endpoint | backupName | String | Backup Name (Endpoint) |
| ├─├─ bucket | pad-backup | String | The object stores the bucket name, with a maximum of 128 characters |
| ├─├─ protocol | https | String | Object storage access protocol: HTTP or HTTPS, maximum 16 characters |
| ├─├─ region | cn-shanghai | String | OSS region, maximum 32 characters |
| traceId | eyj68nk6dnuo | String | Request link trace IDs for troubleshooting |
Request Example
{
"padCodes":["ACP5C24S9G6xxxxx"],
"page":1,
"rows":10
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1764819200220,
"data": {
"page": 1,
"rows": 10,
"size": 1,
"total": 1,
"totalPage": 1,
"pageData": [
{
"padCode": "ACP5C24S9G6xxxxx",
"backupId": "bkp-xxxxxS4QBMGEW1ZX-1764728535556",
"backupName": "android13-xxxx-virtual machine-img-25112665572-Honor of Kings + Douyin",
"backupPath": "backup/data/",
"endpoint": "oss-cn-xxxxxx.xxxxxxx.com",
"bucket": "armcloud-xx",
"protocol": "https",
"region": "cn-hongkong"
}
]
},
"traceId": "f61kq5vu5ts0"
}
Local Instance Calculation Backup Size
Used to calculate the size of storage space required for local instance backup.
Interface Address
/openapi/open/pad/local/pod/backupCalculate
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | ACP250919HTTMIBQ | String | Yes | The instance number cannot be empty, with a maximum of 64 characters |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code (200 means successful) |
| msg | success | String | Interface request status information |
| ts | 1758271736814 | Long | Timestamp |
| data | {...} | Object | Returned task information objects |
| ├─ taskId | 59 | Integer | Task ID |
| ├─ padCode | ACP250919HTTMIBQ | String | Case number |
| ├─ vmStatus | 1 | Integer | Instance online status: 0 = offline, 1 = online |
| ├─ dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
| traceId | eyj68nk6dnuo | String | Request link trace IDs for troubleshooting |
Request Example
{
"padCode": "ACP250919HTTMIBQ"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1758271736814,
"data": {
"taskId": 59,
"padCode": "ACP250919HTTMIBQ",
"vmStatus": 1,
"dispatchCode": 200
},
"traceId": "eyj68nk6dnuo"
}
Error Codes
| Error code | Misstatement | Operational advice |
|---|---|---|
| 220025 | There are other tasks currently running or pending in the local instance. Please wait until the task finishes before trying again! | Wait until the task is completed before attempting |
| 220026 | Only supports local instance backup! | Confirm that the operation instance is a local instance |
| 220029 | The current instance state is not running | Confirm that the instance is running |
| 220033 | The current instance's CBS version is too outdated and does not support backup or restore | Contact your account manager to upgrade your board system to the latest version before trying again |
Clear Process and Return to Desktop
Clear all processes outside the phone's system and return to the home screen
Interface Address
/openapi/open/pad/cleanAppHome
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ATP250814USYXXXX | String[] | Yes | Example coding |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1736922808949 | Long | Timestamp |
| traceId | euz60azzc7i8 | String | Tracking ID |
| data | Object[] | ||
| ├─padCode | AC32032 | String | Case number |
| ├─taskId | 10004759 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | String | Current status of the task |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"ATP250814USYXXXX"
]
}
Response Examples
{
"msg": "success",
"traceId": "euz60azzc7i8",
"code": 200,
"data": [
{
"padCode": "ATP250814USYXXXX",
"vmStatus": 0,
"taskId": 68951,
"taskStatus": 1,
"dispatchCode": 200
}
],
"ts": 1755172215886
}
Unattended Live Streaming
Instance injected into the video interface. Supports injectUrls injection via a single video address injectUrl or address list, with at least one input and no simultaneous input; injectUrls supports up to 5 addresses.
Video Encoding Recommendations: For better playback smoothness and latency, it is recommended to use H.264 or H.265 encoding for the source video; Using other video codecs may cause playback lag or increased latency.
Interface Address
/openapi/open/pad/unmanned/live
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ACN384345141346304 | String[] | Yes | Example coding (1-100 items) |
| injectSwitch | true | Boolean | No | Whether to enable video injection (true: enable false, cancel) is by default: false |
| injectLoop | false | Boolean | No | Loop playback (true: yes, false: no) by default: false |
| injectUrl | https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4 | String | No | A single video injection address supports http/https/rtmp:// and local paths, passing at least one of injectUrls |
| injectUrls | ["https://file.vmoscloud.com/userFile/1eea385b2a6ba3942ebf642badf39aa0.mp4","rtmp://example.com/live"] | String[] | No | Video injection address list (up to 5), supports http/https/rtmp:// and local paths, and passes at least one with injectUrl |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1759134336311 | Long | Timestamp |
| traceId | ezispr1m30n4 | String | Tracking ID |
| data | Object[] | ||
| ├─padCode | ACN384345141346304 | String | Case number |
| ├─taskId | 20503 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | String | Current status of the task |
| ├─errMsg | null | String | Error message |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
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 Examples
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 20503,
"padCode": "ACN384345141346304",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null,
"dispatchCode": 200
}
],
"traceId": "ezispr1m30n4"
}
Image Injection
Instance Injection Image Interface
Interface Address
/openapi/open/pad/inject/picture
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ACN2510166WZUPCJ | String[] | Yes | Example coding (1-100 items) |
| injectSwitch | true | Boolean | No | Whether to enable image injection (true: on, false: cancel): default is false |
| injectLoop | false | Boolean | No | Loop playback (true: yes, false: no) by default: false |
| injectUrl | https://file.vmoscloud.com/userFile/ac4e112d72f9ed724101f510e774001f.JPG | String | Yes | Image injection address, supports http https rtmp:// |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1759134336311 | Long | Timestamp |
| traceId | ezispr1m30n4 | String | Tracking ID |
| data | Object[] | ||
| ├─padCode | ACN384345141346304 | String | Case number |
| ├─taskId | 20503 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | String | Current status of the task |
| ├─errMsg | null | String | Error message |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": ["ACN2510166WZUPCJ"],
"injectSwitch": true,
"injectLoop": false,
"injectUrl": "https://file.vmoscloud.com/userFile/ac4e112d72f9ed724101f510e774001f.JPG"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 28247,
"padCode": "ACN2510166WZUPCJ",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null,
"dispatchCode": 200
}
],
"traceId": "ezispr1m30n4"
}
Real-Time Sensor Injection
Injecting sensor data into designated instances, supporting various sensor types such as accelerometers, gyroscopes, magnetometers, and device orientation. It supports three modes: single injection, continuous injection, and stopped injection.
Interface Address
/openapi/open/pad/injectSensor
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN2510166WZUPCJ"] | String[] | Yes | Case Number (1-200) |
| mode | continuous | String | Yes | Injection mode: continuous - continuous injection, stop - stop injection |
| sensors | [{...}] | Object[] | No | Sensor data list; when mode=stop, it can be empty |
| ├─sensorType | acceleration | String | Yes | Sensor types, see the explanation below |
| ├─x | 0.5 | Float | No | X-axis data, default 0 |
| ├─y | 9.8 | Float | No | Y-axis data, default 0 |
| ├─z | 0.3 | Float | No | Z-axis data, default 0 |
| interval | 50 | Integer | No | Injection interval (milliseconds), only for continuous mode, default 50 |
| duration | -1 | Integer | No | Duration (seconds): -1 means infinite, default -1 |
| addNoise | true | Boolean | No | Whether Gaussian noise is added to make data more realistic is true by default |
Supported Sensor Types (sensorType)
| Value | Explanation |
|---|---|
| acceleration | Accelerometer |
| gyroscope | Gyroscope |
| magnetic-field | Magnetometer |
| orientation | Equipment direction |
| gravity | Gravity sensor |
| linear-acceleration | Linear acceleration |
| rotation-vector | Rotation vector |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1759134336311 | Long | Timestamp |
| traceId | ezispr1m30n4 | String | Tracking ID |
| data | Object[] | ||
| ├─padCode | ACN2510166WZUPCJ | String | Case number |
| ├─taskId | 20503 | Long | Task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | String | Current status of the task |
| ├─errMsg | null | String | Error message |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Example of Request (Single Injection Accelerometer + Gyroscope)
{
"padCodes": ["ACN2510166WZUPCJ"],
"mode": "continuous",
"sensors": [
{ "sensorType": "acceleration", "x": 0.5, "y": 9.8, "z": 0.3 },
{ "sensorType": "gyroscope", "x": 0.01, "y": -0.02, "z": 0.005 }
],
"addNoise": true
}
Example of Request (Continuous Injection of Magnetometer, 100ms Interval)
{
"padCodes": ["ACN2510166WZUPCJ"],
"mode": "continuous",
"sensors": [
{ "sensorType": "magnetic-field", "x": 25.0, "y": -10.5, "z": 45.0 }
],
"interval": 100,
"duration": 60,
"addNoise": true
}
Example of Request (Stop Injection)
{
"padCodes": ["ACN2510166WZUPCJ"],
"mode": "stop"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 28250,
"padCode": "ACN2510166WZUPCJ",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null,
"dispatchCode": 200
}
],
"traceId": "ezispr1m30n4"
}
Exercise Data Injection (Step Count)
Injecting motion data interfaces supports injecting motion data into specified instances. Since different third-party applications have different motion data acquisition rules, their accuracy may vary somewhat.
Interface Address
/openapi/open/pad/stepData
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | ["ACN519141428559881"] | String[] | is | Case Numbering: The case number that requires inputting motion data, with a maximum of 500 instances per batch, and multiple instance numbers separated by commas |
| stepCount | 60 | Integer | Yes | Steps Only supports positive integers greater than 0, with RMS greater than 0 but less than 45,000 |
| motorPattern | 0 | Integer | No | Exercise mode set 0-slow, step frequency 60 steps/min; 1-medium, step frequency 120 steps/min; 2-fast, step frequency 180 steps/min. Default value is 0 |
| addNoise | true | Boolean | No | Whether to add noise: Adding noise can make the data more realistic, but it may increase the corresponding task time. False-no-true-yes is the default false value |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1759134336311 | Long | Timestamp |
| traceId | ezispr1m30n4 | String | Tracking ID |
| data | Object[] | ||
| ├─padCode | ACN384345141346304 | String | Case number |
| ├─taskId | 20503 | Long | task ID |
| ├─vmStatus | 0 | String | The instance is online |
| ├─taskStatus | 1 | String | Current status of the task |
| ├─errMsg | null | String | Error message |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"ACN519141428559881"
],
"stepCount": 60,
"motorPattern": 1,
"addNoise": false
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1759134336311,
"data": [
{
"taskId": 20503,
"padCode": "ACN384345141346304",
"vmStatus": 0,
"taskStatus": 1,
"errMsg": null,
"dispatchCode": 200
}
],
"traceId": "ezispr1m30n4"
}
Local Instance Migration
Note: Local instance migration will overwrite all data from source instance (A) to target instance (B), and the original data of the target instance will be cleared. Please use with caution!
retainOriginalDataOnly controls whether the original data of the source instance (A) is retained after migration; it does not change the overwriting behavior of the target instance (B).retainOriginalDataRequires the CB>S version of the CBS board where the source instance is running to take effect; The default valuefalserepresents the data for clearing source instance (A) data after migration.
Migrate the data of source instance A (images, Android properties, ADI, etc.) to the target instance B, and after migration, the configuration of target instance B matches that of source instance A.
Usage Restrictions:
- The number of instances between the source instance and the target instance must be the same.
- Both instances must be local instances (non-net storage instances)
- The CBS version of the board where the source instance and target instance are located must be >= 2.6.7
- Both instances must be in running state
- The same target instance can only be used by one migration task at a time (mutually exclusive)
Interface Address
/openapi/open/pad/movePad
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| sourcePadCode | ACP63463L11FZZ7P | String | Yes | Source instance number (Example A, the provider of the data) |
| targetPadCode | ACP63463L2ZX7NK5 | String | Yes | Target instance number (Example B, the receiving party, the original data will be cleared) |
| retainOriginalData | false | Boolean | No | Whether to retain the original data of the source instance (A). Requires the CBS version of the source instance to be valid at CBS version >= 2.6.17; The default value false means clearing source instance data after migration |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1721739857317 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link Tracing ID |
| data | Object | ||
| ├─taskId | 12818 | Long | Task ID |
| ├─padCode | ACP63463L11FZZ7P | String | Instance Number (Source Instance Number) |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"sourcePadCode": "ACP63463L11FZZ7P",
"targetPadCode": "ACP63463L2ZX7NK5",
"retainOriginalData": false
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1741651200000,
"data": {
"taskId": 12818,
"padCode": "ACP63463L11FZZ7P",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
},
"traceId": "ewc84g8si0oy"
}
Local Instance Queue Migration
Note: Queue migration will sequentially overwrite data from source instance (A) to multiple target instances, and the original data of the target instance will be cleared. Please use with caution!
retainOriginalDataOnly controls whether the original data of the source instance (A) is retained after migration; it does not change the behavior of the target instance being overwritten.
Migrate source instance A in targetPadCodeList order to cover multiple target instances in sequence. The service creates a migration task for each target instance: the first task starts immediately, subsequent tasks enter the queue, and wait for the previous task to finish before continuing execution.
Usage Restrictions:
- The target instance list cannot be empty and cannot contain null values or duplicate instances
- The source instance cannot have unfinished migration tasks or ongoing queue migration tasks
- The source instance cannot be identical to any target instance
- Both the source instance and the destination instance must exist, belong to the same customer, and the caller must own these instances
- Both the source instance and the destination instance must be local instances (non-in-store instances)
- The number of instances between the source instance and the target instance must be the same.
- The CBS version of the board where the source instance and target instance are located must be >= 2.6.18
- Both the source instance and the target instance must be in running state
- The same target instance cannot be occupied by other migration tasks at the same time
Interface Address
/openapi/open/pad/movePadQueue
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| sourcePadCode | ACP63463L11FZZ7P | String | Yes | Source instance number (Example A, the provider of the data) |
| targetPadCodeList | ["ACP63463L2ZX7NK5","ACP63463L2ZX7NK6"] | String[] | Yes | List of target instance IDs (queued and migrated in order passed) |
| retainOriginalData | false | Boolean | No | Whether the original data of the source instance (A) is retained; The default value false means clearing source instance data after migration |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1741651200000 | Long | Timestamp |
| traceId | ewc84g8si0oz | String | Link Tracing ID |
| data | Object[] | The list of queued migration tasks created returns in the same order as targetPadCodeList | |
| ├─taskId | 12818 | Integer | Task ID |
| ├─padCode | ACP63463L11FZZ7P | String | Instance number (returns the source instance number) |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 means the instance was successfully sent; a non-200 is the failure cause code (used for internationalization, distinct from interface layer code). The values are listed at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"sourcePadCode": "ACP63463L11FZZ7P",
"targetPadCodeList": [
"ACP63463L2ZX7NK5",
"ACP63463L2ZX7NK6"
],
"retainOriginalData": false
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1741651200000,
"data": [
{
"taskId": 12818,
"padCode": "ACP63463L11FZZ7P",
"vmStatus": 1,
"dispatchCode": 200
},
{
"taskId": 12819,
"padCode": "ACP63463L11FZZ7P",
"vmStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewc84g8si0oz"
}
Callback Management
Configuration Instructions: Customers need to configure callback addresses on the customer open platform. If the address is successfully configured, receiving callback messages is enabled by default
Types of Callbacks Supported by Querying
Interface Address
/openapi/open/config/selectList
Request Method
GET
Request Data Types
No parameters
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | Object | ||
| ├─callbackName | "File Upload Task" | String | Callback type name |
| ├─callbackType | "4" | String | Types of callbacks |
| ├─id | 14 | Long | Callback type ID (this parameter will be passed in for future additions and modifications) |
Request Example
/openapi/open/config/selectList
Response Examples
{
"code": 200,
"data": [
{
"callbackName": "File upload task",
"callbackType": "4",
"id": 14
},
{
"callbackName": "File upload instance task",
"callbackType": "5",
"id": 15
},
{
"callbackName": "App synchronization tasks",
"callbackType": "6",
"id": 16
}
],
"msg": "success",
"ts": 1734500966127
}
Query Configuration Callback Address
Interface Address
/openapi/open/config/selectCallback
Request Method
GET
Request Data Types
No parameters
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | http://www.baidu.com | String | Configured callback address (returns the first one) |
Request Example
/openapi/open/config/selectCallback
Response Examples
{
"code" : 200,
"data" : "http://www.baidu.com",
"msg" : "success",
"ts" : 1734501602763
}
Querying All Configured Callback Addresses
When multiple callback addresses are configured, this interface is used to query all callback addresses.
Interface Address
/openapi/open/config/selectCallbackUrls
Request Method
GET
Request Data Types
No parameters
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | ["http://a.com", "http://b.com"] | String[] | A list of callback addresses for all configurations |
Request Example
/openapi/open/config/selectCallbackUrls
Response Examples
{
"code" : 200,
"data" : ["http://www.baidu.com", "http://www.example.com/callback"],
"msg" : "success",
"ts" : 1734501602763
}
New Callback Address Configuration
Interface Address
/openapi/open/config/insertCallback
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| callbackIdList | [1,2,3] | Long[] | Yes | Callback type ID collection (obtained from callback type interfaces supported by queries) |
| callbackUrls | ["http://a.com/cb", "http://b.com/cb"] | String[] | No | Callback address list, up to 3 (choose either callbackUrl or callbackUrl, preferably using callbackUrls) |
| callbackUrl | http://192.168.1.1/callback | String | No | Single callback address (compatible with older versions; if callbackurls are passed, this field is ignored) |
Note: Added as incremental addition; existing configurations will not be reinserted. Each customer can configure up to 3 callback addresses; if exceeded, they must be deleted before adding new addresses.
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1713773577581 | Long | Timestamp |
| data | 2 | Integer | Configured number of successful types |
Request Example
{
"callbackIdList": [21, 14],
"callbackUrls": ["http://localhost:8080/callback", "http://localhost:9090/callback"]
}
Response Examples
{"code":200,"data":2,"msg":"success","ts":1734502541732}
Modifying Callback Address Configuration
Interface Address
/openapi/open/config/updateCallback
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| callbackIdList | [1,2,3] | Long[] | Yes | Callback type ID collection (obtained from callback type interfaces supported by queries) |
| callbackUrls | ["http://a.com/cb", "http://b.com/cb"] | String[] | No | Callback address list, up to 3 (choose either callbackUrl or callbackUrl, preferably using callbackUrls) |
| callbackUrl | http://192.168.1.1/callback | String | No | Single callback address (compatible with older versions; if callbackurls are passed, this field is ignored) |
Note: Modify to full replacement, first delete all configured callback addresses for that client, then rewrite.
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1713773577581 | Long | Timestamp |
| data | 2 | Integer | Number of successful types updated |
Request Example
{
"callbackIdList": [21, 14],
"callbackUrls": ["http://localhost:8080/callback", "http://localhost:9090/callback"]
}
Response Examples
{
"code" : 200,
"data" : 2,
"msg" : "success",
"ts" : 1734502541732
}
Delete the Callback Address of the Configuration
Interface Address
/openapi/open/config/deleteCallback
Request Method
POST
Request Data Types
No parameters
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | 4 | Long |
Request Example
{}
Response Examples
{
"code" : 200,
"data" : 22,
"msg" : "success",
"ts" : 1734503029282
}
Instance State Callback
Usage Scenarios
Instance status changes are notified to customers through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 999 | Task business types |
| padCode | String | 212254 | Instance identification |
| padStatus | Integer | 1 | Instance Status: Instance Status: -1 Deleted 10 - Running 11 - Restarting 12 - Reset 13 - Upgrading 14 - Abnormal 15 - Not Ready 16 - Backup 17 - Restoring 18 - Shutdown 19 - Shutting down 20 - Starting up 21 - Shutdown failed 22 - Boot failed |
| padConnectStatus | Integer | 1 | Instance connection status: 1: Online, 0: Offline |
Instance Restart Task Callback
Usage Scenarios
When an instance restarts a task, it is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1000 | Task business types |
| padCode | String | 212254 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 1 | Task ID |
| taskContent | String | Mission Details | |
| endTime | Long | 1756021166163 | End time |
| taskResult | String | Success | Mission results |
Instance Reset Task Callback
Usage Scenarios
The instance resets the task is notified to the client via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1001 | Task business types |
| padCode | String | 212254 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 1 | Task ID |
| taskContent | String | Mission Details | |
| endTime | Long | 1756021166163 | End time |
| taskResult | String | Success | Mission results |
Asynchronous Execution of ADB Task Callbacks
Usage Scenarios
When the customer calls the ADB command asynchronously, it will notify the customer through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1002 | Task business types |
| padCode | String | AC22030022001 | Instance identification |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| endTime | Long | 1756021166163 | Task execution end time |
| taskResult | String | Success | Mission results |
| taskContent | String | Mission Details | |
| cmd | String | cd /root;ls | Execution of orders |
| cmdResult | String | /ws | The executed command returns |
App Installation Task Callbacks
Usage Scenarios
When customers call for app installation, the installation status of the application is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskId | Integer | 1 | Task ID |
| padCode | String | AC22030022001 | Case number |
| taskBusinessType | Integer | 1004 | Task business types |
| endTime | Long | 1756021166163 | End time |
| apps | Object[] | Application information | |
| ├─ appId | Integer | 10001 | Application ID |
| ├─ appName | String | demo | App name |
| ├─ pkgName | String | com.xxx.demo | Package name |
| ├─ padCode | String | AC22030022001 | Case number |
| ├─ result | boolean | true | Identification of the installation results. true: success, false: failure |
| ├─ failMsg | String | This app has been added to the blacklist and is prohibited from installation | Failure information |
| ├─ versionCode | 150600 | String | Version number |
| ├─ versionName | 15.6.0 | String | Version name |
App Uninstall Task Callback
Usage Scenarios
When customers call an app to uninstall, the status of the uninstall is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1004 | Task business types |
| taskId | Integer | 1 | Task ID |
| apps | Object | Application information | |
| ├─ appId | Integer | 10001 | Application ID |
| ├─ appName | String | demo | App name |
| ├─ pkgName | String | com.xxx.demo | Package name |
| ├─ padCode | String | AC22030022001 | Case number |
| ├─ result | boolean | true | Identification of the installation results. true: success, false: failure |
Application Stops Task Rollback
Usage Scenarios
When a customer calls an application and stops, the situation of the application stop is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1005 | Task business types |
| padCode | String | AC22030022001 | Instance identification |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| packageName | String | xxx.test.com | Package name |
App Launch Task Callback
Usage Scenarios
When the customer calls the application to start, the status of the application launch is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1007 | Task business types |
| padCode | String | AC22030022001 | Instance identification |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| packageName | String | xxx.test.com | Package name |
File Upload Example Task Callback
Usage Scenarios
When the client calls the instance file upload API, it will notify the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1009 | Task business types |
| padCode | String | AC22030022001 | Case number |
| taskId | Integer | 1 | Task ID |
| result | boolean | true | Execution result: true - success, false - failure |
| errorCode | String | Error code | |
| fileId | String | cf08f7b685ab3a7b6a793b30de1b33ae34 | File ID |
Query Example Application List Callback
Usage Scenarios
The client calls the instance to install the application list, and the instance notifies the installed application list via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1011 | Task business types |
| padCode | String | AC22030022001 | POD logo |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 1 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| apps | Object[] | ||
| ├─appName | String | test | App name |
| ├─appState | 0 | Integer | 0 Completed 1 Installing 2 Downloading |
| ├─pkgName | String | text.xx.com | Package name |
| ├─versionCode | 150600 | String | Version number |
| ├─versionName | 15.6.0 | String | Version name |
Instance Upgrade Mirror Task Callback
Usage Scenarios
Changes in the status of instance upgrade mirror tasks are notified to customers through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1012 | Task business types |
| padCode | String | 212254 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 1 | Task ID |
| taskContent | String | Mission Details | |
| endTime | Long | 1756021166163 | End time |
| taskResult | String | Success | Mission results |
Example Blacklist Task Callback
Usage Scenarios
If the instance settings apply blacklist task status changes, the customer is notified through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1015 | Task business types |
| padCode | String | 212254 | Case number |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
Template Task Callback
Usage Scenarios
After the customer calls the Creating Template interface to create a task (taskBusinessType=1058), when the task enters its terminal state (success/failure/cancel/timeout), the callback interface will notify the customer. Executing (taskStatus=1 pending / 2 executing) will not trigger a callback.
Subscription method: Customers can enable a 'Template Creation Task' callback on the 'Callback Subscription' page in the PaaS console.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1058 | Task business type, fixed 1058 |
| padCode | String | AC22030010182 | Case number |
| taskId | Integer | 12345 | Customer View Task ID (taskId returned by the creation interface) |
| taskStatus | Integer | 3 | Task terminal status code (3: Success; -1: Failure; -3: Cancel; -4: Timeout) |
| packageName | String | com.android.gpstest | Application package name (passed in when creating the task, returned as-is) |
| appName | String | GPSTest | App name (passed when creating the task, may be null) |
| version | String | 3.10.5 | Application version (passed in when creating the task, may be null) |
| downloadUrl | String | https://oss-example.armcloud.net/game-res/com.android.gpstest/3.10.5/template.zip | Resource pack download link: Success (taskStatus=3) required but not blank; Failure/cancel/timeout is null |
| fileMd5 | String | 73e1146365fbe02615a6d1f7829ddcf7 | Resource Package MD5: Successfully (taskStatus=3) extracted from the data reported from the cloud mobile end; Failure/cancel/timeout is null |
| fileSize | Long | 3567264256 | Number of resource package bytes: successful (taskStatus=3) not empty (note type Long, may exceed int32 limit); Failure/cancel/timeout is null |
Example of successful callback
{
"taskBusinessType": 1058,
"padCode": "AC22030010182",
"taskId": 12345,
"taskStatus": 3,
"packageName": "com.android.gpstest",
"appName": "GPSTest",
"version": "3.10.5",
"downloadUrl": "https://app-image.vmos.cn/userFile/com.netease.dhxy/2.1.432/73e1146365fbe02615a6d1f7829ddcf7.respack",
"fileMd5": "73e1146365fbe02615a6d1f7829ddcf7",
"fileSize": 3567264256
}
Example of Failed Callback
{
"taskBusinessType": 1058,
"padCode": "AC22030010182",
"taskId": 12345,
"taskStatus": -1,
"packageName": "com.android.gpstest",
"appName": "GPSTest",
"version": "3.10.5",
"downloadUrl": null,
"fileMd5": null,
"fileSize": null
}
Compatibility Notes
If the old version of the Cloud Mobile (GS) has not been upgraded, the reported results may not include the fileMd5 / fileSize fields. In this case, if these two fields are null in the callback, downloadUrl can still be returned correctly.
Explanation of Power Orders
On the server side, distributed lock deduplication was performed for 10 minutes based on dimensions (customerId, taskId, taskStatus, taskBusinessType), and the same terminal state would not be pushed repeatedly within 10 minutes; If resend occurs after more than 10 minutes (very rare), please press the above key on the client and perform idempotent processing itself.
Retrying
The server performs a limited number of retries if the customer fails the callback (the specific policy follows the existing common callback retry rules). The client recommends returning HTTP 200 to indicate that the order has been received.
//: # (The instance backup instance status will be notified to the customer via this callback interface.) )
//: # (| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done)|)
//: # (The status of restoring backup data will be notified to the customer via this callback interface.) )
//: # (| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done)|)
Local Instance Migration Callback
Usage Scenarios
After the local instance migration task (taskBusinessType=1122 or 1123) is completed, the customer is notified via this callback interface. The callback includes both the source instance and the destination instance number, making it easier for customers to perceive the migration results.
taskBusinessType value explanation:
- 1122 (Queue Migration): Suitable for batch migration scenarios, where multiple migration tasks are executed sequentially in queue order. The callback carries the fields
index(current serial number) andtotal(total) to facilitate tracking the overall progress of batch migrations. - 1123 (Single Migration): Suitable for single-instance migration scenarios, executed immediately after committing.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1122 or 1123 | Task business types. 1122: Queue migration (batch scenarios, executed in queue order); 1123: Single migration (single instance migration) |
| taskId | Long | 12818 | Task ID |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| endTime | Long | 1741651200000 | Task execution end time (millisecond timestamp) |
| taskContent | String | Mission Details | |
| taskResult | String | Success | Description of the task results |
| sourcePadCode | String | ACP63463L11FZZ7P | Source instance number (Example A providing data) |
| targetPadCode | String | ACP63463L2ZX7NK5 | Target instance number (Instance B receiving data) |
Example Content
{
"taskBusinessType": 1123,
"taskId": 12818,
"taskStatus": 3,
"endTime": 1741651200000,
"taskContent": "",
"taskResult": "Success",
"sourcePadCode": "ACP63463L11FZZ7P",
"targetPadCode": "ACP63463L2ZX7NK5"
}
One-Click New Device Callback
Usage Scenarios
One-click notifications of new device status are sent to customers via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1124 | Task business types |
| padCode | String | 212254 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 1 | Task ID |
| taskContent | String | Mission Details | |
| endTime | Long | 1756021166163 | End time |
| taskResult | String | Success | Mission results |
Memory Instance Boot Callback
Usage Scenarios
The power on of the network storage instance is notified to the customer through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1201 | Task business types |
| padCode | String | ACN250427352B7WU | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001661 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": null,
"padCode": "ACN250427352B7WU",
"taskBusinessType": 1201,
"taskContent": "",
"taskId": 10001661,
"taskResult": "",
"taskStatus": 3
}
Network Storage Instance Shutdown Callback
Usage Scenarios
When a network storage instance shuts down, it is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1202 | Task business types |
| padCode | String | ACN250427352B7WU | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001662 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": null,
"padCode": "ACN250427352B7WU",
"taskBusinessType": 1202,
"taskContent": "",
"taskId": 10001662,
"taskResult": "",
"taskStatus": 3
}
Forced Shutdown Callback for Network Storage Instances
Usage Scenarios
Forced shutdown (shutdown and data deletion) in NetStorage 1.0 instances is notified to customers via this callback interface. Corresponding interfaces /openapi/open/pad/net/storage/forceOff.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1208 | Task business types |
| padCode | String | ACN250427352B7WU | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001662 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": null,
"padCode": "ACN250427352B7WU",
"taskBusinessType": 1208,
"taskContent": "",
"taskId": 10001662,
"taskResult": "",
"taskStatus": 3
}
Deleted Callback from Network Storage Instances
Usage Scenarios
When a network storage instance is deleted, it is notified to the customer through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1203 | Task business types |
| padCode | String | ACN250427352B7WU | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001662 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds; null means not yet finished) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": null,
"padCode": "ACN250427352B7WU",
"taskBusinessType": 1203,
"taskContent": "",
"taskId": 10001672,
"taskResult": "",
"taskStatus": 3
}
Network Storage Backup Callback
Usage Scenarios
The status of network storage backups is notified to customers via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1204 | Task business types |
| padCode | String | ACN250427352B7WU | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001664 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds; null means not yet finished) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": null,
"padCode": "ACN250427352B7WU",
"taskBusinessType": 1204,
"taskContent": "",
"taskId": 10001664,
"taskResult": "",
"taskStatus": 3
}
Deletes Callbacks in NetStorage
Usage Scenarios
Deleted network storage is notified to customers via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1205 | Task business types |
| padCode | String | ACN250427352B7WU | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001665 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds; null means not yet finished) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": null,
"padCode": "ACN250427352B7WU",
"taskBusinessType": 1205,
"taskContent": "",
"taskId": 10001665,
"taskResult": "",
"taskStatus": 3
}
File Upload Task Callback
Usage Scenarios
When the customer calls to upload a file, the status of the upload is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 2000 | Task business types |
| taskId | Integer | 1 | Task ID |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| originFileUrl | String | <www.xxx.com/xxx.apk> | Original file download link |
| fileUniqueId | String | test001 | File ID |
Network Storage 2.0 Boot Callback
Usage Scenarios
The power on of the network storage instance is notified to the customer through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1301 | Task business types |
| padCode | String | ACN317629292153649 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001085 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": null,
"padCode": "ACN317629292153649",
"taskBusinessType": 1301,
"taskContent": "",
"taskId": 10001085,
"taskResult": "Success",
"taskStatus": 3
}
NetStorage 2.0 Shutdown Callback
Usage Scenarios
When a network storage instance shuts down, it is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1302 | Task business types |
| padCode | String | ACN317629292153649 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001086 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": 1755141290862,
"padCode": "ACN317629292153649",
"taskBusinessType": 1302,
"taskContent": "",
"taskId": 10001086,
"taskResult": "Success",
"taskStatus": 3
}
NetStorage 2.0 Forced Shutdown Callback
Usage Scenarios
When a network storage instance forcibly shuts down (shuts down and deletes data), it is notified to the customer via this callback interface. Corresponding interfaces /openapi/open/pad/v2/net/storage/batch/forceOff.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1308 | Task business types |
| padCode | String | ACN317629292153649 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001086 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": 1755141290862,
"padCode": "ACN317629292153649",
"taskBusinessType": 1308,
"taskContent": "",
"taskId": 10001086,
"taskResult": "Success",
"taskStatus": 3
}
NetStorage 2.0 Instance Deletion Callback
Usage Scenarios
When a network storage instance is deleted, it is notified to the customer through this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1303 | Task business types |
| padCode | String | ACN317629292153649 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001087 | Task ID |
| taskContent | String | (Null string) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds; null means not yet finished) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": 1755141290862,
"padCode": "ACN317629292153649",
"taskBusinessType": 1303,
"taskContent": "",
"taskId": 10001087,
"taskResult": "",
"taskStatus": 3
}
NetStorage 2.0 Storage Backup Callback
Usage Scenarios
The status of network storage backups is notified to customers via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1304 | Task business types |
| padCode | String | ACN317629292153649 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001088 | Task ID |
| taskContent | String | json string, containing a newly cloned collection of instances (requires parsing) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds; null means not yet finished) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": 1755001588956,
"padCode": "ACN317629292153649",
"taskBusinessType": 1304,
"taskContent": "[\"ACN317629292153650\"]",
"taskId": 10001088,
"taskResult": "Success",
"taskStatus": 3
}
Subscription Event Callbacks
Usage Scenarios
After a customer subscribes to an event, when the event is triggered, the platform notifies the customer via this callback interface. ( Note: IMG-25111133267 mirror version has now taken effect )
| Field | Type | Example | Explanation |
|---|---|---|---|
| eventType | Integer | 50 | Subscription Event Type Valid Value: 50 Application Start (subscribe by package name) 51 Application Stop (subscribe by package name) 61 Application Start (subscribe by application Name) 62 Application Stop (subscribe by app name) |
| timestamp | Long | 1762221316 | Timestamp for pullback |
| eventDetail | Object | Details of the incident: The following content is JSON | |
| ├─padCode | String | ACN000000 | Case number |
| ├─packageName | String | COM.BAIDU | App package name |
| ├─appName | String | AA Poker | Application name, only the 61/62 event returns this field |
| ├─eventTime | Long | 1762221362 | Event timestamp |
Event Type Description
50/51 and 61/62 correspond to the same underlying application start/stop event. The difference lies in the subscription configuration matching dimension. Which event code you receive depends on the matching method at the time of subscription:
| Event code | Meaning | Subscribe to matching dimensions | eventDetail field |
|---|---|---|---|
| 50 | App launch | Match the subscription list by packageName | padCode、packageName、eventTime |
| 51 | The app stopped | Match the subscription list by packageName | padCode、packageName、eventTime |
| 61 | App launch | Match subscription lists by appName | padCode、packageName、appName、eventTime |
| 62 | The app stopped | Match subscription lists by appName | padCode、packageName、appName、eventTime |
eventDetail at 61/62 returns one more appName field than at 50/51.
Sample Content (50/51, subscribe by package name)
{
"eventType": 50,
"timestamp": "1762221316",
"eventDetail": {
"padCode": "ACN000000",
"packageName": "COM.BAIDU",
"eventTime": "1762221362"
}
}
Example Content (61/62, subscribe by app name)
{
"eventType": 61,
"timestamp": 1783694538138,
"eventDetail": {
"padCode": "ATP25091952UH7FY",
"packageName": "com.ty.aapk",
"appName": "AA Poker",
"eventTime": 1783694538137
}
}
Unattended live streaming task callback
Usage Scenarios When the cloud phone performs unmanned live streaming tasks, the task completion (success/failure/cancellation/timeout, etc.) is notified to the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1052 | Task business types |
| padCode | String | ACN3176292921xxxxxxx | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 10001088 | Task ID |
| taskContent | String | json string, containing a newly cloned collection of instances (requires parsing) | Mission Details |
| endTime | Long | null | End time (timestamp, unit: milliseconds; null means not yet finished) |
| taskResult | String | (Null string) | Mission results |
Example Content
{
"endTime": 1755001588956,
"padCode": "ACN3176292921xxxxxxx",
"taskBusinessType": 1052,
"taskContent": "[\"ACN3176292921xxxxxxx\"]",
"taskId": 10001088,
"taskResult": "Success",
"taskStatus": 3
}
Local Instance Calculation Backup Size Callback
Usage Scenarios
After the local instance calculates the backup size task (taskBusinessType=1403) and completes execution, it notifies the customer via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1403 | Task business types |
| padCode | String | ACP250919HTTMIBQ | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Integer | 59 | Task ID |
| endTime | Long | 1758271736814 | End time (timestamp, unit: milliseconds) |
| taskResult | Object | Task results, including backup size information | |
| ├─ dataImgSize | Long | 1073741824 | Data image size (bytes) |
| ├─ debugSize | Long | 10485760 | debug Partition size (bytes) |
| ├─ totalSize | Long | 1084227584 | Total size (bytes) |
Example Content
{
"taskBusinessType": 1403,
"padCode": "ACP250919HTTMIBQ",
"taskStatus": 3,
"taskId": 59,
"endTime": 1758271736814,
"taskResult": {
"dataImgSize": 1073741824,
"debugSize": 10485760,
"totalSize": 1084227584
}
}
Stop Pushing Traffic Pullback
Usage Scenarios
After stopping the push task (taskBusinessType=1044) is completed, the customer will be notified via this callback interface.
| Field | Type | Example | Explanation |
|---|---|---|---|
| taskBusinessType | Integer | 1044 | Task business types |
| padCode | String | AC11010000031 | Case number |
| taskStatus | Integer | 3 | Mission Status (-1: All failures; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| taskId | Long | 10001088 | Task ID |
| taskContent | String | Mission Details | |
| endTime | Long | 1758271736814 | End time (timestamp, unit: milliseconds) |
Example Content
{
"taskBusinessType": 1044,
"padCode": "AC11010000031",
"taskStatus": 3,
"taskId": 10001088,
"taskContent": "",
"endTime": 1758271736814
}
File Management
Upload Files to Cloud Drive
Perform file upload operations and upload them to the cloud drive
Interface Address query instance status
/file-center/open/file/cache
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| fileUrl | http://xxx.armcloud.apk | String | is | File download link |
| fileName | Deep in the Peach Blossom Spring, Official Version of 'Someone Family' Game .apk | String | is | File name |
| fileMd5 | 32e1f345f209a7dc1cc704913ea436d3 | String | is | File expected md5, used to download files with a maximum length of 32 |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─fileUniqueId | 6865b417b7257d782afd5ac8bee4d311 | String | Unique file identification |
Request Example
{
"fileUrl": "http://down.s.qq.com/download/11120898722/apk/10043132_com.tencent.fiftyone.yc.apk",
"fileName": "Deep within the Peach Blossom Spring, there is an official version of the 'Someone's Home' game .apk",
"fileMd5": "c52585e13a67e13128d9963b2f20f69678a86ee8b5551ca593327d329719a5"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1713773577581,
"data": {
"taskId":1,
"fileUniqueId": "6865b417b7257d782afd5ac8bee4d311"
}
}
Deleting Example Files
Instance file deleted
Interface Address
/file-center/open/file/batch/del
Request Method
POST (supports batch deletion, up to 200 items can be deleted at once)
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| fileUniqueIds | cfc280111c435823c5409ddb9a4186420d | String[] | is | unique_id→ file ID identification |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | true | Boolean |
Request Example
{
"fileUniqueIds": [
"cfc280111c435823c5409ddb9a4186420d",
"cf77f930acbbe1707fffc661f2c4380a71"
]
}
Response Example (All Successful)
{
"code": 200,
"msg": "success",
"ts": 1734677342300,
"data": true
}
Response Example (Partial Success)
{
"code": 200,
"msg": "success",
"ts": 1734935677246,
"data": [
"cfc280111c435823c5409ddb9a4186420d"
]
}
File Upload Example V3 Version
Push files from the File Management Center to one or more cloud phone instances (asynchronous tasks)
Interface Address
/openapi/open/pad/v3/uploadFile
- If the corresponding file can be found using the md5 value or file ID, it will be sent directly to the instance via the OSS path
- If OSS does not have a corresponding file, it will directly send the URL to the instance for download, and upload the URL content to OSS
- If you choose to install an application, it checks whether the package name has a value; if not, an exception is thrown. (By default, installing an app grants all permissions; you can choose not to authorize them using the isAuthorization field.) Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22030023061 | String | is | Case number |
| autoInstall | 1 | Integer | No | Whether automatic installation is required: 1 Yes, 0 No. If not filled in, default is not required. Only applies to apk-type files |
| fileUniqueId | 1e5d3bf00576ee8f3d094908c0456722 | String | No | File ID is uniquely identified. |
| customizeFilePath | /Documents/ | String | No | Custom path. Supported file paths include the following directories: /DCIM/, /Documents/, /Download/, /Movies/, /Music/, /Pictures/. |
| fileName | threads | String | No | File name |
| packageName | com.zhiliaoapp.musically | String | No | Package name |
| url | https://oss.domain.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.apk | String | No | File installation path |
| md5 | d41d8cd98f00b204e980xxxxxxxxxxx | String | No | File MD5 value (used to verify file integrity, can be used to find uploaded files via MD5) |
| isAuthorization | false | Boolean | No | Authorization (default is full authorization) |
| iconPath | https://oss.domain.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.png | string | No | Icon display during installation |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─padCode | AC22010020062 | String | Case number |
| ├─taskId | 1 | Integer | Task ID |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes":["AC32010250022"],
"customizeFilePath":"/DCIM/",
"md5":"d97fb05b3a07d8werw2341f10212sdfs3sdfs24",
"url":"https://oss.domain.com/appMarket/2/apk/fe1f75df23e6fe3fd3b31c0f7f60c0af.apk ",
"autoInstall":1,
"packageName":"com.zhiliaoapp.musically",
"fileName":"market",
"isAuthorization":false
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1737431505379,
"data": [
{
"taskId": 13469,
"padCode": "AC32010250022",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 140006 | The file storage path is incorrect | Custom paths must start with / |
| 140005 | Files are unavailable | The file path is empty |
| 110006 | Download failed File paths cannot be downloaded |
File Uploaded to Example
Push files from the File Management Center to one or more cloud phone instances (asynchronous tasks)
Interface Address
/openapi/open/pad/v2/uploadFile
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22030023061 | String | is | Case number |
| autoInstall | 0 | Integer | No | Whether automatic installation is required: 1 Yes, 0 No. Only applies to apk-type files. If not needed, please do not fill in or fill in 0 |
| fileUniqueId | 1e5d3bf00576ee8f3d094908c0456722 | String | is | File ID is uniquely identified. |
| customizeFilePath | /Documents/ | String | No | Custom path. Supported file paths include the following directories: /DCIM/, /Documents/, /Download/, /Movies/, /Music/, /Pictures/. |
| isAuthorization | false | Boolean | No | Authorization of the app (default permission) |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─padCode | AC22010020062 | String | Case number |
| ├─taskId | 1 | Integer | Task ID |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC22030023061"
],
"isAuthorization":false,
"autoInstall": 0,
"fileUniqueId": "1e5d3bf00576ee8f3d094908c0456722",
"customizeFilePath": "/Documents/"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717571059834,
"data": [
{
"taskId": 39,
"padCode": "AC22030010001",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
},
"traceId": "ewab8qjqbaio"
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 140006 | The file storage path is incorrect | Custom paths must start with / |
| 140005 | Files are unavailable | The file path is empty |
| 110006 | Download failed File paths cannot be downloaded |
File List
Query the list of uploaded files
Interface Address
/file-center/open/file/list
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | is | Start page, default 1 |
| rows | 10 | Integer | is | Query quantity, default 10 |
| fileName | "33" | String | No | Search by file name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object | ||
| ├─page | 1 | Integer | Current page |
| ├─rows | 10 | Integer | The number per page |
| ├─size | 2 | Integer | Current page count |
| ├─total | 2 | Integer | Total recorded count |
| ├─totalPage | 1 | Integer | Total pages |
| ├─pageData | object[] | List | |
| ├─├─fileUniqueId | c417cdf30cd13437a60a494f2fcee616 | String | File ID identification |
| ├─├─fileName | 15b18072b01049dfa30da046aaf5b213.apk | String | File name |
| ├─├─fileMd5 | 49f526ec07f261ef6c22081fd61fb6b2836b84214ab6f4620e89d2f2d454253 | String | File content value |
| ├─├─fileSize | 165936779 | Integer | File size (unit: bytes) |
| ├─├─originUrl | https://xxx.armcloud.apk | String | Original file address |
| ├─├─createTime | 1713884498000 | Long | Creation date |
| ├─├─Id | 134 | Long | File id |
Request Example
{
"page": 1,
"rows": 10,
"fileName":"33"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1750616581943,
"data": {
"page": 1,
"rows": 10,
"size": 10,
"total": 466,
"totalPage": 47,
"pageData": [
{
"fileName": "xx-xx-xxx.apk",
"fileSize": 12957234,
"fileUniqueId": "f3b9afb69c8e4953b171950766ebbb9a",
"originUrl": null,
"createdTime": 1750162347000,
"id": 487451,
"fileMd5": "9fe3cfc677baaff554eb4c2506234d0f"
}
// ... More file objects
]
},
"traceId": "epr0w079xc00"
}
File Task Details
Query detailed execution results for specified file tasks.
Interface Address
/task-center/open/task/fileTaskDetail
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| taskIds | Integer[] | is | ||
| ├─taskId | 1 | Integer | Yes, the task ID |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | Task list details | |
| ├─ taskId | 1 | Integer | Subtask ID |
| ├─ appId | 134 | Long | App ID |
| ├─ fileUniqueId | e2c07491309858c5cade4bfc44c03724 | String | Unique file identification |
| ├─ fileName | xx.apk | String | File name |
| ├─ taskStatus | 2 | Integer | Mission Status (-1: All failures; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| ├─ endTime | 1713429401000 | Long | Subtask end timestamp |
Request Example
{
"taskIds":[
1,2
]
}
Response Examples
{
"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
}
]
}
Application Management
App Upload
Upload the application installation file to the application management center of the specified business (asynchronous task).
Interface Address
/file-center/open/app/cache
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| parse | true | Boolean | is | Whether to cache and parse (parse and cache) If parsed, no package information is required |
| apps | Object[] | is | Application list | |
| ├─ appId | 1243 | Integer | No | Custom application ID |
| ├─ url | https://xxx.armcloud.apk | String | is | Source file download link |
| ├─ appName | kuaishou | String | No | App name |
| ├─ pkgName | com.smile.gifmaker | String | No | Package name |
| ├─ signMd5 | 0F938C4F0995A83C9BF31F0C64322589 | String | No | Application signature MD5 |
| ├─ versionNo | 36000 | Integer | No | Version number |
| ├─ versionName | 12.3.20.36000 | String | No | Version name |
| ├─ description | kuai | String | No | Description |
| ├─ md5sum | e673a204b8f18a0f6482da9998 | String | No | Apply unique identifiers |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─ taskId | 12 | Integer | Task ID |
| ├─ appId | 1243 | Integer | Application ID |
| ├─ url | https://xxx.armcloud.apk | String | is |
| Request Example |
{
"parse": true,
"apps": [
{
"appId": 1243,
"appName": "kuaishou",
"url": "https://xxx.armcloud.apk",
"pkgName": "com.smile.gifmaker",
"signMd5": "0F938C4F0995A83C9BF31F0C64322589",
"versionNo": 36000,
"versionName": "12.3.20.36000",
"description": "kuai",
"md5sum": "e673a204b8f18a0f6482da9998"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1755603598157,
"data": [
{
"appId": 996875143,
"url": "https://xxx.abc.com/app/b66bbdb93f404cfdac955bc35ace809a.apk",
"taskId": 197136930
}
],
"traceId": "evgzda3b7f9c"
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 100001 | No access permission | Whether you haven't ordered a data center |
Application List
You can query the list of application information based on the application ID.
Interface Address
/file-center/open/app/list
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | is | Start page, default 1 |
| rows | 10 | Integer | is | Query quantity, default 10 |
| appIds | 1,2 | Integer[] | No | App ID |
| packageName | com.ss.android.ugc.aweme | String | No | App package name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| packageName | com.ss.android.ugc.aweme | String | Package name |
| traceId | ewc84g8si0oy | String | Link trace ID |
| pageData | Object | ||
| ├─page | 1 | Integer | Current page |
| ├─rows | 10 | Integer | Numbers are displayed per page |
| ├─size | 10 | Integer | Current page count |
| ├─total | 2 | Integer | Total quantity |
| ├─totalPage | 1 | Integer | Total pages |
| ├─pageData | Object[] | ||
| ├─├─originUrl | downloadUrl_tr0bi | String | Original file download link |
| ├─├─appId | dwadawdf | Integer | Custom application ID |
| ├─├─description | description_1cq3m | String | Description |
| ├─├─packageName | packageName_e6lw8 | String | Package name |
| ├─├─appName | appName_o4mhn | String | App name |
| ├─├─versionName | versionName_s4o2i | String | Version name |
| ├─├─versionNo | 1 | Integer | Version number |
| ├─├─signMd5 | 0F938C4F0995A83C9BF31F0C64322589 | String | MD5 |
| ├─├─available | true | Boolean | Is the current file available? |
| ├─├─createTime | 1709895492000 | Integer | Creation date |
| ├─├─fileId | File id | Integer | File ID |
| ├─├─iconPath | http://192.168.230.80:18100/icon/110_6ca4d3e6e5111ec38e8eca6c1998ce89..png | String | App icon |
| ├─├─newAppClassifyList | Application Classification | Object[] | Application classification |
| ├─├─├─classifyName | test | String | Application classification name |
| ├─├─├─classifyId | 1 | Long | Application category ID |
| ├─├─├─description | This app is of very high quality | String | Application Description Remarks |
| ├─├─├─sortNum | 1 | Integer | Sort - Input Box - Only integer input is supported, with a maximum limit of 10,000. The list is sorted by value from smallest to largest |
Request Example
{
"rows": 10,
"page": 1,
"appIds": [
1,2
],
"packageName":"com.ss.android.ugc.aweme"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"traceId": "ewab8qjqbaio",
"data": {
"page": 1,
"rows": 10,
"size": 10,
"total": 30,
"totalPage": 3,
"pageData": [
{
"originUrl": "downloadUrl_tr0bi",
"appId": 1,
"description": "description_1cq3m",
"packageName": "packageName_e6lw8",
"appName": "appName_o4mhn",
"versionName": "versionName_s4o2i",
"versionNo": 1,
"signMd5": "0F938C4F0995A83C9BF31F0C64322589",
"available": true,
"createTime": 1709895492000,
"iconPath": "http://192.168.230.80:18100/icon/110_6ca4d3e6e5111ec38e8eca6c1998ce89..png",
"fileId": 1,
"newAppClassifyList": [
{
"classifyName": "f1",
"classifyId": 3
}
]
}
// ... More applications
]
}
}
App Details
Check the application installation status on the specified instance
Interface Address
/file-center/open/app/detail
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| appId | 1 | Integer | is | App ID |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756076880250 | Long | Timestamp |
| traceId | ew0j0vipc3y8 | String | Link Tracing ID |
| data | Object | App details | |
| ├─appId | 1178436326 | Long | APP ID |
| ├─originalUrl | https://file.vsphone.com/appMarket/null/apk/2d12187c91cf0f2024b3015777175.apk | String | Original file download link |
| ├─description | null | String | Document notes/application description |
| ├─packageName | com.truedevelopersstudio.automatictap.autoclicker | String | Android package name |
| ├─appName | Auto Clicker | String | App name |
| ├─versionName | 2.1.4 | String | Version name |
| ├─versionNo | 81 | Integer | Version number |
| ├─signMd5 | f282d5b8aa801ab13517ad1fe9dbc2b1 | String | Signature MD5 |
| ├─createTime | 1751009986000 | Long | File creation time |
| ├─minSdkVersion | 24 | Integer | Minimum SDK version |
| ├─targetSdkVersion | 31 | Integer | Target SDK version |
Request Example
{
"appId":1
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756076880250,
"data": {
"minSdkVersion": 24,
"createTime": 1751009986000,
"appName": "Auto Clicker",
"appId": 1178436326,
"versionNo": 81,
"description": null,
"signMd5": "f282d5b8aa801ab13517ad1fe9dbc2b1",
"originalUrl": "https://file.vsphone.com/appMarket/null/apk/2d12187c91cf0f2024b3015777175.apk",
"packageName": "com.truedevelopersstudio.automatictap.autoclicker",
"targetSdkVersion": 31,
"versionName": "2.1.4"
},
"traceId": "ew0j0vipc3y8"
}
Query Example Application List
Query the list of uploaded files
Interface Address
/openapi/open/pad/listApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | No | ||
| ├─ | AC22010020062 | String | is | Case number |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22010020062 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC22010020062"
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1756077327794,
"data": [
{
"taskId": 13462859,
"padCode": "ACN250823P61EWV1",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ew0jotsvw83k"
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 100010 | Processing failure Please reinstall |
App Installation
Allows single or multiple instances to install one or more apps simultaneously. This interface is operated asynchronously. Added blacklist and whitelist logic.
Interface Address
/openapi/open/pad/installApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| apps | Object[] | is | Application list | |
| ├─appId | 124 | Integer | is | Application ID |
| ├─appName | Hulu Hero | String | No | App name |
| ├─pkgName | com.huluxia.gametools | String | No | App package name |
| ├─isGrantAllPerm | false | Boolean | No | Whether to grant full permission Default is true |
| ├─padCodes | String[] | is | ||
| ├─├─ | AC22010020062 | String | is | Case number |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| traceId | ewc84g8si0oy | String | Link trace ID |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22010020062 | String | Instance number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"apps":[
{
"appId":124,
"appName":"Hulu Hero",
"pkgName":"com.huluxia.gametools",
"isGrantAllPerm":false,
"padCodes":["AC22010020062"]
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570991004,
"data": [
{
"taskId": 37,
"padCode": "AC22030010001",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
},
{
"taskId": 38,
"padCode": "AC22030010002",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
}
],
"traceId": "ewab8qjqbaio"
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 140005 | File not available | Check if the file exists |
App Uninstaller
Uninstall one or more apps simultaneously on a single or multiple instances. This interface is operated asynchronously.
Interface Address
/openapi/open/pad/uninstallApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| apps | Object[] | is | Application list | |
| ├─appId | 124 | Integer | No | Application ID |
| ├─appName | Hulu Hero | String | No | App name |
| ├─pkgName | com.huluxia.gametools | String | is | App package name |
| ├─padCodes | String[] | is | ||
| ├─├─ | AC22010020062 | String | is | Case number |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─taskId | 2 | Integer | Task ID |
| ├─padCode | AC22010020062 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"apps":[
{
"appId":124,
"appName":"demo",
"pkgName":"com.demo",
"padCodes":["AC22010020062"]
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1717570615524,
"traceId": "ewab8qjqbaio",
"data": [
{
"taskId": 22,
"padCode": "AC22030010001",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
},
{
"taskId": 23,
"padCode": "AC22030010002",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110007 | Uninstalling the app failed Please retake the test later |
App Launch
Perform application startup operations based on the instance number and application package name.
Interface Address
/openapi/open/pad/startApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | Yes | ||
| ├─ | AC22010020062 | String | Yes | Case number |
| pkgName | xxx.test.com | String | Yes | Package name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| traceId | ewc84g8si0oy | String | Link trace ID |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22020020793 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC22030022693"
],
"pkgName": xxx.test.com
}
Response Examples
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1717570663080,
"data": [
{
"taskId": 24,
"padCode": "AC22030010001",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
},
{
"taskId": 25,
"padCode": "AC22030010002",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110008 | Application startup failed | After restarting the cloud phone, start the application again |
App Stopped
Perform application stop operations on instances based on instance numbers and application package names.
Interface Address
/openapi/open/pad/stopApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22010020062 | String | is | Case number |
| pkgName | xxx.test.com | String | is | Package name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewc84g8si0oy | String | Link trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22010020062 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC22010020062"
],
"pkgName": xxx.test.com
}
Response Examples
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1717570700415,
"data": [
{
"taskId": 26,
"padCode": "AC22030010001",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
},
{
"taskId": 27,
"padCode": "AC22030010002",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110010 | Stop application failure | Restart the cloud phone and close the application |
App Restart
Perform application restart operations on instances based on instance numbers and application package names.
Interface Address
/openapi/open/pad/restartApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | String[] | is | ||
| ├─ | AC22010020062 | String | is | Case number |
| pkgName | xxx.test.com | String | is | Package name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewc84g8si0oy | String | Link trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22010020062 | String | Case number |
| ├─vmStatus | 1 | Integer | Instance online status (0: offline; 1: Online) |
| ├─taskStatus | 1 | Integer | Task Status (-1: The task already exists, please do not submit multiple times; 1: Task added) |
| ├─dispatchCode | 0 | Integer | The task sends a status code: 200 indicates the instance was successfully sent, while 200 is the failure reason code (used for internationalization, distinct from interface layer codes). The values are shown at the end of the article in the PadTaskFailCode encoding table |
Request Example
{
"padCodes": [
"AC22030022693"
],
"pkgName": xxx.test.com
}
Response Examples
{
"code": 200,
"msg": "success",
"traceId": "ewab8qjqbaio",
"ts": 1717570855874,
"data": [
{
"taskId": 33,
"padCode": "AC22030010001",
"vmStatus": 1,
"taskStatus": 1,
"dispatchCode": 200
},
{
"taskId": 34,
"padCode": "AC22030010002",
"vmStatus": 0,
"taskStatus": 1,
"dispatchCode": 200
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110009 | Failed to restart the application | After restarting the cloud phone, start the application again |
List of Black and White Lists
Paginated query of blacklist and whitelist lists
Interface Address
/openapi/open/appClassify/pageList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| classifyName | test | String | No | Blacklist and White List Names (Fuzzy Lookup) |
| classifyType | 1 | Integer | No | Blacklist types: 1. Whitelist 2. Blacklist |
| page | 1 | Integer | No | Page number Default is 1 |
| rows | 10 | Integer | No | Number of pages per page: default 10, maximum value 100 |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─id | 8 | Integer | Blacklist and whitelist IDs |
| ├─classifyName | Whitelist Group A 1 | String | Blacklist names |
| ├─classifyType | 1 | Integer | Blacklist types: 1. Whitelist 2. Blacklist |
| ├─appNum | 3 | Integer | Number of associated apps |
| ├─remark | Whitelist Group A Test 1 | String | Description |
| ├─applyAllInstances | false | Boolean | Whether all instance patterns are applied |
Request Example
{
"classifyName": "",
"classifyType": 1,
"page": 1,
"rows": 10
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735019791977,
"data": [
{
"id": 8,
"classifyName": "Whitelist Group A 1",
"classifyType": 1,
"appNum": 3,
"remark": "Whitelist Group A Test 1",
"applyAllInstances": false
}
]
}
Save to Black and Whitelist
Save the blacklist and associated apps. If the parameter id is not null, it means the update is done. This operation will overwrite all associated apps under that category
Interface Address
/openapi/open/appClassify/save
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | No | Blacklist and whitelist IDs (if not empty, modify; if empty, add new) |
| classifyName | Whitelist Group A | String | is | Blacklist names |
| classifyType | 1 | Integer | is | Blacklist types: 1. Whitelist 2. Blacklist |
| applyAllInstances | false | Boolean | No | Whether to apply all instances Default false |
| remark | 10 | String | No | Blacklist description |
| appInfos | Object[] | No | Associated application collections: range from 0 to 500 | |
| ├─fileId | 1 | Integer | No | File ID |
| ├─appId | 1 | Integer | No | App ID |
| ├─appName | Test app | String | No | App name |
| ├─packageName | com.xxx.xxx | String | is | Package name |
| ├─appVersionNo | 123 | Integer | No | Version number |
| ├─appVersionName | 1.2.3 | String | No | Version name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | 1 | Long | Blacklist and whitelist IDs |
Request Example
{
"id": null,
"classifyName": "Whitelist Group A 1",
"classifyType": 1,
"applyAllInstances": false,
"remark": "Whitelist Group A Test 1",
"appInfos": [
{
"fileId": 1,
"appId": 1,
"appName": "Test the app",
"packageName": "com.xxx.xxx",
"appVersionNo": 123,
"appVersionName": "1.2.3"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735019933306,
"data": 1
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110080 | The blacklist and whitelist do not exist | There is no blacklist or whitelist |
| 110085 | Duplicate blacklist names | The blacklist names are duplicated |
Details of the Black and White List
Query details of the blacklist and whitelist and related apps
Interface Address
/openapi/open/appClassify/detail
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 1 | Integer | is | Blacklist and whitelist IDs |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─id | 8 | Integer | Blacklist and whitelist IDs |
| ├─classifyName | Whitelist Group A 1 | String | Blacklist names |
| ├─classifyType | 1 | Integer | Blacklist types: 1. Whitelist 2. Blacklist |
| ├─applyAllInstances | false | Boolean | Whether all instance patterns are applied |
| ├─appNum | 3 | Integer | Number of associated apps |
| ├─remark | Whitelist Group A Test 1 | String | Description |
| ├─appInfos | Object[] | Associate the application collection | |
| ├─├─fileId | 1 | Integer | File ID |
| ├─├─appId | 1 | Integer | App ID |
| ├─├─appName | Test app | String | App name |
| ├─├─packageName | com.xxx.xxx | String | Package name |
| ├─├─appVersionNo | 123 | Integer | Version number |
| ├─├─appVersionName | 1.2.3 | String | Version name |
Request Example
{"id":153858}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735020014142,
"data": {
"id": 8,
"classifyName": "Whitelist Group A 1",
"classifyType": 1,
"applyAllInstances": false,
"appNum": 3,
"remark": "Whitelist Group A Test 1",
"appInfos": [
{
"fileId": 1,
"appId": 1,
"appName": "Test the app",
"packageName": "com.xxx.xxx",
"appVersionNo": 123,
"appVersionName": "1.2.3"
}
]
}
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110080 | The blacklist and whitelist do not exist | There is no blacklist or whitelist |
Saving Blacklist and Whitelist Instances
Save the associated instance; this operation will delete all original associated instances under that category
Interface Address
/openapi/open/appClassify/padSave
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | is | Blacklist and whitelist IDs (obtained from the pageList interface) |
| appPadInfos | Object[] | No | Associated example sets: range from 0 to 500 | |
| ├─padCode | AC32010230001 | String | is | Case number |
| ├─deviceLevel | m2-4 | String | No | Specifications |
| ├─padIp | 10.255.3.1 | String | No | Example IP |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"id": 1,
"appPadInfos": [
{
"padCode": "AC32010230001",
"deviceLevel": "m2-4",
"padIp": "10.255.3.1"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735019933306,
"data": null
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110080 | The blacklist and whitelist do not exist | There is no blacklist or whitelist |
Details of Blacklist and Whitelist Example Associations
Query details of the blacklist and whitelist and related instances
Interface Address
/openapi/open/appClassify/padDetail
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 1 | Integer | is | Blacklist and whitelist IDs |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| traceId | ewc84g8si0oy | String | Link trace ID |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─id | 8 | Integer | Blacklist and whitelist IDs |
| ├─classifyName | Whitelist Group A 1 | String | Blacklist names |
| ├─classifyType | 1 | Integer | Blacklist types: 1. Whitelist 2. Blacklist |
| ├─appNum | 3 | Integer | Number of associated apps |
| ├─applyAllInstances | false | Boolean | is |
| ├─appPadInfos | Object[] | Associate the instance set | |
| ├─├─padCode | AC111 | String | Case number |
| ├─├─deviceLevel | m2-3 | String | Specifications |
| ├─├─padIp | 127.0.0.1 | String | Example IP |
Request Example
{"id":153858}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735020251631,
"data": {
"id": 8,
"classifyName": "Whitelist Group A 1",
"classifyType": 1,
"appNum": 3,
"applyAllInstances": false,
"appPadInfos": [
{
"padCode": "AC111",
"deviceLevel": "m2-3",
"padIp": "127.0.0.1"
}
]
},
"traceId": "ewab8qjqbaio"
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110080 | The blacklist and whitelist do not exist | There is no blacklist or whitelist |
Delete Blacklist and Whitelist
Delete the blacklist and whitelist and remove all associated applications and instances
Interface Address
/openapi/open/appClassify/del
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 1 | Integer | is | Blacklist and whitelist IDs |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{"id":153858}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735020371601,
"data": null
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110084 | The blacklist does not exist or has been deleted | The blacklist does not exist or has been deleted |
Add Blacklist and Whitelist App
Add an associated application. This operation will not overwrite all related apps under that category and will be directly added to the category
Interface Address
/openapi/open/appClassify/addApp
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | is | Blacklist and whitelist IDs (obtained from the pageList interface) |
| appInfos | Object[] | is | Associated application collections: range from 1 to 500 | |
| ├─fileId | 1 | Integer | No | File ID |
| ├─appId | 1 | Integer | No | App ID |
| ├─appName | Test app | String | No | App name |
| ├─packageName | com.xxx.xxx | String | is | Package name |
| ├─appVersionNo | 123 | Integer | No | Version number |
| ├─appVersionName | 1.2.3 | String | No | Version name |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"id": 1,
"appInfos": [
{
"fileId": 1,
"appId": 1,
"appName": "Test the app",
"packageName": "com.xxx.xxx",
"appVersionNo": 123,
"appVersionName": "1.2.3"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735019933306,
"data": null
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110080 | The blacklist and whitelist do not exist | There is no blacklist or whitelist |
Adding Blacklist and Whitelist Instance Associations
Add an associated instance. This operation does not overwrite all associated instances under that category and will be directly added to the category
Interface Address
/openapi/open/appClassify/addPad
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | is | Blacklist and whitelist IDs (obtained from the pageList interface) |
| appPadInfos | Object[] | is | Associated instance set: range: 1-500 items | |
| ├─padCode | AC32010230001 | String | is | Case number |
| ├─deviceLevel | m2-4 | String | No | Specifications |
| ├─padIp | 10.255.3.1 | String | No | Example IP |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"id": 1,
"appPadInfos": [
{
"padCode": "AC32010230001",
"deviceLevel": "m2-4",
"padIp": "10.255.3.1"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735019933306,
"data": null
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110080 | The blacklist and whitelist do not exist | There is no blacklist or whitelist |
Example of Deleting Blacklist Associations
Delete instances associated with the blacklist or whitelist, i.e., specify instances to unbind the black/whitelist
Interface Address
/openapi/open/appClassify/delPad
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| id | 123 | Long | is | Blacklist and whitelist IDs (obtained from the pageList interface) |
| padCodes | String[] | is | Collection of associated instances: range: 1-200 |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | null |
Request Example
{
"id": 100,
"padCodes": ["AC32010250003"]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735019933306,
"data": null
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110080 | The blacklist and whitelist do not exist | There is no blacklist or whitelist |
Query Associated Black/White List by Instance
Query the list of blacklist policy groups associated with the instance by instance
Interface Address
/openapi/open/appClassify/padClassifyList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| padCodes | ["AC32010230001","AC32010230002"] | String[] | is | Example number collection, quantity range from 0 to 100 |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | The instance is associated with a list of blacklists and whitelists | |
| ├─padCode | AC32010230001 | String | Case number |
| ├─classifyCount | 2 | Integer | Number of associated strategy groups |
| ├─classifyList | Object[] | Detailed information of the affiliated strategy group | |
| ├─├─id | 8 | Long | Policy group ID |
| ├─├─classifyName | Whitelist Group A 1 | String | Strategy group name |
| ├─├─classifyType | 1 | Integer | Strategy group types: 1. Whitelist 2. Blacklist |
| ├─├─appNum | 3 | Integer | Number of associated apps |
| ├─├─padNum | 5 | Integer | Number of associated instances |
| ├─├─remark | Whitelist Group A Test 1 | String | Description |
| ├─├─applyAllInstances | false | Boolean | Whether to apply all instances |
Request Example
{
"padCodes": [
"AC32010230001",
"AC32010230002"
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735883927104,
"data": [
{
"padCode": "AC32010230001",
"classifyCount": 2,
"classifyList": [
{
"id": 8,
"classifyName": "Whitelist Group A 1",
"classifyType": 1,
"appNum": 3,
"padNum": 5,
"remark": "Whitelist Group A Test 1",
"applyAllInstances": false
},
{
"id": 9,
"classifyName": "Blacklist Group B 1",
"classifyType": 2,
"appNum": 6,
"padNum": 5,
"remark": "Blacklist Group B Test 1",
"applyAllInstances": true
}
]
},
{
"padCode": "AC32010230002",
"classifyCount": 1,
"classifyList": [
{
"id": 8,
"classifyName": "Whitelist Group A 1",
"classifyType": 1,
"appNum": 3,
"padNum": 5,
"remark": "Whitelist Group A Test 1",
"applyAllInstances": false
}
]
}
]
}
Error Codes
| Error code | Error Explanation | Operation Suggestions |
|---|---|---|
| 110028 | The instance does not exist | Check whether the instance number is correct |
| 110042 | There exists instances that do not belong to the current user | Retry after confirming the instance's attribution |
Application Category List
Paginated query application categories
Interface Address
/openapi/open/newAppClassify/pageList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| enable | true | Boolean | No | Whether to enable it |
| page | 1 | Integer | No | Page number Default is 1 |
| rows | 10 | Integer | No | Number of pages per page: default 10, maximum 100 |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─id | 3 | Integer | Application category ID |
| ├─classifyName | f1 | String | Application classification name |
| ├─appNum | 4 | Integer | Number of applications |
| ├─enable | true | Boolean | Whether to enable it |
| ├─remark | test | String | Description |
| ├─createBy | admin | String | Founder |
| ├─createTime | 2024-12-27 17:16:20 | String | Creation date |
Request Example
{
"enable":true,
"page":1,
"rows":10
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1735883927104,
"data": [
{
"id": 3,
"classifyName": "f1",
"appNum": 4,
"enable": true,
"remark": "Hello",
"createBy": "admin",
"createTime": "2024-12-27 17:16:20"
}
]
}
Application Start/Stop Execution Results
Obtain the application start-stop result of the instance by applying the start-stop task ID
Interface Address
/task-center/open/task/appOperateInfo
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| taskIds | Integer [] | is | ||
| ├─ | 1 | Integer | is | Task ID |
Response Parameters
| Parameter name | Example value | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1756021167163 | Long | Timestamp |
| data | Object[] | ||
| ├─taskId | 1 | Integer | Task ID |
| ├─padCode | AC22020020793 | String | Case number |
| ├─taskStatus | 3 | Integer | Mission Status (-1: All failures; -2: Partial failure; -3: Cancel; -4: Timeout; 1: Pending execution; 2: In Execution; 3: Done) |
| ├─endTime | 1756021166163 | Long | Task execution end time |
| ├─taskContent | Success | String | Mission Details |
| ├─taskResult | Success | String | Mission results |
| ├─errorMsg | The instance does not exist | String | Reasons for failure |
Request Example
{
"taskIds": [1]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts":1713773577581,
"data":[
{
"taskId": 1,
"taskStatus": 3,
"padCode": "AC22020020793",
"taskContent": "Success",
"taskResult": "Success",
"endTime": 1756121167163,
"errorMsg": null
}
]
}
Mirror Management
Get the Image List
Get a list of available images.
Interface Address
/openapi/open/image/queryImageList
Request Method
POST
Request Data Types
application/json
Request Query Parameters
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| imageType | 1 | Integer | No | Image types: 1: Public image, 2: Custom image |
| releaseType | 1 | Integer | No | Mirror 1 Beta 2 Official Version |
| playServices | 26.04.38 (190400-867839860) | String | No | Google Play Services version |
| playStore | 50.0.24-23 [0] [PR] 866011110 | String | No | Google Play Store version |
| servicesFramework | 1 | String | No | Google Service Framework version |
| romVersion | android13 | String | No | AOSP version (Android 13, Android 14) |
| createTimeStart | 2025-03-11 00:00:00 | String | No | Start time of creation (format: yyyy-MM-dd HH:mm:ss) |
| createTimeEnd | 2025-03-11 00:00:00 | String | No | End time of creation (format: yyyy-MM-dd HH:mm:ss) |
| page | 1 | Integer | No | Page number, default is 1 |
| rows | 10 | Integer | No | Number of entries per page, default 10, maximum 100 |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1717643679112 | Long | Timestamp |
| data | Object | ||
| ├─records | Object[] | Record list | |
| ├─├─imageId | img-25030796215 | String | Mirror ID |
| ├─├─imageName | 20250307_4 | String | Mirror name |
| ├─├─imageTag | 20250307_4 | String | Mirror Tag |
| ├─├─serverType | Cruise10 | String | SOC type |
| ├─├─romVersion | android13 | String | ROM version |
| ├─├─imageDesc | WiFi custom version | String | Description |
| ├─├─releaseType | 1 | Integer | Release version: 1 beta version, 2 official version |
| ├─├─supportF2fs | 1 | Integer | Whether f2fs is supported (1: supported, 0: not supported), deprecated, please use imageParameterInfo.supportF2fs |
| ├─├─fileTag | 0 | Integer | File tags (1: deletable 0: cannot be deleted) |
| ├─├─imageParameterInfo | Object | Mirror parameter information | |
| ├─├─├─supportF2fs | 1 | Integer | Does F2FS support (1: Support 0: Not supported) |
| ├─├─├─supportAppBootOnStart | true | Boolean | Does it support auto-start on startup? (true: supported, false: not supported) |
| ├─├─├─supportSetSensorFile | 1 | Integer | Whether sensor file settings are supported (1: Supported 0: Not supported) |
| ├─├─├─certLevel | 1 | Integer | Certificate random assignment level (can be null) |
| ├─├─gmsPlayServicesVersion | 26.04.38 (190400-867839860) | String | Google Play Services version |
| ├─├─gmsPlayStoreVersion | 50.0.24-23 [0] [PR] 866011110 | String | Google Play Store version |
| ├─├─gmsServicesFrameworkVersion | 12 | String | Google Service Framework version |
| ├─total | Integer | Total number of records | |
| ├─size | Integer | Page size | |
| ├─current | Integer | Current page number | |
| ├─pages | Integer | Total pages |
Request Example
{
"imageType":1,
"releaseType":1,
"romVersion":"android13",
"createTimeStart":"2025-02-11 00:00:00",
"createTimeEnd":"2025-03-11 00:00:00",
"page":1,
"rows":10
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1741688704152,
"data": {
"records": [
{
"imageId": "img-25030796215",
"imageName": "20250307_4",
"imageTag": "20250307_4",
"serverType": "Cruise10",
"romVersion": "android13",
"imageDesc": "",
"releaseType": 1,
"fileTag": 1,
"supportF2fs": 1,
"imageParameterInfo": {
"supportF2fs": 1,
"supportAppBootOnStart": true,
"supportSetSensorFile": 1,
"certLevel": 1
},
"gmsPlayServicesVersion": "26.04.38 (190400-867839860)",
"gmsPlayStoreVersion": "50.0.24-23 [0] [PR] 866011110",
"gmsServicesFrameworkVersion": "12"
}
],
"total": 4,
"size": 10,
"current": 1,
"pages": 1
}
}
Account Management
Batch Adding Sub-Accounts
Client accounts are used to create sub-accounts.
Interface Address
/openapi/open/subCustomer/batchAdd
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| addDTOList | Object[] | is | Sub-account parameter list (1-30 items added at a time) | |
| ├─ customerAccount | Test Account 1 | String | is | Account |
| ├─ customerName | Test Name 1 | String | is | Name |
| ├─ customerTel | 15580887450 | String | is | Contact phone number |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1760097337371 | Long | Timestamp |
| data | Object[] | Sub-account information | |
| ├─id | 972 | Long | Sub-account primary key ID |
| ├─customerAccount | Test account 1@zeng | String | Sub-account login |
| ├─password | o32kqvn152nj | String | Sub-account login password |
| ├─accessKeyId | jxurdk0uptvm2ztt3urs57jx2o2p4824 | String | Sub-account AK |
| ├─secretAccessKey | n927izl0bkonsw7znh6c5vns | String | Sub-account SK |
| ├─errorMsg | System anomaly | String | False information |
Request Example
{
"addDTOList": [
{
"customerName": "Sub-account name 1",
"customerAccount": "Test Account 1",
"customerTel": "15580887450"
},
{
"customerName": "Sub-account name 2",
"customerAccount": "Test Account 2",
"customerTel": "15580887459"
}
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760097337371,
"data": [
{
"id": 972,
"customerAccount": "Test account 1@zeng",
"password": "o32kqvn152nj",
"accessKeyId": "jxurdk0uptvm2ztt3urs57jx2o2p4824",
"secretAccessKey": "n927izl0bkonsw7znh6c5vns",
"errorMsg": null
},
{
"id": 973,
"customerAccount": "Test account 2@zeng",
"password": "l63g1dtoujbs",
"accessKeyId": "gia3tj3lvtdfiiw6m5i2pmmqkzuejstt",
"secretAccessKey": "1pwk6pxvm59fjaefvrjy8b6i",
"errorMsg": null
}
]
}
Sub-Account List Paginated Query
Paginated query of sub-accounts under customer accounts.
Interface Address
/openapi/open/subCustomer/pageList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | is | Page number |
| rows | 10 | Integer | is | Number of items |
| status | 1 | Integer | No | Enabled status: 0 - Disabled; 1 - Enable |
| customerAccount | Test Account 1 | String | No | Customer account |
| customerTel | 15580887450 | String | No | Customer phone numbers |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | |
| msg | success | String | |
| ts | 1713773577581 | Long | |
| data | Object | ||
| ├─page | 1 | Integer | Current page |
| ├─rows | 10 | Integer | The number per page |
| ├─size | 1 | Integer | Current page count |
| ├─total | 1 | Integer | Total recorded count |
| ├─totalPage | 1 | Integer | Total pages |
| ├─pageData | object[] | List | |
| ├─├─id | 972 | Integer | Primary key ID |
| ├─├─customerAccount | Test account 1@zeng | String | Sub-account login |
| ├─├─subCustomerPassword | o32kqvn152nj | String | Sub-account login password |
| ├─├─customerName | Sub-account name 1 | String | Sub-account name |
| ├─├─customerTel | 15580887450 | String | Sub-account phone numbers |
| ├─├─accessKeyId | jxurdk0uptvm2ztt3urs57jx2o2p4824 | String | Sub-account AK |
| ├─├─secretAccessKey | n927izl0bkonsw7znh6c5vns | String | Sub-account SK |
| ├─├─status | 1 | Interge | Enabled status: 0 - Disabled; 1 - Enable |
Request Example
{
"page": 1,
"rows": 10,
"status": 1,
"customerAccount": "Test Account 1",
"customerTel": "15580887450"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760152734156,
"data": {
"page": 1,
"rows": 10,
"size": 1,
"total": 1,
"totalPage": 1,
"pageData": [
{
"id": 972,
"customerAccount": "Test account 1@zeng",
"subCustomerPassword": "o32kqvn152nj",
"customerName": "Sub-account name 1",
"customerTel": 15580887450,
"status": 1,
"accessKeyId": "jxurdk0uptvm2ztt3urs57jx2o2p4824",
"secretAccessKey": "n927izl0bkonsw7znh6c5vns"
}
]
}
}
Batch Deletion of Sub-accounts
Batch delete sub-accounts under customer accounts.
Interface Address
/openapi/open/subCustomer/batchDelete
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| ids | [972] | Long[] | Yes | The primary key ID of the sub-account that needs to be deleted |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1760154208875 | Long | Timestamp |
Request Example
{
"ids": [972]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760154208875
}
Main Account Board List Paginated Query
Paginated query of the list of boards owned by customer accounts.
Interface Address
/openapi/open/subCustomer/resource/masterCustomer/pageList
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| page | 1 | Integer | is | Page number |
| rows | 10 | Integer | is | Number of items |
| netStorageResFlag | 1 | Integer | No | Network storage board marking: 0 - local board; 1 - Network storage board |
| deviceCode | ACD250411WU3CF2U | String | No | Board number |
| deviceCreatePadStatus | 1 | Integer | No | Board instance status -1 No instance created 0 All boards 1 Instance created Defaults all boards are returned |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1760097337371 | Long | Timestamp |
| data | Object[] | Board information | |
| ├─deviceId | 12376 | Long | Primary key ID of the board |
| ├─deviceCode | ACD250411WU3CF2U | String | Board number |
| ├─netStorageResFlag | 1 | Integer | Network storage board marking: 0 - local board; 1 - Network storage board |
| ├─deviceCreatePadStatus | 1 | Integer | Board instance status -1 Instance not created 1 Instance created 1. Instance created |
Request Example
{
"page": 1,
"rows": 10,
"netStorageResFlag":1,
"deviceCode":"ACD250411WU3CF2U",
"deviceCreatePadStatus":1
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760163320924,
"data": [
{
"deviceCreatePadStatus":1,
"deviceCode": "ACD250411WU3CF2U",
"deviceId": 12376,
"netStorageResFlag": 1
}
]
}
Sub-account Board List Query
Customer account inquiry into the list of boards allocated under their sub-accounts.
Interface Address
/openapi/open/subCustomer/resource/list
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| subCustomerId | 862 | Long | is | Sub-account primary key ID |
| netStorageResFlag | 1 | Integer | No | Network storage board marking: 0 - local board; 1 - Network storage board |
| deviceCode | ACD250411WU3CF2U | String | No | Board number |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1760097337371 | Long | Timestamp |
| data | Object[] | Board information | |
| ├─deviceId | 12376 | Long | Primary key ID of the board |
| ├─deviceCode | ACD250411WU3CF2U | String | Board number |
| ├─netStorageResFlag | 1 | Integer | Network storage board marking: 0 - local board; 1 - Network storage board |
Request Example
{
"subCustomerId":862,
"netStorageResFlag":1,
"deviceCode":"ACD250411WU3CF2U"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760163320924,
"data": [
{
"deviceCode": "ACD250411WU3CF2U",
"deviceId": 12376,
"netStorageResFlag": 1
}
]
}
Sub-account Board Authorization
The client account authorizes a board for a sub-account under it.
Interface Address
/openapi/open/subCustomer/resource/allocate
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| subCustomerId | 862 | Long | is | The primary key ID of the sub-account for the authorization board is required |
| allocateDeviceIds | [12376] | Long[] | is | A set of board IDs that need authorization |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1760154208875 | Long | Timestamp |
Request Example
{
"subCustomerId": 862,
"allocateDeviceIds": [
12376
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760168978928
}
Sub-Account Board Unbinding
The client account unbinds the board authorized by a sub-account under it. After successful unbinding, the board is reassigned to the client's account.
Interface Address
/openapi/open/subCustomer/resource/unbind
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example value | Parameter type | Is it required | Parameter description |
|---|---|---|---|---|
| subCustomerId | 862 | Long | is | The primary key ID of the sub-account that needs to be unbound to the board |
| unbindDeviceIds | [12376] | Long[] | is | A collection of board IDs to be unbound |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1760154208875 | Long | Timestamp |
Request Example
{
"subCustomerId": 862,
"unbindDeviceIds": [
12376
]
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760168978928
}
Event Log
The query interface for application startup and exit logs, used to obtain event records for applications on instances, such as startup, exit, and crash.
Query App Start/Exit Log List
Query the list of application start/exit logs for a specified instance, returning only data from the last 24 hours, up to 2000 records, without pagination.
Interface Address
/event/open/info/crashLog/list
Request Method
POST
Request Data Types
application/json
Request Body Parameter
| Parameter name | Example values | Parameter type | Is it required? | Parameter description |
|---|---|---|---|---|
| padCode | ACP250331GLMP7YX | String | Yes | Case number |
| packageName | com.tencent.mm | String | No | App package name (optional filter) |
Response Parameters
| Parameter name | Example values | Parameter type | Parameter description |
|---|---|---|---|
| code | 200 | Integer | Status code |
| msg | success | String | Respond to the message |
| ts | 1760154208875 | Long | Timestamp |
| data | Object[] | Response data (up to 2,000 entries) | |
| ├─ eventName | app_process_died | String | Event Name (app_process_died=Application Exit, app_process_start=App Start) |
| ├─ padCode | ACP250331GLMP7YX | String | Instance Number (Redundancy) |
| ├─ appName | String | App name (possibly empty) | |
| ├─ packageName | com.tencent.mm | String | Package name |
| ├─ packageVersionName | 8.0.62 | String | App version name (possibly empty) |
| ├─ startTime | 2026-04-08 10:15:23.123 | String | Start time, format: yyyy-MM-dd HH:mm:ss. SSS (System Local Time) |
| ├─ closeTime | 2026-04-08 11:22:03.456 | String | Closing time, format the same as above; Only app_process_died events have value |
| ├─ exceptionTime | 2026-04-08 11:21:59.789 | String | Abnormality occurrence time, format the same as above; Normal exit is usually empty/null; Only app_process_died events have value |
| ├─ closeReason | Collapse | String | Reasons for closure, such as stop/crash/crash/ANR; Only app_process_died events have value |
| ├─ exceptionType | Collapse | String | Exception type: crash/crash/ANR, normally an empty string; Only app_process_died events have value |
| ├─ durationSec | 4000 | String | Usage time (seconds); Only app_process_died events have value |
| ├─ logWriteTime | 2026-04-08 11:22:04.001 | String | Log entry time, same format as above; Only app_process_died events have value |
| ├─ isException | 1 | String | Whether it is abnormal (0 normal, 1 abnormal); Only app_process_died events have value |
Request Example
{
"padCode": "ACP250331GLMP7YX",
"packageName": "com.tencent.mm"
}
Response Examples
{
"code": 200,
"msg": "success",
"ts": 1760154208875,
"data": [
{
"eventName": "app_process_died",
"padCode": "ACP250331GLMP7YX",
"appName": "WeChat",
"packageName": "com.tencent.mm",
"packageVersionName": "8.0.62",
"startTime": "2026-04-08 10:15:23.123",
"closeTime": "2026-04-08 11:22:03.456",
"exceptionTime": "2026-04-08 11:21:59.789",
"closeReason": "Collapse",
"exceptionType": "Collapse",
"durationSec": "4000",
"logWriteTime": "2026-04-08 11:22:04.001",
"isException": "1"
},
{
"eventName": "app_process_start",
"padCode": "ACP250331GLMP7YX",
"appName": "WeChat",
"packageName": "com.tencent.mm",
"packageVersionName": "8.0.62",
"startTime": "2026-04-08 12:05:10.222",
"closeTime": null,
"exceptionTime": null,
"closeReason": null,
"exceptionType": null,
"durationSec": null,
"logWriteTime": null,
"isException": null
}
]
}
PadTaskFailCode encoding table
Batch Distribution of Multiple Instances Task Class Interface Return Results (GeneratePadTaskVO / List<GeneratePadTaskVO>, one per instance, including taskId/padCode/vmStatus/taskStatus/errMsg) Added dispatchCode fields to structurally identify why a particular instance failed to be issued. This facilitates classification and internationalization at the upper level.
dispatchCodeDeliberately separated from interface layercode(Result#code):codeindicates whether the entire API call succeeded (interface/transport level),dispatchCodeindicates why a particular instance was not successfully issued (business/instance level). The two belong to different number ranges and are not confused with each other.dispatchCode200 means the instance was successfully sent; The originalerrMsgcopy remains unchanged, serving as a showcase detail and a safety net. For upper-level internationalization, it is recommended to usedispatchCodeas the standard, witherrMsgas the bottom line.
Number range agreement: 200 = successful (issued successfully), non-200 means failed issuance code (1xxx = instance status, 2xxx = device/board, 3xxx = capability/version, 4xxx = risk control/flow control, 9xxx = system).
| dispatchCode | Enumerate | Meaning (default copy) | Trigger scene |
|---|---|---|---|
| 200 | SUCCESS | Success (Successful Distribution) | Instance sent successfully (dispatchCode is 200) |
| 1001 | PAD_NOT_EXIST | There are no instances | No risk control cases found |
| 1002 | PAD_OFFLINE | The instance is offline | Online verification is required, but instances are offline |
| 1003 | PAD_ABNORMAL | The instance is marked as an exception | The instance is marked as an abnormal state |
| 1004 | PAD_STATUS_NOT_ALLOWED | The current state of the instance does not allow this operation | Prohibited status (reset/restarting), state mismatches, mutually exclusive task conflicts (dynamic copywriting splicing) |
| 1005 | NET_STORAGE_PAD_STATUS_ABNORMAL | The database instance status is abnormal and cannot be performed | Abnormal status of the network memory instance prohibits this operation |
| 2001 | DEVICE_OFFLINE | The device is offline | Requires online equipment calibration but offline equipment |
| 2002 | BOARD_OFFLINE | Offline boards | Offline boards |
| 3001 | CBS_VERSION_NOT_SUPPORT | The CBS version does not support this operation | The CBS version does not meet the operational requirements (the script updates include the current version). |
| 4001 | RATE_LIMITED | Hit the flow limiting strategy | Hit rate limiting strategy / Edge traffic rate limit abnormality |
| 4002 | CEPH_MAINTENANCE | Network storage is under maintenance; related storage is temporarily unavailable. Please try again later | Network storage maintains blacklist interception |
| 4003 | DUPLICATE_TASK | Repeat the task and return the previous task ID | Repeat the issue and return the previous task ID |
| 9001 | SYSTEM_UNAVAILABLE | System services cannot connect | When the command is issued, the system service is unreachable |
| 9002 | TASK_PROCESS_FAILED | Task processing failed, please try again later | Backup for Batch Failures (when specific codes are missing) |
| 9999 | UNKNOWN | Unknown errors | The safety net that does not match the specific code |
Note: Failure points in the "dynamic stitching" form (some scenarios 1004, rate limit anomalies in 1005, 3001, 4001) return
errMsgwith specific context, which is not exactly the same as the default text in the table—dispatchCodefor classification/internationalization,errMsgfor detailing.