The whole path is five steps. Everything after that is the same five calls in a loop.
Devices bill against a prepaid balance. Top up first, or the first create call comes back with a 402.
Team → API keys in the dashboard. A key is scoped read or control, covers only your devices, and is shown once. Revoke it there whenever you need to.
export CLOUSD_KEY=cl_live_your_key
Pick a model, an Android version and where it goes online. For now this happens in the dashboard (Devices → New device); the API call is coming.
curl https://api.clousd.com/v1/devices/p2 \ -H "Authorization: Bearer $CLOUSD_KEY"
A device shows up as running with its exit country and IP. Long operations (start, stop, restart, snapshots) answer 202 with a job; poll /jobs/{id} until it is done.
curl https://api.clousd.com/v1/devices \ -H "Authorization: Bearer $CLOUSD_KEY"
Upload an APK to a device and it installs the way it would on a phone.
curl -X POST https://api.clousd.com/v1/devices/p2/apk \ -H "Authorization: Bearer $CLOUSD_KEY" \ -F apk=@app.apk
The AI layer reaches the same API with the same permissions. It is useful when the job is a sentence rather than a script.
Paid, destructive and fleet-wide actions stop for confirmation. You see exactly what will happen, and what it will cost, before anything runs.
Access is opening in stages. Put your name down and we will get you in.