Everything you need to get started with APKless.
Get your first cloud phone running in under 5 minutes.
curl -fsSL https://raw.githubusercontent.com/apkless-com/apkless-cli/main/install.sh | sh
Get your API key from the Settings page.
export APKLESS_KEY=apkless_xxxxxxxxxxxxxxxx
apkless create --region singapore --hours 2
This creates a cloud Android phone in Singapore for 2 hours and waits until it's ready (~2 minutes).
apkless open
Opens the sandbox in your browser — screen mirroring on the right, traffic inspector on the left.
apkless connect # Now you can use: apkless shell scrcpy -s <addr> --max-size=720 -b2M --no-audio
Connects your local ADB to the cloud phone. Requires Android Platform Tools installed locally.
apkless install ./my-app.apk apkless capture start com.example.myapp apkless capture flows
Install from GitHub or via the install script.
apkless create --region <region> --hours <n> apkless ls # active phones apkless ls --all # include destroyed apkless show <phone-id> apkless connect [phone-id] apkless open [phone-id] apkless rm <phone-id> apkless restart <phone-id> apkless use <phone-id> # set as default
apkless shell # interactive shell apkless shell <phone-id> # auto-connect + shell apkless shell <command> # run a command apkless apps # list installed apps apkless install <apk-path> apkless uninstall <package> apkless launch <package> apkless screen [output.png] apkless push <local> <remote> apkless pull <remote> [local]
apkless capture start <package> # start with SSL bypass apkless capture stop apkless capture status apkless capture flows # list captured traffic apkless capture flows <flow-id> # show flow detail apkless capture watch # real-time stream apkless capture export # export as HAR apkless capture clear
--key <api-key> API key (or set APKLESS_KEY env) --region <region> Country for phone create (default: china) --hours <n> Hours to allocate, 1-24 (default: 1) --wait Wait for phone to be ready (default: true) --limit <n> Max flows to show (default: 50) --host <host> Filter flows by host --method <method> Filter flows by HTTP method
Base URL: https://api.apkless.com
Authentication: Authorization: Bearer apkless_xxx
/v1/regionsList available regions (no auth required)
/v1/phonesList your phones
/v1/phonesCreate a phone. Body: { region, hours }
/v1/phones/:idGet phone details (status, web_url, server_token)
/v1/phones/:idDestroy a phone
/v1/phones/:id/restartRestart a phone
curl -X POST https://api.apkless.com/v1/phones \
-H "Authorization: Bearer apkless_xxx" \
-H "Content-Type: application/json" \
-d '{"region": "singapore", "hours": 2}'curl https://api.apkless.com/v1/phones/<phone-id> \
-H "Authorization: Bearer apkless_xxx"
# Response when ready:
# { "status": "ready", "web_url": "http://...", "server_token": "..." }Once a phone is ready, you can call its server directly at server_url with ?token=server_token:
/healthServer health check
/appsList installed apps
/appsInstall APK (multipart file upload or JSON { url })
/apps/:packageUninstall an app
/captureStart capture. Body: { package }
/captureStop capture
/captureCapture status
/flowsList captured traffic
/flows/:idFlow detail with headers and body
/flowsClear all flows
/connectWhitelist IP for ADB access. Body: { ip }
Every phone has a web sandbox at its web_url. Open it directly or via apkless open.
Create phones in any of these regions. Use the region ID with apkless create --region <id>.
chinaunited-states