# Mobilerun ## Docs - [Quickstart](https://docs.mobilerun.ai/quickstart.md): Run your first AI agent on a real mobile device, in the cloud or on your own hardware. - [Cloud Quickstart](https://docs.mobilerun.ai/cloud/quickstart.md): Run your first autonomous task on a hosted device using the TypeScript SDK, Python, or cURL. - [Agent](https://docs.mobilerun.ai/agent.md): Configure and run the Mobilerun agent to automate tasks on your devices. - [Device Types](https://docs.mobilerun.ai/device-types.md): Learn about the different device types available on Mobilerun and choose the one that best fits your automation needs. - [Credits](https://docs.mobilerun.ai/credits.md): Understand how credits work and what they are used for on Mobilerun. - [Connect an iPhone](https://docs.mobilerun.ai/guides/connect-iphone.md): Bring your own iPhone into Mobilerun cloud using the mobilerun-ios CLI. - [Connect an Android](https://docs.mobilerun.ai/guides/connect-android.md): Bring your own Android phone into Mobilerun using the Mobilerun Portal app. - [Cloud Phone Setup](https://docs.mobilerun.ai/guides/cloud-phone-setup.md): Best practices for setting up and using your Cloud Phone for reliable, stealth automation. - [Physical Phone Setup](https://docs.mobilerun.ai/guides/physical-phone-setup.md): Best practices for setting up and using your Physical Phone for reliable, stealth automation. - [Embed a device stream in your app](https://docs.mobilerun.ai/guides/embed-device-stream.md): Build a custom device experience with @mobilerun/react - [Playground](https://docs.mobilerun.ai/playground.md): Test and optimize your agent configurations interactively before deploying to production. - [Tasks](https://docs.mobilerun.ai/tasks.md): Monitor all your agent tasks, track execution history, and view live progress of running tasks. - [Devices](https://docs.mobilerun.ai/devices.md): View and manage all your devices and monitor active device streams. - [Proxies](https://docs.mobilerun.ai/proxies.md): Configure proxies to route device traffic and unlock stealth-level automations. - [Apps](https://docs.mobilerun.ai/apps.md): Manage your app library by uploading custom APKs to deploy to your devices. - [Credentials](https://docs.mobilerun.ai/credentials.md): Securely store and manage authentication credentials for automated app interactions. - [API Keys](https://docs.mobilerun.ai/api-keys.md): Create and manage API keys for programmatic access to the Mobilerun API. - [Webhooks](https://docs.mobilerun.ai/webhooks.md): Receive real-time notifications when task events occur in your Mobilerun account. - [MCP Server](https://docs.mobilerun.ai/mcp-server.md): Connect AI agents and tools to Mobilerun using the Model Context Protocol. - [n8n](https://docs.mobilerun.ai/n8n.md): Automate mobile workflows using the official Mobilerun node for n8n. - [Agent Skills](https://docs.mobilerun.ai/skills.md): Give any AI agent the ability to control Android phones through the Mobilerun skill. - [OpenClaw](https://docs.mobilerun.ai/openclaw.md): Set up the Mobilerun skill in OpenClaw to give your AI agent full Android phone control. - [Browser Automation](https://docs.mobilerun.ai/browser-automation.md): Drive Chrome on a Mobilerun device with Puppeteer or Playwright over the Chrome DevTools Protocol. - [Port Forwarding](https://docs.mobilerun.ai/port-forwarding.md): Reach arbitrary TCP services on a Mobilerun device through a WebSocket tunnel or an HTTP reverse proxy. - [ADB](https://docs.mobilerun.ai/integrations/adb.md): Run your local adb or Frida client against a Mobilerun cloud device through a WebSocket tunnel. - [List apps](https://docs.mobilerun.ai/api-reference/apps/list-apps.md): Returns detailed information about apps installed on the device, including package name and label. System and protected apps are excluded unless the corresponding query parameters are set. - [Install app](https://docs.mobilerun.ai/api-reference/apps/install-app.md): Requests an app install on the device. The request body must supply exactly one of an Android packageName or an iOS bundleId; protected packages are rejected. background (default false) selects the response contract: false installs inline and returns the outcome directly (200 on success, an error st… - [List app installs](https://docs.mobilerun.ai/api-reference/apps/list-app-installs.md): Reports the backend's view of background app-install attempts on this device — status reflects the install ATTEMPT, not device ground truth; list-apps remains authoritative for what is actually installed. Records are in-memory and lost on service restart; terminal records are kept ~15 minutes. Not g… - [Open a deep link](https://docs.mobilerun.ai/api-reference/apps/open-a-deep-link.md): Opens a deep link on the device. On Android the link is dispatched as an intent — packageName optionally pins it to a specific app and action overrides the default android.intent.action.VIEW. On iOS the URL is opened directly and the optional fields must be omitted. Protected packages are rejected. - [Start app](https://docs.mobilerun.ai/api-reference/apps/start-app.md): Launches the app identified by the path package name, optionally starting a specific activity given in the request body. Protected packages cannot be started. - [Delete app](https://docs.mobilerun.ai/api-reference/apps/delete-app.md): Uninstalls the app identified by the path package name from the device. Protected packages cannot be deleted. - [Stop app](https://docs.mobilerun.ai/api-reference/apps/stop-app.md): Force-stops the app identified by the path package name. When clearData is set in the request body, the app's data is also cleared. Protected packages cannot be stopped. - [Grant app permission](https://docs.mobilerun.ai/api-reference/apps/grant-app-permission.md): Grants an Android runtime permission to the package named in the path. The permission is given by its short name (e.g. POST_NOTIFICATIONS). - [Revoke app permission](https://docs.mobilerun.ai/api-reference/apps/revoke-app-permission.md): Revokes an Android runtime permission from the package named in the path. The permission is given by its short name (e.g. POST_NOTIFICATIONS). - [List packages](https://docs.mobilerun.ai/api-reference/apps/list-packages.md): Returns the package names of apps installed on the device. System and protected packages are excluded unless the corresponding query parameters are set. - [Execute JavaScript in the device's Chrome browser (CDP)](https://docs.mobilerun.ai/api-reference/browser/execute-javascript-in-the-devices-chrome-browser-cdp.md): Evaluates a JavaScript expression in the device's foreground Chrome tab via the Chrome DevTools Protocol and returns its JSON-serialized result. Devices without browser support return an unsupported-feature error. - [List device recordings](https://docs.mobilerun.ai/api-reference/recordings/list-device-recordings.md) - [Start a device recording](https://docs.mobilerun.ai/api-reference/recordings/start-a-device-recording.md) - [Get a device recording](https://docs.mobilerun.ai/api-reference/recordings/get-a-device-recording.md) - [Stop a device recording](https://docs.mobilerun.ai/api-reference/recordings/stop-a-device-recording.md) - [Delete a device recording](https://docs.mobilerun.ai/api-reference/recordings/delete-a-device-recording.md) - [Get a device recording trajectory](https://docs.mobilerun.ai/api-reference/recordings/get-a-device-recording-trajectory.md) - [Get a device recording video](https://docs.mobilerun.ai/api-reference/recordings/get-a-device-recording-video.md) - [List files](https://docs.mobilerun.ai/api-reference/files/list-files.md): Lists the files at the directory path given in the path query parameter, returning each entry's metadata along with the path and total count. - [Upload file](https://docs.mobilerun.ai/api-reference/files/upload-file.md): Uploads a file to the device via multipart form data, writing it into the directory given by the path query parameter using the uploaded file's name. - [Delete file](https://docs.mobilerun.ai/api-reference/files/delete-file.md): Deletes the file at the path given in the path query parameter from the device. - [Download file](https://docs.mobilerun.ai/api-reference/files/download-file.md): Pulls the file at the given path query parameter from the device and returns its raw bytes as an octet-stream. - [Perform a global action](https://docs.mobilerun.ai/api-reference/navigation/perform-a-global-action.md): Performs a global system action on the device, such as navigating back or going to the home screen, identified by an action code. - [Input key](https://docs.mobilerun.ai/api-reference/navigation/input-key.md): Sends a single Android key event to the device, identified by its key code. - [Input text](https://docs.mobilerun.ai/api-reference/navigation/input-text.md): Types the given text into the focused input field. Supports optionally clearing the field first and a stealth mode that emulates human typing speed and error rate on supported devices. - [Clear input](https://docs.mobilerun.ai/api-reference/navigation/clear-input.md): Clears the contents of the currently focused text input field. - [Take screenshot](https://docs.mobilerun.ai/api-reference/navigation/take-screenshot.md): Captures the device screen and returns it as a PNG image. An optional hideOverlay query parameter excludes the accessibility overlay from the capture. - [Swipe](https://docs.mobilerun.ai/api-reference/navigation/swipe.md): Swipes from a start coordinate to an end coordinate over the given duration in milliseconds. An optional stealth flag applies human-like jitter and curved paths on devices that support it. - [Tap by coordinates](https://docs.mobilerun.ai/api-reference/navigation/tap-by-coordinates.md): Taps the device screen at the given x/y coordinates. An optional stealth flag routes the tap through human-like input on devices that support it. - [UI state](https://docs.mobilerun.ai/api-reference/navigation/ui-state.md): Returns the current accessibility UI state of the device as a structured tree of on-screen elements. An optional filter query reduces the result to interactive elements. - [Get proxy connection state](https://docs.mobilerun.ai/api-reference/proxy/get-proxy-connection-state.md): Returns the device's current proxy connection state, including whether a proxy is connected and its protocol and name. - [Connect proxy](https://docs.mobilerun.ai/api-reference/proxy/connect-proxy.md): Routes the device's traffic through a SOCKS5 proxy supplied in the request body, replacing any existing connection. A smartIp option can be used to select an IP automatically; the legacy flat host/port/user/password fields remain supported. - [Disconnect proxy](https://docs.mobilerun.ai/api-reference/proxy/disconnect-proxy.md): Disconnects the device's active proxy connection and clears its stored proxy state. Returns successfully if no proxy is connected. - [Device fingerprint snapshot](https://docs.mobilerun.ai/api-reference/misc/device-fingerprint-snapshot.md): Returns a live snapshot of the device's spoofed identity, including model, display, identifiers, and carrier. Devices without fingerprint support return an unsupported-feature error. - [Enable kiosk (lock-task) mode](https://docs.mobilerun.ai/api-reference/misc/enable-kiosk-lock-task-mode.md): Locks the device to the package named in the request body using Android lock-task (kiosk) mode, preventing the user from leaving the app. - [Disable kiosk (lock-task) mode](https://docs.mobilerun.ai/api-reference/misc/disable-kiosk-lock-task-mode.md): Disables Android lock-task (kiosk) mode on the device, releasing it from the locked app. - [Get device language/locale](https://docs.mobilerun.ai/api-reference/misc/get-device-languagelocale.md): Returns the device's current language/locale as a BCP-47 locale string. - [Set device language/locale](https://docs.mobilerun.ai/api-reference/misc/set-device-languagelocale.md): Sets the device language/locale to the BCP-47 locale in the request body. An optional restart flag applies the change immediately by restarting the zygote instead of waiting for the next reboot. - [Get device location](https://docs.mobilerun.ai/api-reference/misc/get-device-location.md): Returns the device's current simulated GPS location as latitude and longitude. Devices without geo support return an unsupported-feature error. - [Set device location](https://docs.mobilerun.ai/api-reference/misc/set-device-location.md): Sets the device's simulated GPS location to the latitude and longitude in the request body. Devices without geo support return an unsupported-feature error. - [Reset the device location to default](https://docs.mobilerun.ai/api-reference/misc/reset-the-device-location-to-default.md): Clears any simulated GPS location and restores the device's default location behavior. Devices without geo support return an unsupported-feature error. - [Check if overlay is visible](https://docs.mobilerun.ai/api-reference/misc/check-if-overlay-is-visible.md): Returns whether the accessibility overlay is currently visible on the device. - [Set overlay visibility](https://docs.mobilerun.ai/api-reference/misc/set-overlay-visibility.md): Shows or hides the accessibility overlay on the device based on the visibility flag in the request body. - [Device time](https://docs.mobilerun.ai/api-reference/misc/device-time.md): Returns the device's current wall-clock time as an RFC 3339 timestamp. - [Get device timezone](https://docs.mobilerun.ai/api-reference/misc/get-device-timezone.md): Returns the device's current timezone identifier. Devices that do not support timezone control return an unsupported-feature error. - [Set device timezone](https://docs.mobilerun.ai/api-reference/misc/set-device-timezone.md): Sets the device timezone to the identifier in the request body. Devices that do not support timezone control return an unsupported-feature error. - [List devices](https://docs.mobilerun.ai/api-reference/devices/list-devices.md): Returns a paginated list of the user's devices along with pagination metadata. - [Provision a new device](https://docs.mobilerun.ai/api-reference/devices/provision-a-new-device.md): Requests a new device for the authenticated user from the device spec in the request body. Optional query parameters select the canonical device type, target country, billing mode, and a profile to use as the base spec; deprecated device-type aliases remain accepted only during the documented compat… - [Count claimed devices](https://docs.mobilerun.ai/api-reference/devices/count-claimed-devices.md): Returns the number of claimed devices for the user, broken down by device type. - [Get device info](https://docs.mobilerun.ai/api-reference/devices/get-device-info.md): Returns the current state and metadata for a single device, including its lifecycle state, type, stream URL, billing strategy, and timestamps. A stream token is included while the device is active. - [Terminate a device](https://docs.mobilerun.ai/api-reference/devices/terminate-a-device.md): Terminates the device and releases its resources. Termination can be scheduled for a future time or chained from a previous device via the request body, in which case a service key is required. - [Get capabilities for a specific device](https://docs.mobilerun.ai/api-reference/devices/get-capabilities-for-a-specific-device.md): Returns the set of capabilities supported by this device. For a legacy device this reflects the live instance's actual tools rather than its static type; for a core-managed device it is resolved from provider/pool configuration without guaranteeing a live instance. Used to determine which tools and… - [Update device name](https://docs.mobilerun.ai/api-reference/devices/update-device-name.md): Sets the display name for a device from the name in the request body and returns the updated device. - [Reboot a device](https://docs.mobilerun.ai/api-reference/devices/reboot-a-device.md): Triggers a reboot of the device. The device transitions through its reboot lifecycle and becomes ready again once the restart completes. - [Reset a device to a fresh state](https://docs.mobilerun.ai/api-reference/devices/reset-a-device-to-a-fresh-state.md): Resets the device back to a clean state, clearing installed apps and user data accumulated during the session. The device transitions through its reset lifecycle before becoming ready again. - [List tasks for a device](https://docs.mobilerun.ai/api-reference/devices/list-tasks-for-a-device.md): Returns a paginated list of tasks that have run on the device, along with pagination metadata. - [Wait for device to be ready](https://docs.mobilerun.ai/api-reference/devices/wait-for-device-to-be-ready.md): Blocks until the device reaches the ready state, then returns the same payload as Get device info. The call returns early with an error if the wait is cancelled or times out. - [List apps](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/list-apps.md): Retrieves a paginated list of apps with filtering and search capabilities - [Create a signed R2 upload URL for an app](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/create-a-signed-r2-upload-url-for-an-app.md): Creates or updates an app and returns pre-signed Cloudflare R2 upload URLs for each file - [Confirm successful app upload](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/confirm-successful-app-upload.md): Verifies the APK file exists in R2 and sets the app status to available. - [Mark app upload as failed](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/mark-app-upload-as-failed.md): Sets the app status to failed. - [Get the user’s storage usage](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/get-the-user’s-storage-usage.md): Returns the user’s total storage quota, bytes used, and remaining bytes — the reliable maximum size for the next upload. - [Get app by ID](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/get-app-by-id.md): Retrieves an app by its ID - [Delete uploaded app](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/delete-uploaded-app.md): Deletes an uploaded app by ID. Removes files from R2 storage and the database entry. - [List versions for an app](https://docs.mobilerun.ai/api-reference/apps-cloud-storage/list-versions-for-an-app.md): Retrieves all versions of an app visible to the user (own uploads + system versions) - [List credentials](https://docs.mobilerun.ai/api-reference/app-credentials/list-credentials.md): Returns a paginated list of all credentials belonging to the authenticated user across every package. Accepts standard pagination query parameters and responds with the credential items plus pagination metadata. - [List packages](https://docs.mobilerun.ai/api-reference/app-credentials/list-packages.md): Returns the names of all packages (apps) the authenticated owner has credentials grouped under. Use this to discover which `packageName` values are valid for the per-package credential routes. - [Initialize a new package/app](https://docs.mobilerun.ai/api-reference/app-credentials/initialize-a-new-packageapp.md): Creates a new package (identified by `packageName`) under which credentials can be grouped. Returns a conflict if a package with the same name already exists for the user. - [List credentials for a specific package](https://docs.mobilerun.ai/api-reference/app-credentials/list-credentials-for-a-specific-package.md): Returns all credentials stored under the given `packageName`. Each credential includes its name, secret path, and the list of fields it holds. - [Create a credential](https://docs.mobilerun.ai/api-reference/app-credentials/create-a-credential.md): Creates a credential under the given package with a `credentialName` and at least one field. Each field has a `fieldType` (email, username, password, api_token, phone_number, two_factor_secret, or backup_codes) and a value. - [Get a credential](https://docs.mobilerun.ai/api-reference/app-credentials/get-a-credential.md): Fetches a single credential by `packageName` and `credentialName`, including all of its stored fields. Returns not found if no matching credential exists. - [Delete a credential and all its fields](https://docs.mobilerun.ai/api-reference/app-credentials/delete-a-credential-and-all-its-fields.md): Permanently deletes the credential identified by `packageName` and `credentialName`, removing all of its fields. Returns the deleted credential. - [Delete a field from a credential](https://docs.mobilerun.ai/api-reference/app-credentials/delete-a-field-from-a-credential.md): Removes a single field of the given `fieldType` from the specified credential while leaving the credential itself intact. Returns the updated credential. - [Update the value of a credential field](https://docs.mobilerun.ai/api-reference/app-credentials/update-the-value-of-a-credential-field.md): Updates the value of an existing field on a credential, identified by `packageName`, `credentialName`, and `fieldType` in the path. The body carries the new value and returns the updated credential. - [Add a credential field](https://docs.mobilerun.ai/api-reference/app-credentials/add-a-credential-field.md): Adds a single field to an existing credential. The body specifies a `fieldType` (one of the supported field types) and its value. Returns a conflict if a field of that type already exists on the credential. - [List proxies](https://docs.mobilerun.ai/api-reference/proxies/list-proxies.md): Returns proxies owned by the calling tenant (the X-Owner-Id header, falling back to X-User-ID). Credentials are omitted from the list. - [Create a proxy](https://docs.mobilerun.ai/api-reference/proxies/create-a-proxy.md): Provisions a proxy of the requested type for the caller in the selected country. - [Get proxy by ID](https://docs.mobilerun.ai/api-reference/proxies/get-proxy-by-id.md): Returns the proxy identified by the path ID. The response includes the proxy's password. - [Delete a proxy](https://docs.mobilerun.ai/api-reference/proxies/delete-a-proxy.md): Deletes the proxy identified by the path ID and releases its provisioning. Returns 404 if no such proxy exists for the caller. - [List Proxy Connections](https://docs.mobilerun.ai/api-reference/proxies/list-proxy-connections.md): Returns the connection history recorded for this proxy, one item per connection (aggregated across the connection's lifetime). Supports filtering on every property plus ordering and pagination. Returns 503 when the connection-insights backend is disabled or unreachable. - [Latency check](https://docs.mobilerun.ai/api-reference/proxies/latency-check.md): Returns the most recent cached network-latency measurement for the proxy, sampled periodically by connecting through the proxy to a fixed target. `latency` is null when no measurement is available yet (e.g. the proxy is not active, or it has not been sampled since coming online). - [List available countries](https://docs.mobilerun.ai/api-reference/countries/list-available-countries.md): Lookup of countries that can be selected when creating a proxy. Each country lists the proxy types available there; without a ?type filter, every covered country is returned. - [List SOCKS5 users](https://docs.mobilerun.ai/api-reference/users/list-socks5-users.md): Returns SOCKS5 users owned by the caller. Passwords are omitted from the list. - [Create a SOCKS5 user](https://docs.mobilerun.ai/api-reference/users/create-a-socks5-user.md): Creates a SOCKS5 credential, optionally bound to a proxy for dedicated routing. Username and password are generated when omitted. - [Get a SOCKS5 user by ID](https://docs.mobilerun.ai/api-reference/users/get-a-socks5-user-by-id.md): Returns the SOCKS5 user identified by the path ID. The response includes the user's password. - [Delete a SOCKS5 user](https://docs.mobilerun.ai/api-reference/users/delete-a-socks5-user.md): Deletes the SOCKS5 user identified by the path ID, revoking its credentials and any proxy binding. Returns 404 if no such user exists for the caller. - [Update a SOCKS5 user](https://docs.mobilerun.ai/api-reference/users/update-a-socks5-user.md): Rebind the user to a different proxy (or detach it by passing null). - [List connections by SOCKS5 user](https://docs.mobilerun.ai/api-reference/users/list-connections-by-socks5-user.md): Returns the connection history recorded for this user, one item per connection (aggregated across the connection's lifetime). Supports filtering on every property plus ordering and pagination. Returns 503 when the connection-insights backend is disabled or unreachable. - [List phone numbers](https://docs.mobilerun.ai/api-reference/numbers/list-phone-numbers.md): Lists phone numbers owned by the authenticated user — both BYO (`user`) and provisioned (`mobilerun`) numbers. - [Purchase a phone number](https://docs.mobilerun.ai/api-reference/numbers/purchase-a-phone-number.md): Starts a Mobilerun Phone purchase for the authenticated owner. Accepted requests always return the same asynchronous envelope; poll GET /numbers/phones/{id} for its business state. `purpose` and `country` are mutually exclusive. - [List phone purposes](https://docs.mobilerun.ai/api-reference/numbers/list-phone-purposes.md): Lists the optional purposes currently available for a Mobilerun Phone. - [List dedicated-number countries](https://docs.mobilerun.ai/api-reference/numbers/list-dedicated-number-countries.md): Lists the countries currently offered for a dedicated Mobilerun Phone, with live stock status. Pass `country` as the `country` field on POST /numbers/phones. - [Get phone number by id](https://docs.mobilerun.ai/api-reference/numbers/get-phone-number-by-id.md): Retrieves a single phone number. - [Cancel a phone-number purchase or an active rental](https://docs.mobilerun.ai/api-reference/numbers/cancel-a-phone-number-purchase-or-an-active-rental.md): Cancels a Mobilerun Phone. The outcome depends on the number's current state: - [List messages (inbox + outbox) on a number](https://docs.mobilerun.ai/api-reference/numbers/list-messages-inbox-+-outbox-on-a-number.md): Returns SMS messages on the number, inbound and outbound, scoped to the authenticated user. Newest first. Messages stay with the number across device switches. - [List Tasks](https://docs.mobilerun.ai/api-reference/tasks/list-tasks.md): List tasks with optional filtering, sorting, and pagination. - [Run Task](https://docs.mobilerun.ai/api-reference/tasks/run-task.md): Create and dispatch a new agent task. Returns the task ID and device stream details. - [Run Streamed Task](https://docs.mobilerun.ai/api-reference/tasks/run-streamed-task.md): Create and dispatch a new agent task, returning an SSE stream of task events. Cancels the task if the client disconnects. - [Stop Task](https://docs.mobilerun.ai/api-reference/tasks/stop-task.md): Cancel a running task. Returns an error if the task is already in a terminal state. - [Send Message](https://docs.mobilerun.ai/api-reference/tasks/send-message.md): Send a message to a running agent task. The message ID is delivered via SSE (UserMessageEvent with action=queued). - [Attach Task](https://docs.mobilerun.ai/api-reference/tasks/attach-task.md): Attach to a running task and receive its events as an SSE stream. - [Get Task Status](https://docs.mobilerun.ai/api-reference/tasks/get-task-status.md): Get the status of a task. - [Get Task Trajectory](https://docs.mobilerun.ai/api-reference/tasks/get-task-trajectory.md): Get the trajectory of a task. - [Get Task Ui States](https://docs.mobilerun.ai/api-reference/tasks/get-task-ui-states.md): List all UI state URLs for a task. - [Get Task Ui State](https://docs.mobilerun.ai/api-reference/tasks/get-task-ui-state.md): Get a specific UI state by index. - [Get Task Screenshots](https://docs.mobilerun.ai/api-reference/tasks/get-task-screenshots.md): List all screenshot URLs for a task. - [Get Task Screenshot](https://docs.mobilerun.ai/api-reference/tasks/get-task-screenshot.md): Get a specific screenshot by index. - [Get Task](https://docs.mobilerun.ai/api-reference/tasks/get-task.md): Get full details of a task by ID. - [Get all LLM models](https://docs.mobilerun.ai/api-reference/models/get-all-llm-models.md): Get all LLM models - [List triggers](https://docs.mobilerun.ai/api-reference/triggers/list-triggers.md): Return a paginated list of triggers. Supports filtering by `activation` and `eventType`, free-text `search`, and ordering by name, createdAt, or updatedAt. - [Create a trigger](https://docs.mobilerun.ai/api-reference/triggers/create-a-trigger.md): Create a trigger with an activation type of `event`, `schedule`, or `custom`. Each type requires its own fields (e.g. `eventType` and optional `conditions` for events, `scheduleRule` and `timezone` for schedules, `customPayloadSchema` for custom triggers); mismatched fields are rejected. - [Get a trigger](https://docs.mobilerun.ai/api-reference/triggers/get-a-trigger.md): Fetch a single trigger by its ID, including its activation type and type-specific configuration. Returns 404 if no trigger matches. - [Delete a trigger](https://docs.mobilerun.ai/api-reference/triggers/delete-a-trigger.md): Delete a trigger by its ID. Returns 404 if no trigger matches. - [Update a trigger](https://docs.mobilerun.ai/api-reference/triggers/update-a-trigger.md): Partially update a trigger; all fields are optional. When `activation` is changed, the type-specific field rules are re-validated. Returns 404 if the trigger does not exist. - [Fire a custom trigger with payload](https://docs.mobilerun.ai/api-reference/triggers/fire-a-custom-trigger-with-payload.md): Invoke a custom trigger directly with an arbitrary JSON payload. - [List actions](https://docs.mobilerun.ai/api-reference/actions/list-actions.md): Return a paginated list of actions. Supports filtering by `service`, free-text `search`, and ordering by name, createdAt, or updatedAt. - [Create an action](https://docs.mobilerun.ai/api-reference/actions/create-an-action.md): Create a reusable action from a catalog entry (`catalogEntryId`), with an optional `params` object supplying the values for that entry's service method. Returns 400 if the params are invalid for the chosen catalog entry. - [Get an action](https://docs.mobilerun.ai/api-reference/actions/get-an-action.md): Fetch a single action by its ID, including its configured service, method, and params. Returns 404 if no action matches. - [Delete an action](https://docs.mobilerun.ai/api-reference/actions/delete-an-action.md): Delete an action by its ID. Returns 404 if no action matches. - [Update an action](https://docs.mobilerun.ai/api-reference/actions/update-an-action.md): Partially update an action's name, description, or params; all fields are optional. Returns 404 if the action does not exist. - [List available services](https://docs.mobilerun.ai/api-reference/actions/list-available-services.md): Return the names of the services that actions can be built against. Use these values to look up each service's allowed methods. - [List allowed methods for a service](https://docs.mobilerun.ai/api-reference/actions/list-allowed-methods-for-a-service.md): Return the methods allowed for the given service, each with its parameter definitions (name, type, whether required, description, and optional default/example). Returns 404 if the service is unknown. - [List action catalog entries](https://docs.mobilerun.ai/api-reference/action-catalog/list-action-catalog-entries.md): Return a paginated list of catalog entries — the service/method templates that actions are created from, each carrying its parameter schema. Supports filtering by `service`. - [Get a catalog entry](https://docs.mobilerun.ai/api-reference/action-catalog/get-a-catalog-entry.md): Fetch a single action catalog entry by its ID, including its service, method, and parameter schema. Returns 404 if no entry matches. - [List flows](https://docs.mobilerun.ai/api-reference/flows/list-flows.md): Return a paginated list of flows. Supports filtering by `triggerId`, `enabled`, one or more health `status` values (healthy, failing, blocked), `mine` (flows created by the calling actor), `createdBy` (flows created by a given actor id — mutually exclusive with `mine`), plus free-text `search` and o… - [Create a flow](https://docs.mobilerun.ai/api-reference/flows/create-a-flow.md): Create a flow that binds a trigger (`triggerId`) to an ordered list of actions, with at least one action required. Optional settings include target `deviceIds`, a cooldown (`cooldownSeconds`/`cooldownScope`), and webhook notifications on success or failure. - [Get a flow](https://docs.mobilerun.ai/api-reference/flows/get-a-flow.md): Fetch a single flow by its ID, including its trigger binding, configuration, and current status. Returns 404 if no flow matches. - [Delete a flow](https://docs.mobilerun.ai/api-reference/flows/delete-a-flow.md): Delete a flow by its ID. Returns 404 if no flow matches. - [Update a flow](https://docs.mobilerun.ai/api-reference/flows/update-a-flow.md): Partially update a flow's settings — name, trigger binding, enabled state, target devices, cooldown, or notifications; all fields are optional. Actions are managed through the flow-actions endpoints, not here. Returns 404 if the flow does not exist. - [Clone a flow](https://docs.mobilerun.ai/api-reference/flows/clone-a-flow.md): Create a copy of an existing flow, including its actions and settings. The optional body can override the new flow's `name` and target `deviceIds`. Returns 404 if the source flow does not exist. - [Dry-run a flow](https://docs.mobilerun.ai/api-reference/flows/dry-run-a-flow.md): Simulate this flow firing without storing events, enqueuing jobs, or consuming cooldown/rate-limit slots. - [List self-healing repair episodes](https://docs.mobilerun.ai/api-reference/flows/list-self-healing-repair-episodes.md) - [List actions for a flow](https://docs.mobilerun.ai/api-reference/flows/list-actions-for-a-flow.md): Return the ordered list of actions attached to a flow, including any nested child actions. Returns 404 if the flow does not exist. - [Replace all actions for a flow](https://docs.mobilerun.ai/api-reference/flows/replace-all-actions-for-a-flow.md): Replace a flow's entire action list with the supplied set (at least one required). Each action references an `actionId` and a unique `position`, and may include nested `children`, a `nameOverride`, param `overrides`, and a `continueOnError` flag. Returns 404 if the flow does not exist. - [Add an action to a flow](https://docs.mobilerun.ai/api-reference/flows/add-an-action-to-a-flow.md): Append a single action to a flow at the given `position`, optionally nesting it under a `parentFlowActionId` or supplying its own `children`. Supports a `nameOverride`, param `overrides`, and `continueOnError`. Returns 404 if the flow does not exist. - [Remove an action from a flow](https://docs.mobilerun.ai/api-reference/flows/remove-an-action-from-a-flow.md): Remove a single action from a flow by its `flowActionId`. Returns 404 if the flow or flow action does not exist. - [Unblock a flow](https://docs.mobilerun.ai/api-reference/flows/unblock-a-flow.md): Clear a flow's blocked status after fixing the underlying issue. Idempotent — safe to call on already-healthy flows. - [Simulate event matching (dry run)](https://docs.mobilerun.ai/api-reference/events/simulate-event-matching-dry-run.md): Simulate an event against all configured flows. Returns which flows would match and what actions would run, without storing the event or enqueuing jobs. - [Ingest an event](https://docs.mobilerun.ai/api-reference/events/ingest-an-event.md): Ingest an event for trigger evaluation. Returns immediately with 202 Accepted. - [List the app-event catalog](https://docs.mobilerun.ai/api-reference/app-events/list-the-app-event-catalog.md): Selectable app-based trigger events (e.g. app.whatsapp.message_received) with their predefined payload — served from the JSON definition registry (always in sync, no DB). - [Get one app-event catalog entry by type/name](https://docs.mobilerun.ai/api-reference/app-events/get-one-app-event-catalog-entry-by-typename.md): Fetch a single selectable app event by its appEventType (e.g. app.whatsapp.message_received). - [List structured app events](https://docs.mobilerun.ai/api-reference/app-events/list-structured-app-events.md): Structured, app-scoped events (e.g. app.whatsapp.message_received) derived from raw device notifications. Typed columns — not raw payloads (those stay in the event log). - [Get an app event](https://docs.mobilerun.ai/api-reference/app-events/get-an-app-event.md): Fetch a single structured app event by its ID, including its typed payload, source, and originating device. Returns 404 if no event matches. - [List flow executions](https://docs.mobilerun.ai/api-reference/executions/list-flow-executions.md): Return a paginated history of flow executions. Supports filtering by `flowId`, `triggerId`, `status`, and a `from`/`to` time range, plus free-text `search` and ordering by startedAt, finishedAt, or status. - [Get execution metrics](https://docs.mobilerun.ai/api-reference/executions/get-execution-metrics.md): Return aggregate execution metrics — total count, counts by status, average duration, and the last execution time. Can be scoped by `flowId`, `triggerId`, and a `from`/`to` time range. - [Get execution details](https://docs.mobilerun.ai/api-reference/executions/get-execution-details.md): Fetch a single flow execution by its ID, including its status, kind, result or error, and start/finish timestamps. Returns 404 if no execution matches. - [Abort a running or pending execution](https://docs.mobilerun.ai/api-reference/executions/abort-a-running-or-pending-execution.md): Signals the worker to stop the execution between steps and marks it cancelled. Idempotent-ish: already-terminal executions return 409. - [List your webhook subscriptions](https://docs.mobilerun.ai/api-reference/webhooks/list-your-webhook-subscriptions.md): Returns a paginated list of your webhook subscriptions, optionally filtered by status (active, failing, blocked, or disabled) and/or by `search` (a case-insensitive substring match against the URL or description). The response also includes per-status counts across all of your subscriptions. - [Register a webhook subscription](https://docs.mobilerun.ai/api-reference/webhooks/register-a-webhook-subscription.md): Creates a webhook subscription with a delivery URL and an optional list of event types to subscribe to (defaults to all when omitted). The response includes the generated signing secret, which is returned only once at creation time and cannot be retrieved later. - [Get a webhook subscription](https://docs.mobilerun.ai/api-reference/webhooks/get-a-webhook-subscription.md): Returns a single webhook subscription by id, including its URL, subscribed event types, state, and system-observed delivery health. The signing secret is never included. - [Delete a webhook subscription](https://docs.mobilerun.ai/api-reference/webhooks/delete-a-webhook-subscription.md): Deletes a webhook subscription so it stops receiving deliveries. Returns 204 No Content on success. - [Update a webhook subscription](https://docs.mobilerun.ai/api-reference/webhooks/update-a-webhook-subscription.md): Updates a webhook subscription. Any combination of the subscribed event types, state (ACTIVE or DISABLED), and description may be changed, and at least one field must be supplied. Setting state to ACTIVE re-enables a subscription that was auto-blocked after sustained delivery failures. - [Rotate signing secret](https://docs.mobilerun.ai/api-reference/webhooks/rotate-signing-secret.md): Generates a new signing secret for the webhook subscription and returns it once in the response. The previous secret is replaced immediately, so any signature verification on your endpoint must be updated to use the new value. - [Send a one-shot test delivery](https://docs.mobilerun.ai/api-reference/webhooks/send-a-one-shot-test-delivery.md): Sends a single test payload to the webhook subscription URL to verify connectivity. The response reports whether the attempt succeeded along with the returned HTTP status code or error, if any. - [List subscribable event types per source](https://docs.mobilerun.ai/api-reference/webhook-event-types/list-subscribable-event-types-per-source.md): Returns the catalog of event types that webhook subscriptions can subscribe to, grouped by source. Use the returned type identifiers as the `eventTypes` values when creating or updating a webhook. - [List deliveries across all your webhooks](https://docs.mobilerun.ai/api-reference/webhook-deliveries/list-deliveries-across-all-your-webhooks.md): Returns a paginated feed of webhook deliveries across all of your subscriptions, with the originating endpoint URL included on each record. Results can be filtered by delivery status (pending, success, skipped, or dead), by a `since` timestamp, and by `eventId` (exact match against the originating e… - [Get delivery statistics](https://docs.mobilerun.ai/api-reference/webhook-deliveries/get-delivery-statistics.md): Returns aggregate delivery statistics across all of your webhooks, including the total count, a breakdown by status (pending, success, skipped, dead), and the overall success rate. An optional `since` timestamp narrows the reporting window. - [List deliveries for a webhook](https://docs.mobilerun.ai/api-reference/webhook-deliveries/list-deliveries-for-a-webhook.md): Returns a paginated list of deliveries for a single webhook subscription, identified by its id. Each record reports the event, delivery status, attempt count, and the last response code or error. Results can be filtered by `eventId` (exact match against the originating event id). - [Get a delivery with its attempts](https://docs.mobilerun.ai/api-reference/webhook-deliveries/get-a-delivery-with-its-attempts.md): Returns a single delivery for a webhook subscription along with the full list of captured attempt records. Each attempt includes the request URL, method, headers and body, whether it was signed, and the response status, headers, and snippet. - [List notification event types](https://docs.mobilerun.ai/api-reference/notifications/list-notification-event-types.md): Returns the catalog of notifiable event types grouped by source category. Each event lists its type identifier, label, and description, which can be referenced when muting event types in notification preferences. - [Get notification preferences](https://docs.mobilerun.ai/api-reference/notifications/get-notification-preferences.md): Returns your current notification preferences, expressed as the list of event types you have muted. An empty list means notifications are enabled for all notifiable event types. - [Update notification preferences](https://docs.mobilerun.ai/api-reference/notifications/update-notification-preferences.md): Replaces your set of muted event types with the supplied list. Any unknown or non-notifiable types are dropped, and the response returns the muted types that were actually stored. - [Overview](https://docs.mobilerun.ai/framework/overview.md): Mobilerun is a powerful framework that enables you to control Android and iOS devices through intelligent LLM agents. Build sophisticated mobile automation workflows with natural language commands. - [Quickstart](https://docs.mobilerun.ai/framework/quickstart.md): Get up and running with Mobilerun quickly and effectively - [Vision Mode](https://docs.mobilerun.ai/framework/features/vision.md): Screenshots for agents, and how screen coordinates stay accurate - [Structured Output](https://docs.mobilerun.ai/framework/features/structured-output.md): Extract structured data from device interactions using Pydantic models - [Credential Management](https://docs.mobilerun.ai/framework/features/credentials.md): Extend Mobilerun with secure credential management - [App Instruction Cards](https://docs.mobilerun.ai/framework/features/app-cards.md): App cards give your agents app-specific knowledge to operate apps more effectively. They automatically load when agents work with specific apps, improving success rates for navigation and complex tasks. - [Custom Tools](https://docs.mobilerun.ai/framework/features/custom-tools.md): Extend Mobilerun with custom Python functions - [Custom Variables](https://docs.mobilerun.ai/framework/features/custom-variables.md): Pass dynamic data to your Mobilerun agents using the `variables` parameter. Variables enable parameterized workflows and reusable automation. - [Tracing](https://docs.mobilerun.ai/framework/features/tracing.md): Configure Phoenix/Langfuse tracing and trajectory recording - [Telemetry](https://docs.mobilerun.ai/framework/features/telemetry.md): Configure anonymous telemetry - [Overview](https://docs.mobilerun.ai/framework/guides/overview.md) - [Device Setup](https://docs.mobilerun.ai/framework/guides/device-setup.md): Setting up Android and iOS devices for Mobilerun automation - [CLI Usage](https://docs.mobilerun.ai/framework/guides/cli.md): Command-line interface for controlling devices with natural language - [Quickstart with Docker](https://docs.mobilerun.ai/framework/guides/docker.md): Get up and running with Mobilerun in Docker quickly and effectively - [Architecture](https://docs.mobilerun.ai/framework/concepts/architecture.md): Understanding the Mobilerun multi-agent system for device automation. - [Shared State](https://docs.mobilerun.ai/framework/concepts/shared-state.md): MobileAgentState - the coordination mechanism for multi-agent workflow communication. - [Event Streaming](https://docs.mobilerun.ai/framework/concepts/events-and-workflows.md): How to consume real-time events from MobileAgent execution. - [Prompt Templates](https://docs.mobilerun.ai/framework/concepts/prompts.md): Customizing agent behavior with Jinja2 prompt templates. - [Reference](https://docs.mobilerun.ai/framework/sdk/reference.md): Complete API reference for Mobilerun components and tools - [MobileAgent](https://docs.mobilerun.ai/framework/sdk/droid-agent.md) - [AndroidDriver](https://docs.mobilerun.ai/framework/sdk/adb-tools.md) - [IOSDriver](https://docs.mobilerun.ai/framework/sdk/ios-tools.md) - [DeviceDriver Base Class](https://docs.mobilerun.ai/framework/sdk/base-tools.md) - [Configuration](https://docs.mobilerun.ai/framework/sdk/configuration.md): Complete MobileAgent configuration guide - all parameters, minimal examples ## OpenAPI Specs - [tools](https://docs.mobilerun.ai/api-reference/phones/tools.yaml) - [mobilerun-numbers](https://docs.mobilerun.ai/api-reference/mobilerun-numbers.yaml) - [workflows](https://docs.mobilerun.ai/api-reference/workflows.yaml) - [webhooks](https://docs.mobilerun.ai/api-reference/webhooks.yaml) - [tasks](https://docs.mobilerun.ai/api-reference/tasks.yaml) - [phones](https://docs.mobilerun.ai/api-reference/phones.yaml) - [mobilerun-proxy](https://docs.mobilerun.ai/api-reference/mobilerun-proxy.yaml)