CLOUSD
Open account
LearnBenchmarkSoonHow agents score on Clousd phonesBlogSoonGuides, deep dives and field notesCompareSoonClousd next to the alternatives
BuildIntegrationsSoonMCP, Claude Code, Codex, Cursor, n8nGitHubSDK, MCP server and examples
Read the Docs

Run automation

Group jobs

Run the same steps on many phones in one call.

A group job

Many phones at once
POST /v1/groups
{
  "phones": ["c3f9a41d2", "c81d07e5a", "c2b9f4a10"],
  "steps": [
    {"op":"install_app","package":"com.example.app"},
    {"op":"open_app","package":"com.example.app"},
    {"op":"wait_text","text":"Welcome","seconds":20},
    {"op":"screenshot"}
  ]
}
# → 202 {"job": {"id": "j_8a1c", "state": "running"}}

GET /v1/jobs/j_8a1c
# → {"job": {"state": "done", "output": "{\"per_phone\": {\"c3f9a41d2\": {\"state\": \"done\", …}}}"}}

A job runs on up to 32 phones in parallel, on any server. Each phone starts at a random moment within the stagger you give, and the job reports the progress of every phone. vars_by_phone gives each phone its own input values.

Steps

open_app, close_app, install_app, url, tap, swipe, text, key, wait (random between seconds and seconds_max), browse, scroll, if_text / unless_text (skip the next steps unless a text is on screen), screenshot, start, stop, restart.

Schedules

A schedule is the same job on a clock: POST /v1/schedules with name, phones, steps, stagger, at ("HH:MM", UTC) and days (1 to 7). Pause it with /toggle and remove it with /delete.