# Cloud Phone Local API

Manage cloud phone instances through the MoreLogin Local API.

**Base URL**: `http://127.0.0.1:40000`

The Local API runs on your machine alongside the MoreLogin desktop app.
All requests must originate from the same machine.


Version: 2026-09-05

## Servers

MoreLogin  Local endpoint
```
http://127.0.0.1:40000
```

## Security

## Download OpenAPI description

 - [Cloud Phone Local API](https://guide.morelogin.com/_bundle/API%20Reference/Cloud%20Phone/local-api.yaml)

## Cloud Phone Management

 - [POST /api/cloudphone/page](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/pageusingpost.md): List the Cloud Phones visible to the authenticated team, page by page. - **Effect**: none. Read-only. Safe to retry with bounded backoff. - **Note**: phones from every provider are returned. Passwords
 - [POST /api/cloudphone/create](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/createusingpost.md): Purchase and provision one or more Cloud Phones. - **Preconditions**: the plan must have remaining capacity and the daily creation quota must not be exhausted. `country`, `timezone` and `language` are
 - [POST /api/cloudphone/powerOn](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/poweronusingpost.md): Start a Cloud Phone. - **Preconditions**: the phone must currently be powered off. It is rejected when the SKU is delisted or under maintenance, when the phone is held by another member, while its pro
 - [POST /api/cloudphone/powerOff](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/poweroffusingpost.md): Stop a Cloud Phone. - **Preconditions**: the phone must be booting or powered on. It cannot be stopped while held by another member, or while a one-click new device, restart or reset is in progress. -
 - [POST /api/cloudphone/edit/batch](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/editbatchusingpost.md): Update the configuration of one or more Cloud Phones. - **Preconditions**: the phones must belong to the team. Region, language and coordinate values are validated per provider, exactly as on create.
 - [POST /api/cloudphone/setProxy](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/setproxy.md): Bind a proxy to one or more Cloud Phones. - **Preconditions**: provide at least one of `ids` or `uniqueIds`. The phones must belong to your team; they do **not** need to be powered on. A supplied `pro
 - [POST /api/cloudphone/delete/batch](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/deleteusingpost.md): Release one or more Cloud Phones. - **Preconditions**: the phones must not be mid-transfer and the team must have no unpaid order for them. The phone does not have to be powered off. - **Effect**: the
 - [POST /api/cloudphone/newMachine](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/onenewusingpost.md): Replace a Cloud Phone's device identity in place (one-click new device). - **Preconditions**: the phone must be powered on and not held by another member. A supplied brand and model must be one the ph
 - [POST /api/cloudphone/info](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/infousingpost.md): Return the full detail of a single Cloud Phone, including group and tag names. - **Effect**: none. Read-only. Safe to retry with bounded backoff. - **Use**: the primary status endpoint for asynchronou
 - [POST /api/cloudphone/queryByAndroidId](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/querybyandroidid.md): Look up a Cloud Phone by the Android ID reported by the device. - **Effect**: none. Read-only. Safe to retry with bounded backoff. The phone does not need to be powered on. - **Returns**: the same det
 - [POST /api/cloudphone/enableRoot](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/enableroot.md): Turn the global ROOT switch on or off for a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud devices; on other providers th
 - [POST /api/cloudphone/screenCap](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/screencap.md): Capture the Cloud Phone screen and return a download URL. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud devices only; other providers
 - [POST /api/cloudphone/screenCapBase64](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/screencapbase64.md): Capture the Cloud Phone screen and return the image inline as base64. - **Preconditions**: the phone must be powered on and not held by another member. **Supported on WUIN devices only** — every other
 - [POST /api/cloudphone/brand/models](https://guide.morelogin.com/api-reference/cloud-phone/local-api/cloud-phone-management/listcloudphonebrandsandmodelslocal.md): List the device brands and models a Cloud Phone SKU supports. - **Effect**: none. Read-only. Safe to retry with bounded backoff. No Cloud Phone is involved. - **Use**: pick a valid `brand` and `modelI
## Live Streaming

 - [POST /api/cloudphone/live/start](https://guide.morelogin.com/api-reference/cloud-phone/local-api/live-streaming/startcloudphonelivestreaminglocal.md): Start live streaming an uploaded MP4 on a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member, and its provider must support live streaming — WUIN and ArmClou
 - [POST /api/cloudphone/live/status](https://guide.morelogin.com/api-reference/cloud-phone/local-api/live-streaming/getcloudphonelivestreamingstatuslocal.md): Report whether a Cloud Phone is currently live streaming. - **Preconditions**: the phone must belong to your team and its provider must support live streaming. Unlike start and stop, this does **not**
 - [POST /api/cloudphone/live/end](https://guide.morelogin.com/api-reference/cloud-phone/local-api/live-streaming/stopcloudphonelivestreaminglocal.md): Stop live streaming on a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member, and its provider must support live streaming. **Whether a stream is actually run
## Account & Quotas

 - [GET /api/balance](https://guide.morelogin.com/api-reference/cloud-phone/local-api/account-and-quotas/getaccountandcloudphonequotaslocal.md): Return the team's wallet balance and Cloud Phone usage allowances. - **Preconditions**: the calling member needs the cost permission. The wallet is looked up by team, so the figures are team-wide rath
## ADB

 - [POST /api/cloudphone/updateAdb](https://guide.morelogin.com/api-reference/cloud-phone/local-api/adb/updateadbusingpost.md): Turn ADB access on or off for one or more Cloud Phones. - **Preconditions**: only phones whose SKU supports ADB are considered; if none of the supplied phones qualifies, the call is rejected. Phones t
 - [POST /api/cloudphone/batchAdbInfo](https://guide.morelogin.com/api-reference/cloud-phone/local-api/adb/batchadbinfo.md): Fetch ADB connection details for up to 200 Cloud Phones. - **Preconditions**: the phones must belong to your team. They do **not** need to be claimed by you. Details are only fetched for phones that a
 - [POST /api/cloudphone/exeCommand](https://guide.morelogin.com/api-reference/cloud-phone/local-api/adb/executeshellcommand.md): Run a shell command on a Cloud Phone and return its output. - **Preconditions**: the phone must be powered on and not held by another member. - **Effect**: entirely determined by the command. MoreLogi
## Files

 - [POST /api/cloudphone/uploadFile](https://guide.morelogin.com/api-reference/cloud-phone/local-api/files/fileuploadusing.md): Upload a local file straight to a Cloud Phone (legacy multipart flow). - **Preconditions**: the phone must be powered on and not held by another member. The upload code obtained from the signed-URL st
 - [POST /api/cloudphone/upload/file/signedUrl](https://guide.morelogin.com/api-reference/cloud-phone/local-api/files/getcloudphoneuploadsignedurllocal.md): Request a pre-signed URL for uploading a file that a Cloud Phone will receive. - **Preconditions**: the phone must be powered on and not held by another member. - **Completion**: synchronous. **The pr
 - [POST /api/cloudphone/upload/file](https://guide.morelogin.com/api-reference/cloud-phone/local-api/files/uploadcloudphonefilebyurllocal.md): Register an uploaded file so the Cloud Phone downloads it. - **Preconditions**: the phone must be powered on and not held by another member, and **the object must already exist at the URL**. Live-stre
 - [POST /api/cloudphone/upload/file/result](https://guide.morelogin.com/api-reference/cloud-phone/local-api/files/getcloudphoneuploadresultlocal.md): Poll the status of a file upload to a Cloud Phone. - **Values**: `0` uploading, `1` succeeded, `2` failed. - **Empty result**: when the `fileId` cannot be found the call still succeeds but `data` is n
 - [POST /api/cloudphone/download](https://guide.morelogin.com/api-reference/cloud-phone/local-api/files/downloadcloudphonefilelocal.md): Download a file from a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. - **Effect**: the service scans the parent directory first and only then starts th
 - [POST /api/cloudphone/download/result](https://guide.morelogin.com/api-reference/cloud-phone/local-api/files/getcloudphonedownloadresultlocal.md): Poll the status of a file download from a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. Pass the `downId` returned by the download request. - **Values*
 - [POST /api/cloudphone/setKeyBox](https://guide.morelogin.com/api-reference/cloud-phone/local-api/files/setcloudphonekeyboxlocal.md): Install a keybox certificate on a Cloud Phone. - **Preconditions**: `filePath` must point to an `.xml` file, and the phone must be powered on and not held by another member. - **Effect**: hands the ce
## Apps

 - [POST /api/cloudphone/app/install](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/installcloudphoneapplocal.md): Install an app from the team app library onto a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. The app must already exist in the team library or the pub
 - [POST /api/cloudphone/app/page](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/listcloudphoneappslocal.md): List apps that can be installed on a Cloud Phone. - **Effect**: none. Read-only. Safe to retry with bounded backoff. No Cloud Phone is involved, so the phone does not need to be running. - **Contents*
 - [POST /api/cloudphone/team/app/page](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/listteamcloudphoneappslocal.md): List your team's own app library, including pre-installed apps. - **Effect**: none. Read-only. Safe to retry with bounded backoff. - **Contents**: a different source from `/cloudphone/app/page` — thes
 - [POST /api/cloudphone/app/installedList](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/listinstalledcloudphoneappslocal.md): List the apps currently installed on a Cloud Phone. - **Preconditions**: the phone must belong to your team. Unlike most Cloud Phone commands this does **not** require the phone to be claimed by you,
 - [POST /api/cloudphone/app/start](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/startcloudphoneapplocal.md): Launch an installed app on a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. - **Completion**: the response confirms the command reached the provider, no
 - [POST /api/cloudphone/app/restart](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/restartcloudphoneapplocal.md): Restart an app on a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. **Whether the app is installed is not checked** — a package that is absent simply doe
 - [POST /api/cloudphone/app/stop](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/stopcloudphoneapplocal.md): Stop a running app on a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. The app is not checked for being installed or running. - **Completion**: the resp
 - [POST /api/cloudphone/app/uninstall](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/uninstallcloudphoneapplocal.md): Uninstall an app from a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. - **Effect**: dispatches the uninstall and updates the installation record for th
 - [POST /api/cloudphone/app/openRoot](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/appopenroot.md): Grant ROOT to specific app packages on a Cloud Phone. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud devices; on other providers the c
 - [POST /api/cloudphone/app/setHideAccessibilityApp](https://guide.morelogin.com/api-reference/cloud-phone/local-api/apps/setcloudphoneaccessibilityapphiddenlocal.md): Hide apps from the Android accessibility service list on one or more Cloud Phones. - **Preconditions**: 1 to 100 phone ids and 1 to 100 package names. The phones must belong to your team, but they do
## Schedules

 - [POST /api/cloudphone/rpa/template/market/page](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/listmarketplacerpatemplateslocal.md): List RPA templates from the public marketplace. - **Effect**: none. Read-only. Safe to retry with bounded backoff. Templates are global, not team-scoped. - **Localization**: titles and descriptions ar
 - [POST /api/cloudphone/rpa/template/personal/page](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/listpersonalrpatemplateslocal.md): List the RPA templates your team created. - **Effect**: none. Read-only. Safe to retry with bounded backoff. - **Contents**: a different store from the marketplace, scoped to your team, with plain sin
 - [POST /api/cloudphone/rpa/task/page](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/listcloudphonerpataskslocal.md): List RPA schedules for the team, page by page. - **Effect**: none. Read-only. Safe to retry with bounded backoff. - **Use**: `taskState` on each schedule is the completion signal for `/cloudphone/rpa/
 - [POST /api/cloudphone/rpa/task/save](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/savecloudphonerpatasklocal.md): Save cloud phone scheduled task. templateParameter Parameter Specification 1. **Parameter Source** Parameter keys must be extracted from the `parameter` field returned by the following APIs: - Get ma
 - [POST /api/cloudphone/rpa/onceTask/save](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/savecloudphonerpaonetimetasklocal.md): Create a one-time scheduled task for a cloud phone using a marketplace or personal RPA template. --- ### `templateParameter` Reference The `templateParameter` field accepts a **JSON-escaped string*
 - [POST /api/cloudphone/rpa/task/cancel](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/cancelcloudphonerpatasklocal.md): Cancel an RPA schedule and every execution of it that has not finished. - **Preconditions**: the schedule must exist in the team. A finished schedule cannot be cancelled; an already cancelled one retu
 - [POST /api/cloudphone/rpa/subTask/page](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/listcloudphonerpasubtaskslocal.md): List individual RPA executions, page by page. - **Effect**: none. Read-only. Safe to retry with bounded backoff. - **Status values**: `taskState` is `0` waiting, `1` running, `2` queued, `3` succeeded
 - [POST /api/cloudphone/rpa/subTask/detail/{id}](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/getcloudphonerpasubtaskdetaillocal.md): Return the detail of a single RPA execution. - **Preconditions**: the execution must belong to your team. The call fails if the execution, its schedule, or its Cloud Phone no longer exists. - **Effect
 - [POST /api/cloudphone/rpa/subTask/cancel/{id}](https://guide.morelogin.com/api-reference/cloud-phone/local-api/schedules/cancelcloudphonerpasubtasklocal.md): Cancel a single RPA execution without touching its schedule. - **Preconditions**: the execution record must exist in the team. A finished one cannot be cancelled; an already cancelled one returns succ
## Touch

 - [POST /api/cloudphone/touch/click](https://guide.morelogin.com/api-reference/cloud-phone/local-api/touch/touchclick.md): Tap a point on the Cloud Phone screen. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud only; other providers reject the call. - **Coord
 - [POST /api/cloudphone/touch/doubleClick](https://guide.morelogin.com/api-reference/cloud-phone/local-api/touch/touchdoubleclick.md): Double-tap a point on the Cloud Phone screen. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud only; other providers reject the call. -
 - [POST /api/cloudphone/touch/longClick](https://guide.morelogin.com/api-reference/cloud-phone/local-api/touch/touchlongclick.md): Press and hold a point on the Cloud Phone screen. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud only; other providers reject the call
 - [POST /api/cloudphone/touch/swipe](https://guide.morelogin.com/api-reference/cloud-phone/local-api/touch/touchswipe.md): Swipe between two points on the Cloud Phone screen. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud only; other providers reject the ca
 - [POST /api/cloudphone/touch/drag](https://guide.morelogin.com/api-reference/cloud-phone/local-api/touch/touchdrag.md): Drag between two points on the Cloud Phone screen. - **Preconditions**: the phone must be powered on and not held by another member. Supported on WUIN and ArmCloud only; other providers reject the cal
## Monthly Billing

 - [GET /api/cloudphone/monthly/skus](https://guide.morelogin.com/api-reference/cloud-phone/local-api/monthly-billing/listmonthlycloudphoneskus.md): Return the monthly Cloud Phone products currently available to the calling team. - **Effect**: none. The call does not reserve capacity or charge the wallet. Read-only. Safe to retry with bounded back
 - [POST /api/cloudphone/monthly/activate](https://guide.morelogin.com/api-reference/cloud-phone/local-api/monthly-billing/activatemonthlycloudphones.md): Purchase and activate one to ten monthly Cloud Phones for 30 days. - **Billing warning**: **this operation charges the team wallet.** - **Permission**: the calling member must have **Fees / Payment Ma
