Overview
The Devices tab displays:- All devices allocated to your account
- Currently running devices and their streams
- Device status and availability
Device Inventory
Your device inventory shows every device you have access to, organized by type:Device Status
Each device in your inventory displays its current status:These are the human readable labels shown in the dashboard. The API and SDK use lowercase state
values instead. The most important one is
ready, which you filter for with ?state=ready in
REST or with client.devices.list({ state: ['ready'] }) in the SDK. Other API states include
creating, assigned, rebooting, resetting, stopped, terminated, and maintenance.
A stopped device is parked between sessions: it is switched off and not billed, but its data, installed apps, and identity are preserved so the next session resumes on the same device.Live Streams
When a device is running, you can view its live stream directly from the Devices tab. The stream shows:- Real-time device screen output
- Current task execution progress
- Agent actions as they occur
Managing Devices
From the Devices tab, you can:View Device Details
Click on any device to see:- Device specifications (model, OS version, screen resolution)
- Current task information (if running)
- Session history
Connect Your Own Device
With a Personal Phone subscription, connect your own physical Android or iOS device using the Mobilerun Portal App. Connected devices appear in your inventory alongside cloud-hosted devices.Reset a Device
Resetting returns a device to a clean state, clearing installed apps and user data accumulated during sessions. Trigger a reset through the API or SDK:resetting state for the entire reset, including the reconnection and setup steps that follow the wipe. It returns to ready once the reset completes.
Resetting a Personal Phone factory-resets the handset. The phone goes offline for several minutes while it wipes and reboots. Mobilerun keeps the device in resetting for up to 5 minutes while it waits for the phone to reconnect. When the phone comes back online, the device returns to ready within seconds. If the phone does not reconnect within that window, Mobilerun terminates the device.
Stop and Resume a Device
Stopping parks a device instead of terminating it. A stopped device keeps its apps, data, and identity, but nothing runs and usage is not billed until you resume it. Use this to pause a device you are not actively using without losing its state.stopped state. Filter for parked devices with ?state=stopped in REST or client.devices.list({ state: ['stopped'] }) in the SDK.
Resuming wakes the same device: Mobilerun checks that capacity is available, starts the device again, and returns it to ready. Resuming a device that is not stopped is a no-op.
Minute-billed devices that run out of credit are parked automatically. Resume them after topping up.
Not every device supports stopping. Check the device’s capabilities with
client.devices.retrieveCapabilities('deviceId'): stopping is available when the response reports stop: true. Calling stop on a device without this capability returns 404.Monitor Usage
Track your device utilization:- Active session time
- Task execution history
Billing modes
When you create a device, thebilling query parameter on POST /v1/devices selects how the session is admitted and paid for. Availability of each mode depends on the device type’s billing configuration.
Billing-service errors and indeterminate responses never trigger fallback: the request fails closed so a paid session is never opened on an unverified entitlement.
Request minute billing explicitly by appending the query parameter:
Use canonical device type identifiers such as
android_cloud_phone. The old dedicated_* aliases have been retired and are rejected with HTTP 422.Device creation errors
When you create a device or connect your own phone, Mobilerun validates the device type, then checks that your account has a matching subscription with a free device slot. If a check fails, the API returns one of these errors:
Example error body from a device creation request:
Both
SUBSCRIPTION_REQUIRED and PAYMENT_REQUIRED return HTTP 402. Match on the code field to tell them apart. If your own phone cannot connect through the Portal app, verify that your Personal Phone subscription is active.SUBSCRIPTION_REQUIRED and RESOURCE_EXHAUSTED only surface for explicit billing=subscription requests, or for auto requests when minute billing is not enabled for the device type. With auto, either denial silently falls back to minute billing when it is enabled.