CLOUSD
Open account
API

Everything is an API call.

Every action in the dashboard, and every action the AI takes, is a REST call you can make yourself.

Authentication

One bearer token per account, created and rotated from the dashboard. Send it on every request.

# base url · full reference: /docs/reference/ · spec: /docs/openapi-v1.yaml
https://api.clousd.com/v1

# every request
Authorization: Bearer cl_live_your_key

Rotating a key takes effect immediately. The previous key stops working the moment the new one is issued, so swap it in your scripts first.

Endpoints

The full set is in the docs. These are the ones you will use on day one.

MethodPathWhat it does
GET/devicesList your devices and their state
GET/devices/{name}Read one device
POST/devices/{name}/startStart a stopped device → 202 + job
POST/devices/{name}/stopStop a running device → 202 + job
POST/devices/{name}/restartRestart a device → 202 + job
GET/devices/{name}/screenshotScreen as PNG (JPEG with ?w=160)
POST/devices/{name}/actionOpen an app or URL, tap, swipe, type, press a key
POST/devices/{name}/inputRaw touch, key, text, rotate over a live stream
POST/devices/{name}/apkInstall an APK
GET · POST/devices/{name}/networkRead or change the exit (mobile, residential, ISP, datacenter, own proxy)
POST/devices/{name}/network/rotateNew IP
GET · POST/devices/{name}/snapshotsList snapshots · take one → 202 + job
POST/devices/{name}/snapshots/{id}/restoreRestore a snapshot → 202 + job
GET/healthHealth of your devices
GET/jobs/{id}Result of a long operation

List devices, restart one

Creating devices happens in the dashboard for now; everything after that is the API. Long operations answer 202 with a job you can poll.

curl https://api.clousd.com/v1/devices \
  -H "Authorization: Bearer cl_live_your_key"

curl -X POST https://api.clousd.com/v1/devices/p2/restart \
  -H "Authorization: Bearer cl_live_your_key"
202 Accepted
{
  "ok": true,
  "job": { "id": "3f9c1a…", "kind": "restart", "phone": "p2", "state": "running" }
}

GET /jobs/3f9c1a…  →  "state": "done"

Errors

Standard HTTP status codes, with a machine-readable reason in the body.

400The request is malformed, or a field is not one of the allowed values.
401Missing or revoked key.
402Not enough balance to start what you asked for.
404No device with that id on this account.
409The device is already in that state, or busy with another action.
429Too many requests. Back off and retry.

Get a key

Access is opening in stages. Put your name down and we will get you in.

Create an account Read the docs