Yes: create one phone per task, each with its own create call, and run your agents side by side. Fifty Android phones running for ten minutes cost $5.00, billed per second, and every phone is its own device with its own apps, data and settings.
Create them
Each phone is one POST /v1/phones (or one create_phone call over MCP). Give every create an Idempotency-Key, so a create retried after a lost response returns the same phone instead of a second one, and name the phones after the task they serve.
const API = 'https://mobilebox.dev/v1', auth = { authorization: `Bearer ${process.env.MOBILESANDBOX_API_KEY}` }
const tasks = Array.from({ length: 50 }, (_, i) => `checkout-${i}`)
const phones = await Promise.all(tasks.map((name) => fetch(`${API}/phones?wait=ready`, {
method: 'POST', headers: { ...auth, 'content-type': 'application/json', 'idempotency-key': name }, body: JSON.stringify({ name }),
}).then((r) => r.json())))
try {
await Promise.all(phones.map((phone, i) => runAgent(phone.id, tasks[i]))) // your agent, one phone each
} finally {
await Promise.all(phones.map((phone) => fetch(`${API}/phones/${phone.id}`, { method: 'DELETE', headers: auth })))
}?wait=ready returns each phone once it is ready to use; one still starting after 55 seconds comes back as creating, so poll GET /v1/phones/{id}?wait=ready before handing it over. Boot time is free; billing starts at ready.
Keep the agents apart
Give each agent exactly one phone id and nothing else. An agent that only knows its own id can’t tap on its neighbour’s screen, and a failure in one run leaves the other 49 alone. Delete in finally, or park the phones you want to keep: a parked phone keeps its apps, data and logins and costs nothing. Use a key per agent when agents belong to different people or jobs.
What 50 phones cost
| Phones | Running time | Cost |
|---|---|---|
| 50 cloud Android | 10 minutes | $5.00 |
| 50 cloud Android | 1 hour | $30.00 |
| 50 iPhones | 10 minutes | $25.00 |
| 50 real Android devices | 10 minutes | $15.00 |
Every session bills per second with a one-minute minimum. A fleet that runs every day may be cheaper on dedicated devices, from $79 a month each, and past 100 devices there is volume pricing; see pricing.
Common uses
- Evaluations. One fresh phone per episode, so no run inherits another’s state; see evaluating Android agents.
- Test matrices. The same check across locales, cities or app builds, one phone each; see locale, location and IP.
- Agents in production. One kept phone per customer workflow, parked between runs.