← Back to home

Documentation

Everything you need to get started with APKless.

Quick Start

Get your first cloud phone running in under 5 minutes.

1. Install the CLI

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/apkless-com/apkless-cli/main/install.sh | sh

2. Set your API key

Get your API key from the Settings page.

export APKLESS_KEY=apkless_xxxxxxxxxxxxxxxx

3. Create a phone

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).

4. Open in browser

apkless open

Opens the sandbox in your browser — screen mirroring on the right, traffic inspector on the left.

5. Connect ADB (optional)

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.

6. Install an app and capture

apkless install ./my-app.apk
apkless capture start com.example.myapp
apkless capture flows

CLI Reference

Install from GitHub or via the install script.

Device Management

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

ADB Operations (requires connect)

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]

Traffic Capture

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

Flags

--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

REST API

Base URL: https://api.apkless.com

Authentication: Authorization: Bearer apkless_xxx

Endpoints

GET
/v1/regions

List available regions (no auth required)

GET
/v1/phones

List your phones

POST
/v1/phones

Create a phone. Body: { region, hours }

GET
/v1/phones/:id

Get phone details (status, web_url, server_token)

DELETE
/v1/phones/:id

Destroy a phone

POST
/v1/phones/:id/restart

Restart a phone

Example: Create a phone

curl
curl -X POST https://api.apkless.com/v1/phones \
  -H "Authorization: Bearer apkless_xxx" \
  -H "Content-Type: application/json" \
  -d '{"region": "singapore", "hours": 2}'

Example: Poll until ready

curl
curl https://api.apkless.com/v1/phones/<phone-id> \
  -H "Authorization: Bearer apkless_xxx"

# Response when ready:
# { "status": "ready", "web_url": "http://...", "server_token": "..." }

Phone Server API

Once a phone is ready, you can call its server directly at server_url with ?token=server_token:

GET
/health

Server health check

GET
/apps

List installed apps

POST
/apps

Install APK (multipart file upload or JSON { url })

DELETE
/apps/:package

Uninstall an app

POST
/capture

Start capture. Body: { package }

DELETE
/capture

Stop capture

GET
/capture

Capture status

GET
/flows

List captured traffic

GET
/flows/:id

Flow detail with headers and body

DELETE
/flows

Clear all flows

POST
/connect

Whitelist IP for ADB access. Body: { ip }

Sandbox (Web UI)

Every phone has a web sandbox at its web_url. Open it directly or via apkless open.

  • Left panel — Real-time traffic inspector. Click any request to view headers, request/response body. Images render inline.
  • Right panel — Screen mirroring. Touch, scroll, and type directly in the browser.
  • Filter bar — Filter traffic by host, path, method, or status code.

Regions

Create phones in any of these regions. Use the region ID with apkless create --region <id>.

Chinachina
United Statesunited-states

Billing

  • Cloud phones cost $1 per hour, billed in advance when you create a phone.
  • Buy credit hours on the Billing page. You choose how many hours to buy.
  • When creating a phone, you specify how many hours (1–24). Hours are deducted immediately.
  • Hours are non-refundable. Early destruction does not refund unused time.
  • Phones are automatically destroyed when their time expires.
  • Up to 100 concurrent phones per account.
Feedback