Geelark OpenAPI – Cloud Phone Creation
Endpoint
POST
https://openapi.geelark.com/open/v1/phone/addNew
Creates one or more cloud phones (Android virtual devices) with isolated profiles.
Plan Constraints
- Basic plan: supports creation of only one cloud phone at a time
- Pro plan: supports batch creation (up to 100 per request)
- Batch creation may be further limited by:
- plan quota
- daily creation limits
Dependencies
- Supported brand + model combinations must be fetched via the cloud phone brand list API before use.
- Proxy priority order:
- proxyInformation
- dynamicProxy
- At least one proxy source must be provided if proxying is required.
Request Parameters (Top-Level)
mobileType
(string, required)
Android OS version of the cloud phone.
Supported values:
- Android 9
- Android 10
- Android 11
- Android 12
- Android 13
- Android 14
- Android 15
Example:
Android 10
chargeMode
(integer, optional)
Billing mode.
Values:
- 0 → on-demand (default)
- 1 → monthly
Example:
0
region
(string, optional)
Datacenter region where the cloud phone is hosted.
Values:
- cn
- sgp
Default:
cn
data
(array[EnvRowApi], required)
Array of cloud phone environment definitions.
Constraints:
- Maximum: 100 items per request
EnvRowApi (Cloud Phone Environment)
profileName
(string, required)
Human-readable cloud phone name.
Example:
myPhone
proxyInformation
(string, optional)
Proxy connection string.
Supported types:
- http
- https
- socks5
Example:
socks5://user:pass@ip:port
refreshUrl
(string, optional)
URL used to refresh proxy IP.
proxyNumber
(integer, optional)
Serial number of a previously added proxy.
dynamicProxy
(string, optional)
Reference to a saved dynamic proxy provider.
Supported values:
- IPIDEA
- IPHTML
- kookeey
- Luminati (BrightData)
- rolaip
- Proxyma
- DECODO
- NodeMaven
- IPIDEAMobile
- kookeeyMobile
dynamicProxyLocation
(string, optional)
Country code for dynamic proxy location.
Required if dynamicProxy is set.
Example:
us
mobileLanguage
(string, optional)
Language setting of the cloud phone.
Values:
- baseOnIP → derived from proxy
- default → English (default)
profileGroup
(string, optional)
Profile group name.
- Created automatically if it does not exist.
profileTags
(array[string], optional)
Profile tags.
- Tags are created automatically if they do not exist.
profileNote
(string, optional)
Free-form remark.
surfaceBrandName
(string, optional)
Device brand.
- Must match the selected Android version.
- Must be used together with surfaceModelName.
Example:
samsung
surfaceModelName
(string, optional)
Device model.
- Must match the selected Android version.
Example:
Galaxy S23
netType
(integer, optional)
Network type.
Values:
- 0 → Wi-Fi
- 1 → Mobile network
Notes:
- Only supported on Android 12 / 13 / 15
- Default: Mobile network
phoneNumber
(string, optional)
Phone number assigned to the cloud phone.
- Automatically generated if omitted.
Example:
+66817806147
Request Example
{
"mobileType": "Android 12",
"chargeMode": 0,
"data": [
{
"profileName": "myPhone",
"proxyInformation": "socks5://AD00xx004:3000xxx0002@100.200.200.100:30000",
"mobileLanguage": "default",
"profileGroup": "myGroup",
"profileTags": ["myTag"],
"profileNote": "remark"
}
]
}
Response Structure
Top-Level Response
{
"traceId": "string",
"code": 0,
"msg": "success",
"data": { ... }
}
- code = 0 indicates success
Response Data
Field
Type
Description
totalAmount
integer
Total requested cloud phones
successAmount
integer
Successfully created
failAmount
integer
Failed creations
details
array
Per-phone creation results
details[] Object
Field
Type
Description
index
integer
Creation index
code
integer
Result code (0 = success)
msg
string
Result message
id
string
Cloud phone ID
profileName
string
Cloud phone name
envSerialNo
string
Cloud phone serial number
equipmentInfo
object
Device hardware metadata
equipmentInfo Object
Field
Type
Description
countryName
string
Country
phoneNumber
string
Phone number
enableSim
integer
SIM enabled (0/1)
imei
string
IMEI
osVersion
string
Android version
wifiBssid
string
Wi-Fi BSSID
mac
string
Wi-Fi MAC address
bluetoothMac
string
Bluetooth MAC
timeZone
string
Time zone
deviceBrand
string
Device brand
deviceModel
string
Device model
Error Codes
Code
Description
44001
Batch creation not allowed (upgrade to Pro plan)
44002
Cloud phone creation limit reached for plan
44004
Daily cloud phone creation limit reached
50000
Unknown error
Notes for LLM Usage
- Batch size hard limit: 100 environments
- Brand/model must be validated externally
- Device creation is constrained by plan + daily quotas
- Cloud phone identity includes hardware-level identifiers (IMEI, MACs)
If you want, next I can:
- normalize this into OpenAPI YAML
- create a TypeScript interface
- or generate prompt rules so an LLM uses this API safely and correctly inside Context7