Container API Documentation
Updated: Jan 22, 2026
Introduction
Container API provides a set of container and host management capabilities, covering host information queries, image management, system control, instance lifecycle management, and more.
Usage
1. HTTP Call
Call from the host machine or other devices in the network:
- URL Format:
http://{Host_IP}:18182/{Interface_Path} - Example:
http://192.168.1.100:18182/v1/get_hardware_cfg
Common Response Structure
All interfaces return a standard JSON format with the following structure:
{
"code": 200, // Status code, 200 for success
"data": { ... }, // Specific business data
"msg": "OK" // Status description
}Host Management (Host)
Get Host Configuration Information
Returns device hardware and basic operation information.
- URL:
/v1/get_hardware_cfg - Method:
GET - Response Example:json
{ "code": 200, "message": "success", "data": { "cpuload": "0%", "cputemp": 33, "device_id": "93508a1ed52c4e1dee17320ec78f806a", "hwaddr": "82:C1:32:C6:E4:34", "ip": "192.168.10.20", "mem_total": "15943", "mem_use": "689", "mmc_total": "239281", "mmc_use": "20691", "ssd_total": "", "ssd_use": "", "model": "c1_10", "version": "QL-c1-2025.v0.3.0.202503311512" } }
Get Host System Information
Returns CPU usage, disk/memory usage, temperature, swap and other indicators.
- URL:
/v1/systeminfo - Method:
GET - Response Example:json
{ "code": 200, "msg": { "cpu": 5.4, "disk_percent": 39.3, "disk_total": 250903556096, "mem_percent": 63.9, "mem_total": 16720510976, "temperatures": 29.615, "swap_total": 0, "swap_percent": 0 } }
Get Host Network Configuration
Returns host current gateway, subnet mask and subnet.
- URL:
/v1/net_info - Method:
GET - Response Example:json
{ "code": 200, "msg": "success", "data": { "host_ip": "192.168.10.20", "gateway": "192.168.10.1", "netmask": "255.255.254.0", "subnet": "192.168.10.0/23" } }
Host Heartbeat Check
Check host HTTP/Docker/Ping availability.
- URL:
/v1/heartbeat - Method:
GET - Response Example:json
{ "code": 200, "message": "Host normal", "data": { "docker_status": true, "http_status": true, "ping_status": true } }
Get Host Image List
Returns docker images list repository and image_id.
- URL:
/v1/get_img_list - Method:
GET - Response Example:json
{ "code": 200, "msg": "success", "data": [ { "repository": "armcloud/demo:latest", "image_id": "sha256:..." } ] }
Clean Unused Images
Clean unused Docker images on host.
- URL:
/v1/prune_images - Method:
GET - Return Value Descriptions:
code Description 200 Success 201 Failed 1 Host unreachable - Response Example:json
{ "code": 200, "msg": "success", "data": { "host_ip": "192.168.10.20", "freed_mb": "542.15", "images": [ "vcloud_android13_edge_20250925011125", "vcloud_android12_edge_20250920010230" ] } }
Import Image
Upload image file to host and load image.
- URL:
/v1/import_image - Method:
POST - Content-Type:
multipart/form-data - Parameters:
Parameter Type Required Description file file Yes Image file (.tar.gz or .tar format) - Stream Return Progress (NDJSON format):
- Stage Descriptions:
- Uploading: Uploading (upload_progress=100%, load_progress=0%)
- Loading: Loading (upload_progress=100%, load_progress=1-99%)
- Success: Success (upload_progress=100%, load_progress=100%)
- Failed: Failed (upload_progress=100%, load_progress=0%)
- Stage Descriptions:
- Return Value Descriptions:
code Description 200 Success (stream return) 0 Failed (file format error, upload failed, load failed, etc.)
Set Swap Switch
Set host swap partition status: 1 = enable, 0 = disable. Default is disabled; can be enabled after inserting SSD; swap partition default size is 8G (located at /container_nswc_lv/.swapfile).
- URL:
/v1/swap/{enable} - Method:
GET - Parameters:
Parameter Type Required Description enable string Yes 1=Enable 0=Disable - Response Example:json
{ "code": 200, "msg": { "swap_total": 2147483648, "swap_percent": 0 } }
Reboot Host
Asynchronously reboot host after issuing command.
- URL:
/v1/reboot_for_arm - Method:
GET - Response Example:json
{ "code": 200, "msg": "rebooting" }
Shutdown Host
Asynchronously shutdown host after issuing command. Executes shutdown -h now command.
- URL:
/v1/shutdown - Method:
GET - Response Example:json
{ "code": 200, "msg": "shutting down", "data": { "host_ip": "192.168.1.100" } }
Reset Host
Destroy containers, clean mappings, format and mount data disk, clean root partition and reboot.
- URL:
/v1/reset - Method:
GET - Response Example:json
{ "code": 200, "msg": "resetting and rebooting" }
Discovery Service Status
Return UDP responder status.
- URL:
/v1/discover - Method:
GET - Response Example:json
{ "code": 200, "msg": "UDP discovery service status", "data": { "udp_responder": { "running": true } } }
Import Device Template
Import device template to host.
- URL:
/v1/import_adi - Method:
POST - Content-Type:
multipart/form-data - Parameters:
Parameter Type Required Description adiZip file Yes ADI template file (must be .zip format) - Return Value Descriptions:
Field Description code 200 Success; 0/1 Failed msg Operation result description data.host_ip Host IP data.filename Saved filename - Response Example:json
{ "code": 200, "msg": "success", "data": { "host_ip": "192.168.10.20", "filename": "template.zip" } }
Get Host Device Template List
List all device templates uploaded and existing in template.json on host, supports filtering by brand and AOSP version, query all templates without parameters. Only returns actually existing files.
- URL:
/v1/get_adi_list - Method:
GET - Parameters:
Parameter Type Required Description brand string No Filter brand (e.g., vivo, google, samsung) aosp_version string No Filter AOSP version (e.g., 13, 14) - Return Value Descriptions:
Field Description code 200 Success; 0 Failed msg Operation result description data.host_ip Host IP data.list Device template list (object array, only returns actually existing files) data.list[].adiID Template ID data.list[].brand Brand data.list[].model Model data.list[].model_name Model name data.list[].aosp_version AOSP version data.list[].layout Layout (width×height×DPI) data.list[].adiName Template filename (ZIP filename) data.list[].adiPass Template extraction password - Response Example:json
{ "code": 200, "msg": "success", "data": { "host_ip": "192.168.10.20", "list": [ { "adiID": 2001, "brand": "google", "model": "Pixel 7 Pro(12G)", "model_name": "Pixel 7 Pro", "aosp_version": "13", "layout": "1440x3120x560", "adiName": "59ddfc6374723e2bea36a84792238063.zip", "adiPass": "" } ] } }
Instance Management (Instance)
Create Instance
Create Android instance (bridge network, sandbox storage, dynamic port allocation).
- URL:
/container_api/v1/create - Method:
POST - Parameters:
Parameter Type Required Description user_name string Yes Instance username, length greater than 2, supports numbers/letters/underscore/dot/dash count integer No Batch creation quantity, default 1, maximum 12 bool_start boolean No Whether to start instance immediately, default false bool_macvlan boolean No Whether to enable macvlan dual network card mode (bridge+macvlan), default false. After enabled, instance will get independent LAN IP macvlan_network string No macvlan network name, default macvlan100. Only valid when bool_macvlan=true macvlan_start_ip string No macvlan start IP address, only valid when bool_macvlan=true. When count=1, directly use specified IP (requires ARP detection), when count>1, incrementally allocate from start IP image_repository string No Local image name (without tag), default value is vcloud_android13_edge_20250925011125 bool_gms_disabled boolean No Whether to disable GMS when creating container, true=disable, false=do not disable, if not passed use value in game.info bool_gms_upgrade_enable boolean No Whether to allow GMS upgrade, true=allow, false=disallow, default false resolution object No Resolution configuration object, contains dpi, fps, height, width selinux boolean No Whether to enable SELinux dns array<string>No DNS server list adiID integer No ADI template ID (highest priority, get available template IDs via /v1/get_adi_list), system will automatically find corresponding template file and password adiName string No ADI template filename (if adiID is passed, adiName and adiPass can be omitted) adiPass string No ADI extraction password (if adiID is passed, adiName and adiPass can be omitted) lon float No Longitude. e.g. 121.5 lat float No Latitude. e.g. 31.2 locale string No Language. e.g. zh-CN timezone string No Timezone. e.g. Asia/Shanghai country string No Country code (ISO Alpha-2) used when randomly generating Android properties. Defaults to CN when not filled userProp string No Custom Android properties (JSON format string) cert_hash string No Certificate file hash value (priority use). Must be imported to system through certificate management interface cert_content string No Base64 encoded certificate content (used when cert_hash is not provided). Only used for this creation, not saved to database or disk. Note: When using cert_content, bool_start must be true device_type string No Device type. virtualindicates virtual machine,realindicates real device. Default isreal. Note: When device_type isvirtual, the system will forcibly clear the three parameters adiID, adiName, and adiPassremark string No Instance remark information - Request Example:json
{ "user_name": "test-001", "bool_start": false, "image_repository": "vcloud_android13_edge_20250925011125", "adiID": 1039, "resolution": { "dpi": 560, "fps": 60, "height": 3040, "width": 1440 }, "selinux": false, "dns": ["8.8.8.8", "1.1.1.1"], "bool_gms_disabled": false, "bool_gms_upgrade_enable": false }
Batch Start Instances (Async)
Batch start instances asynchronously.
- URL:
/container_api/v1/run - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance ID array - Return Value Descriptions:
code Description 200 Success, task queued 460 Another start task in progress 203 Running instance count will exceed limit 1 db_id does not exist 2 Instance not in stopped state
Batch Stop Instances (Async)
Batch stop instances asynchronously.
- URL:
/container_api/v1/stop - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance ID array
Batch Reboot Instances (Async)
Batch reboot instances asynchronously.
- URL:
/container_api/v1/reboot - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance ID array
Batch Reset Instances (Async)
Batch reset instances asynchronously.
- URL:
/container_api/v1/reset - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance ID array
Batch Delete Instances (Async)
Batch delete instances asynchronously.
- URL:
/container_api/v1/delete - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance ID array
Upgrade Instance Image
Upgrade specified instances to new image version. Upgrade process: stop container → delete container → rebuild with new image → start container. Data will be preserved.
- URL:
/container_api/v1/upgrade_image - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes db_id array repository string Yes Image repository name (without tag, defaults to latest) adiID integer No ADI template ID (highest priority) adiName string No ADI template filename adiPass string No ADI extraction password
Rename Instance
Only modify user_name, do not modify db_id/Name (container name).
- URL:
/container_api/v1/rename/{db_id}/{new_user_name} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier new_user_name string Yes New user_name (display name, length > 2)
Update Certificate Configuration
Update certificate configuration for specified instance. Priority use cert_hash (must be imported to system through certificate management interface). If not provided, use cert_content (base64 encoded, only used this time, not saved to database or disk). Certificate will be written to instance's debug_ramdisk/secure.prop file.
- URL:
/container_api/v1/update_cert - Method:
POST - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier (EDGE + 12 random characters) cert_hash string No Certificate file hash value (priority use). Must be imported to system through certificate management interface, and file must exist at /etc/secure/<cert_hash>path. If both cert_hash and cert_content are provided, priority use cert_hashcert_content string No Base64 encoded certificate content (used when cert_hash is not provided). Only used for this operation, not saved to database or disk, will be directly written to instance's debug_ramdisk/secure.prop file. Supports secure.prop format or XML format (will be automatically converted to prop format) - Note: One of cert_hash and cert_content must be provided
- Request Example:json
{ "db_id": "EDGE0A1B2C3D4E5", "cert_hash": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456" }
Update User Properties
Batch update user-defined Android properties of specified instances.
- URL:
/container_api/v1/update_user_prop - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance unique identifier list (EDGE + 12 random characters, supports batch operation) user_prop string Yes User-defined Android properties (JSON format string). e.g.: {"ro.product.model":"CustomModel","ro.build.version.sdk":"33"}isRestart boolean No Whether to restart instance after updating properties (optional, default false). When set to true, will asynchronously restart all instances in background - Request Example:json
{ "db_ids": ["EDGE0A1B2C3D4E5", "EDGE6F7G8H9I0J1"], "user_prop": "{\"ro.product.model\":\"CustomModel\",\"ro.build.version.sdk\":\"33\"}", "isRestart": false }
Set IP
Modify instance IP (macvlan only). Only accepts instances in macvlan mode, modify their LAN IP. Before modification, will check if db_id exists and if IP is already occupied.
- URL:
/container_api/v1/set_ip - Method:
POST - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier (EDGE + 12 random characters) ip string Yes New LAN IP, must be within macvlan network segment - Request Example:json
{ "db_id": "EDGE0A1B2C3D4E5", "ip": "192.168.10.120" }
Get Instance Details
Get detailed information for specified instance.
- URL:
/container_api/v1/get_android_detail/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier
Get Instance List
Get list of all instances.
- URL:
/container_api/v1/get_db - Method:
GET
Get ADB Command
Get ADB connection command for specified instance.
- URL:
/container_api/v1/adb_start/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier
Screenshot
Get screenshot for specified instance.
- URL:
/container_api/v1/screenshots/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier
Clone Instance
Clone specified instance.
- URL:
/container_api/v1/clone - Method:
POST - Parameters:
Parameter Type Required Description user_name string Yes Cloned instance name db_id string Yes Cloned container db_id count integer Yes Clone quantity, maximum is 12 update_prop boolean No Whether to automatically refresh Android properties after cloning, default false. When true, generate random androidProp based on source instance country - Request Example:json
{ "user_name": "test-001", "db_id": "EDGE0A1B2C3D4E5", "count": 1, "update_prop": true }
Clone Instance Task Status
Query clone instance task status.
- URL:
/container_api/v1/clone_status - Method:
GET
Get ROM Status
Query whether instance ROM has started and is ready.
- URL:
/container_api/v1/rom_status/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier - Return Value Description:
code msg Description 0 Instance not started Instance not started 1 ROM not ready Instance running but ROM not ready 200 ROM ready ROM ready
Query All Container IDs
Return db_id/user_name/adb list of all instances.
- URL:
/container_api/v1/list_names - Method:
GET
Sync Instance Status
Sync instance status.
- URL:
/container_api/v1/sync_status - Method:
GET
Batch One-Click Reset (Async)
Only allow running or stopped. Set state=renewing then asynchronously execute stop → clear data → start; preserve db_id and user_name.
- URL:
/container_api/v1/replace_devinfo - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance unique identifier list adiID integer No ADI template ID (highest priority, get available template IDs via /v1/get_adi_list), system will automatically find corresponding template file and password adiName string No ADI template filename (if adiID is passed, adiName and adiPass can be omitted) adiPass string No ADI extraction password (if adiID is passed, adiName and adiPass can be omitted) country string No Country code (ISO Alpha-2) used when randomly generating Android properties, e.g. CN. When not filled, priority based on instance locale, otherwise defaults to CN userProp string No Custom Android properties (JSON format string) wipeData boolean No Whether to clear data disk and reset debug_ramdisk, default true. When false, only refresh configuration and preserve data lon float No Longitude. e.g. 121.5 lat float No Latitude. e.g. 31.2 locale string No Language. e.g. zh-CN timezone string No Timezone. e.g. Asia/Shanghai cert_hash string No Certificate file hash value (priority use). Must be imported to system through certificate management interface cert_content string No Base64 encoded certificate content (used when cert_hash is not provided). Only used for this operation, not saved to database or disk - Request Example:json
{ "db_ids": ["EDGE0A1...", "EDGE6F7..."], "adiID": 1039, "country": "CN", "wipeData": true, "userProp": "{\"persist.sys.country\":\"CN\"}", "lon": 121.5, "lat": 31.2, "locale": "zh-CN", "timezone": "Asia/Shanghai", "cert_hash": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456" }
Batch Update Stopped Instance Image Information
Batch update image information for stopped instances. Only processes instances in stopped/failed state.
- URL:
/container_api/v1/update_stopped_image - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes db_id array (supports single or multiple) repository string Yes Image repository name (without tag, default uses latest) - Request Example:json
{ "db_ids": ["EDGE0A1...", "EDGE6F7..."], "repository": "vcloud_android13_edge_20250925011125" }
Update Screen Projection Service
Update screen projection service.
- URL:
/container_api/v1/refreshScreenService - Method:
POST - Content-Type:
multipart/form-data - Parameters:
Parameter Type Required Description file array<file>Yes Uploaded files (supports scd or scd.sh, can upload multiple at once) db_id string No Instance ID (optional, choose one with user_name) user_name string No Username (optional, choose one with db_id)
Enable GMS
Enable GMS service for all instances.
- URL:
/container_api/v1/gms_start - Method:
GET
Disable GMS
Disable GMS service for all instances.
- URL:
/container_api/v1/gms_stop - Method:
GET
API Logs
Query Recent API Logs
Returns the last 20 API execution records.
- URL:
/interface_logs/recent - Method:
GET
Show Log Details
Show log details.
- URL:
/interface_logs/detail - Method:
GET
API Success Rate Query
Statistics on API execution count and success rate.
- URL:
/interface_logs/stats - Method:
GET
App Management (App)
Get Application List
Get list of third-party app package names installed in instance.
- URL:
/android_api/v1/app_get/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier
Start App in Instance (Batch)
Batch start apps in specified instances.
- URL:
/android_api/v1/app_start - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance ID list, supports batch operation app string Yes Application package name (single) - Request Example:json
{ "db_ids": ["EDGE0A1B2C3D4E5", "EDGE6F7G8H9J0K1"], "app": "com.chartcross.gpstest" }
Stop App in Instance (Batch)
Batch close apps in specified instances.
- URL:
/android_api/v1/app_stop - Method:
POST - Parameters:
Parameter Type Required Description db_ids array<string>Yes Instance ID list, supports batch operation app string Yes Application package name (single) - Request Example:json
{ "db_ids": ["EDGE0A1B2C3D4E5", "EDGE6F7G8H9J0K1"], "app": "com.tencent.mm" }
Set App Root Permission
Batch grant Root permission to specified apps in instances. App needs to be restarted after operation to take effect.
- URL:
/android_api/v1/root_app - Method:
POST - Parameters:
Parameter Type Required Description db_ids string Yes Instance ID list, supports Chinese comma (,) and English comma (,) separated, e.g. EDGE0A1B2C3D4E5,EDGE6F7G8H9J0K1 or EDGE0A1B2C3D4E5,EDGE6F7G8H9J0K1 app string Yes Package name that needs Root permission (must be installed) - Request Example:json
{ "db_ids": "EDGE0A1B2C3D4E5,EDGE6F7G8H9J0K1", "app": "com.chartcross.gpstest" }
Add Display Over Other Apps Permission
Enable permission to display on top of other apps for specified app (overlay permission).
- URL:
/android_api/v1/add_show_other_app_over_permission - Method:
POST - Parameters:
Parameter Type Required Description db_id string Yes Instance ID app string Yes Application package name - Request Example:json
{ "db_id": "EDGEH06HF5E52NQL", "app": "com.zhiliaoapp.musically" }
File Operations (File)
Batch Install APK
Batch install to specified Android containers by uploading files. Supports single package APK and Split APK (multiple packages).
- URL:
/android_api/v1/upload_file_android_batch - Method:
POST - Content-Type:
multipart/form-data - Parameters:
Parameter Type Required Description db_ids string Yes Instance ID list, multiple separated by comma, e.g. EDGE123,EDGE456 file file Yes Installation package file: supports single package .apk; or split apk's .zip/.xapk/.tar/.tar.gz/.tgz (after extraction contains multiple .apk, xapk format extraction same as zip)
Batch Upload Files
Batch copy to specified instance directory by uploading local files.
- URL:
/android_api/v1/upload_file_android_upload - Method:
POST - Content-Type:
multipart/form-data - Parameters:
Parameter Type Required Description db_ids string Yes Instance ID list, multiple separated by comma (supports Chinese comma,and English comma,), e.g. EDGE123,EDGE456 or EDGE123,EDGE456 file file Yes File to upload path string No Optional, target directory, default /storage/emulated/0/Download
Batch Install APK (URL)
Download APK files via URL and batch install to specified Android containers.
- URL:
/android_api/v1/install_apk_from_url_batch - Method:
POST - Parameters:
Parameter Type Required Description url string Yes APK file download URL db_ids string Yes Instance ID list, multiple separated by comma (supports Chinese comma,and English comma,), e.g. EDGE123,EDGE456 or EDGE123,EDGE456 - Request Example:json
{ "url": "https://example.com/app.apk", "db_ids": "EDGE0A1B2C3D4E5,EDGE6F7G8H9J0K1" }
Batch Upload Files (URL)
Download files via URL and batch copy to specified instance directory.
- URL:
/android_api/v1/upload_file_from_url_batch - Method:
POST - Parameters:
Parameter Type Required Description url string Yes File download URL db_ids string Yes Instance ID list, multiple separated by comma (supports Chinese comma,and English comma,), e.g. EDGE123,EDGE456 or EDGE123,EDGE456 path string No Optional, target directory, default /storage/emulated/0/Download - Request Example:json
{ "url": "https://example.com/file.zip", "db_ids": "EDGE0A1B2C3D4E5,EDGE6F7G8H9J0K1", "path": "/storage/emulated/0/Download" }
Export Phone APK
Export APK files of installed apps from specified instance, download through browser.
- URL:
/android_api/v1/export_phone_apk - Method:
POST - Parameters:
Parameter Type Required Description db_id string Yes Instance ID app string Yes Application package name - Note:
- Single APK: returns
[app].apk - Split APK (multi-package): returns
[app]_apks.zip(contains multiple APKs) - Browser will automatically trigger download, user can choose save path
- Single APK: returns
- Request Example:json
{ "db_id": "EDGEH06HF5E52NQL", "app": "com.zhiliaoapp.musically" }
System Control (System)
Execute ADB Command
Execute custom ADB Shell commands.
- URL:
/android_api/v1/shell/{db_id} - Method:
POST - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier cmd string Yes Shell command to execute (request body)
Disable Current Window Application
Automatically get the package name of the current foreground app and use the am force-stop command to force disable the application.
- URL:
/android_api/v1/stop_front_app/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier
Set Instance Coordinates (GPS Location Injection)
Inject GPS location information into Android container.
- URL:
/android_api/v1/gps_inject/{db_id} - Method:
POST - Path Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier (EDGE + 12 random characters) - Request Body Parameters:
Parameter Type Required Description longitude float Yes Longitude. Range: -180.0 ~ 180.0, positive for east longitude, negative for west longitude. Example: 116.397455 (Beijing Tiananmen) latitude float Yes Latitude. Range: -90.0 ~ 90.0, positive for north latitude, negative for south latitude. Example: 39.909187 (Beijing Tiananmen) altitude float No Altitude. Unit: meters (m). Represents height relative to sea level. Example: 8 speed float No Movement speed. Unit: meters/second (m/s). Represents device movement speed. Example: 8 (approximately 28.8 km/h) bearing float No Bearing/heading. Unit: degrees (°). Range: 0.0 ~ 360.0, represents device movement direction. 0° is north, 90° is east, 180° is south, 270° is west horizontalAccuracyMeters float No Horizontal positioning accuracy. Unit: meters (m). Represents positioning precision, smaller value means more precise. Example: 0.1 (10 cm precision) - Request Example:json
{ "longitude": 116.397455, "latitude": 39.909187, "altitude": 43.5, "speed": 0, "bearing": 0, "horizontalAccuracyMeters": 5.0 }
Set Video Injection
Set video injection.
- URL:
/android_api/v1/video_inject/{db_id} - Method:
POST - Path Parameters:
Parameter Type Required Description db_id string Yes Container ID - Request Body Parameters:
Parameter Type Required Description url string Yes Video URL - Request Example:json
{ "url": "https://example.com/demo.mp4" }
Disable Video Injection
Disable video injection.
- URL:
/android_api/v1/video_inject_off/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier
Set Instance Timezone
Set instance timezone.
- URL:
/android_api/v1/timezone_set/{db_id} - Method:
POST - Path Parameters:
Parameter Type Required Description db_id string Yes Container ID - Request Body Parameters:
Parameter Type Required Description timeZone string Yes Timezone, e.g. Asia/Shanghai - Request Example:json
{ "timeZone": "Asia/Shanghai" }
Set Instance Country
Update instance country.
- URL:
/android_api/v1/country_set/{db_id} - Method:
POST - Path Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier (EDGE + 12 random characters) - Request Body Parameters:
Parameter Type Required Description country string Yes Country code (country_info.json country_code), e.g. CN, US, JP, etc. - Common Country Codes:
Country Code Country Code China CN United States US Germany DE India IN Japan JP United Kingdom GB France FR Italy IT Canada CA Brazil BR Australia AU Spain ES South Korea KR Netherlands NL - Request Example:json
{ "country": "CN" }
Set Instance Language
Set instance language.
- URL:
/android_api/v1/language_set/{db_id} - Method:
POST - Path Parameters:
Parameter Type Required Description db_id string Yes Container ID - Request Body Parameters:
Parameter Type Required Description country string Yes Country code, e.g. CN language string Yes Language code, e.g. zh - Request Example:json
{ "country": "CN", "language": "zh" }
Query Instance Country, Language, Timezone
Get country, language, timezone information of instance.
- URL:
/android_api/v1/get_timezone_locale/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Instance unique identifier
Get Coordinates by IP
Query coordinates by instance or proxy IP.
- URL:
/android_api/v1/ip_geo/{db_id} - Method:
GET - Parameters:
Parameter Type Required Description db_id string Yes Container ID ip string No Optional, IP to override query
Certificate Management (Certificate)
Import Certificate from File
Import certificate to system by uploading certificate file. Supports uploading multiple certificate files at once, system will automatically calculate SHA-256 hash value of certificate content as filename to save.
- URL:
/certificate_manage/file_import_cert - Method:
POST - Content-Type:
multipart/form-data - Supported File Formats:
.crt,.pem,.cer,.cert(standard certificate format),.key(private key file),.prop(secure.prop format),.xml(XML format, will be automatically converted to prop format) - Parameters:
Parameter Type Required Description file array<file>Yes Certificate file (supports multiple files) filename string No Filename (optional, supports single or multiple, multiple separated by comma, supports Chinese comma,and English comma,)
Import Certificate from Text
Import certificate to system by passing certificate text content (base64 encoded). System will automatically detect certificate format (XML or prop format), XML format will be automatically converted to prop format.
- URL:
/certificate_manage/content_import_cert - Method:
POST - Parameters:
Parameter Type Required Description content string Yes Base64 encoded certificate content (required) - Supported Content Formats: secure.prop format (standard format), XML format (will be automatically converted to prop format)
- Request Example:json
{ "content": "cm8uYnVpbGQuY2xvdWQuZ21zX3N1aXRlX2Rpc2FibGVkPTE=" }
SSD Management (SSD)
Storage Status
Returns storage status scanned at startup: trial (trial, no SSD), new_ssd (new SSD found, action required), ssd (registered and mounted).
- URL:
/storage/status - Method:
GET
Format as Data Disk and Mount
Format specified device as ext4 and mount to /container_nswc_lv, write to fstab(UUID).
- URL:
/storage/format - Method:
POST - Parameters:
Parameter Type Required Description device string Yes Device path, e.g. /dev/nvme0n1 or its partition confirm boolean Yes Confirm operation - Request Example:json
{ "device": "/dev/nvme0n1", "confirm": true }
Import Existing Data Disk and Mount
No formatting, directly mount specified device as /container_nswc_lv.
- URL:
/storage/import - Method:
POST - Parameters:
Parameter Type Required Description device string Yes Device path confirm boolean Yes Confirm operation - Request Example:json
{ "device": "/dev/nvme0n1", "confirm": true }
Version Update (Update)
CBS Version Update
Upload CBS executable file and update service, please refresh page after update.
- URL:
/v1/update_cbs - Method:
POST - Content-Type:
multipart/form-data - File Naming Requirements: Must be
cbs_go_edge_versionformat, supports 'executable file without suffix' or.cbssuffix; does not support.exe - Parameters:
Parameter Type Required Description file file Yes CBS executable file (filename must be cbs_go_edge_version format; supports no suffix or .cbs, does not support .exe) - Return Value Description:
Field Description code 200 success; 0 failed msg Operation result description data.host_ip Host IP data.current_version Currently running version number
Kernel Version Update
Upload kernel image file and update system kernel, host will automatically reboot after update.
- URL:
/v1/update_kernel - Method:
POST - Content-Type:
multipart/form-data - File Naming Requirements: Must be
.imgformat image file - Execution Flow:
- Uploaded .img file saved to
/userdata/new_boot.img - Automatically set file executable permission (0755)
- Execute kernel flash command and reboot system
- Uploaded .img file saved to
- Parameters:
Parameter Type Required Description file file Yes Kernel image file (must be .img format) - Return Value Description:
Field Description code 200 success; 0 failed msg Operation result description data.host_ip Host IP
