# Локальний API хмарного телефону

Керуйте екземплярами хмарних телефонів через локальний API MoreLogin. Базова URL-адреса: http://127.0.0.1:40000. Локальний API працює на вашому комп'ютері разом із настільним додатком MoreLogin. Усі запити повинні надходити з того самого комп'ютера.

Version: 1.0.0

## Servers

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

## Security

## Download OpenAPI description

[Локальний API хмарного телефону](https://guide.morelogin.com/_bundle/@l10n/uk/API%20Reference/Cloud%20Phone/local-api.yaml)

## Cloud Phone Management

### Отримання списку профілів хмарних телефонів

 - [POST /api/cloudphone/page](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/pageusingpost.md)

### Створення профілю хмарного телефону

 - [POST /api/cloudphone/create](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/createusingpost.md)

### Стартап-хмарний телефон

 - [POST /api/cloudphone/powerOn](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/poweronusingpost.md)

### Вимкніть хмарний телефон

 - [POST /api/cloudphone/powerOff](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/poweroffusingpost.md)

### Змінення профілю хмарного телефону

 - [POST /api/cloudphone/edit/batch](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/editbatchusingpost.md)

### Налаштування проксі хмарного телефону

 - [POST /api/cloudphone/setProxy](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/setproxy.md): Налаштування параметрів проксі для одного або кількох хмарних телефонів. Підтримується безпосереднє прив'язування proxyId або додавання/зміна детальних параметрів проксі. Формат даних запиту ідентичний конфігурації проксі браузера, налаштування застосовуються миттєво.

### Видалити профіль хмарного телефону

 - [POST /api/cloudphone/delete/batch](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/deleteusingpost.md)

### Новий хмарний телефон одним клацанням миші

 - [POST /api/cloudphone/newMachine](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/onenewusingpost.md)

### Деталі хмарного телефону

 - [POST /api/cloudphone/info](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/infousingpost.md)

### Отримання відомостей про хмарний телефон за AndroidId

 - [POST /api/cloudphone/queryByAndroidId](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/querybyandroidid.md): Запит ID хмарного телефону, пов'язаного з певним androidId в поточній команді. Повертає ID хмарного телефону, якщо його знайдено.

### Увімкнення або вимкнення глобального ROOT

 - [POST /api/cloudphone/enableRoot](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/enableroot.md): Увімкнення або вимкнення глобальних прав ROOT на рівні системи на одному хмарному телефоні.

### Знімок екрана хмарного телефону

 - [POST /api/cloudphone/screenCap](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/screencap.md): Отримання знімка екрана в реальному часі для вказаного екземпляра хмарного телефону. Підтримується повернення тимчасового підписаного URL-адреса з часом закінчення терміну дії.

### Знімок екрану хмарного телефону (відповідь base64)

 - [POST /api/cloudphone/screenCapBase64](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/screencapbase64.md): Отримати знімок екрану в реальному часі вказаного екземпляра хмарного телефону. Наразі підтримуються лише Android 12 та Android 15.

### Запит щодо списку марок та моделей

 - [POST /api/cloudphone/brand/models](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/cloud-phone-management/paths/~1api~1cloudphone~1brand~1models/post.md): Запит списку доступних брендів та моделей для заданої версії Android

## ADB

### Оновити стан ADB хмарного телефону

 - [POST /api/cloudphone/updateAdb](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/adb/updateadbusingpost.md)

### Пакетний запит інформації ADB

 - [POST /api/cloudphone/batchAdbInfo](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/adb/batchadbinfo.md): Пакетний запит інформації про підключення ADB хмарного телефону.
- Список envIds підтримує максимум 200 елементів.
- Підтримуються змішані запити для провайдерів wuin та arm; API всередині групує за провайдером і об'єднує результати.
- Інформація ADB доступна лише тоді, коли телефон увімкнено (envStatus >= 4); її не можна запитати, коли він вимкнений або завантажується.

### Виконати команду оболонки

 - [POST /api/cloudphone/exeCommand](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/adb/executeshellcommand.md)

## Files

### Завантаження файлів

 - [POST /api/cloudphone/uploadFile](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/files/fileuploadusing.md)

### Отримати тимчасову URL-адресу файлу для завантаження

 - [POST /api/cloudphone/upload/file/signedUrl](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1upload~1file~1signedurl/post.md): Завантажте тимчасові файли через цей інтерфейс, і система автоматично видалить їх через 7 днів

### Завантажте файл для URL-адреси

 - [POST /api/cloudphone/upload/file](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1upload~1file/post.md)

### Результат завантаження файлу

 - [POST /api/cloudphone/upload/file/result](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1upload~1file~1result/post.md)

### Завантаження файлу

 - [POST /api/cloudphone/download](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1download/post.md)

### Результат завантаження файлу

 - [POST /api/cloudphone/download/result](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1download~1result/post.md)

### Встановити скриньку з ключами

 - [POST /api/cloudphone/setKeyBox](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/files/paths/~1api~1cloudphone~1setkeybox/post.md)

## Apps

### Встановіть додаток на хмарний телефон

 - [POST /api/cloudphone/app/install](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1install/post.md)

### Отримати список програм APP

 - [POST /api/cloudphone/app/page](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1page/post.md): Отримати список програм APP

### Список додатків команди

 - [POST /api/cloudphone/team/app/page](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1team~1app~1page/post.md): Отримання списку додатків команди.

### Запит списку встановлених програм

 - [POST /api/cloudphone/app/installedList](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1installedlist/post.md): Запит списку встановлених програм на хмарному телефоні

### Запустити програму

 - [POST /api/cloudphone/app/start](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1start/post.md): Запустіть встановлену програму на хмарному телефоні

### Перезапустіть ПРОГРАМУ

 - [POST /api/cloudphone/app/restart](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1restart/post.md)

### Зупинити ПРОГРАМУ

 - [POST /api/cloudphone/app/stop](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1stop/post.md)

### Видалити ПРОГРАМУ

 - [POST /api/cloudphone/app/uninstall](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1uninstall/post.md)

### Увімкнення ROOT для додатка

 - [POST /api/cloudphone/app/openRoot](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/appopenroot.md): Увімкнення прав ROOT для конкретного пакета додатка на одному хмарному телефоні.

### Приховати додаток для спеціальних можливостей

 - [POST /api/cloudphone/app/setHideAccessibilityApp](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/apps/paths/~1api~1cloudphone~1app~1sethideaccessibilityapp/post.md): Підтримує лише Android 13, Android 14 та Android 15A

## Schedules

### Отримати шаблони сторінок ринку

 - [POST /api/cloudphone/rpa/template/market/page](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1template~1market~1page/post.md): Шаблон ринку розкладів запитів, назва шаблону підтримує нечіткий запит

### Отримати особисті шаблони сторінок

 - [POST /api/cloudphone/rpa/template/personal/page](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1template~1personal~1page/post.md): Шаблон ринку розкладів запитів, назва шаблону підтримує нечіткий запит

### Отримати список розкладів

 - [POST /api/cloudphone/rpa/task/page](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1task~1page/post.md)

### Створення розкладу

 - [POST /api/cloudphone/rpa/task/save](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1task~1save/post.md): Зберегти заплановане завдання хмарного телефону.

templateParameter Parameter Specification
 1. __Parameter Source__
Parameter keys must be extracted from the parameter field returned by the following APIs:
- Get market template pages
- Get Personal template pages
2.  __Data Structure__
- Submit parameters in JSON object format: {"key1": "value1", "key2": "value2"}
- Final parameter values must be deserialized according to business logic before use
3. __Common Type Parameters__
For the following parameter types, pass values directly in the corresponding format:
- string: {"name": "John"}
- decimal / number: {"amount": 100.50}
- boolean: {"enabled": true}
4. __Media Type Parameters__
For media parameters such as image (pic) or video (video), in addition to basic information, a fixed key "__Extra__" must be included. Example format:
json
{
    "__Extra__": {
        "pic": {
            "name": "pic_name",
            "size": 204800
        },
        "video": {
            "name": "video_name",
            "size": 204800000
        }
    },
    "pic": "https://get.morelogin.com/prod/cloudPhoneTaskVideo/1556061681934880/1c62314c7e2b4d298abe8d5452d7c050/test.png",
    "video": "https://get.morelogin.com/pre/cloudPhoneTaskVideo/1542431036481556/4c4fed83685345ae8f1505fbe0c2f123/baby.mp4"
}

5. __Parameter Configuration Example__
The following example demonstrates how to configure the templateParameter parameter when saving a plan using a market template:
- __Step 1: Retrieve Template Parameters__
Call the Market Template API:
GET /api/cloudphone/rpa/template/market/page
Extract the parameter field from the response, for example:

json
"parameter": "{\"videoDownloadUrl\":{\"type\":\"video\",\"extra\":{\"name\":\"Select Video\",\"type\":\"video\",\"required\":true,\"defaultValue\":{\"enabled\":false},\"index\":1,\"sizeLimit\":{\"value\":200,\"unit\":\"MB\"},\"formatType\":[\"mp4\",\"mov\"]}},\"videoDescription\":{\"type\":\"string\",\"extra\":{\"name\":\"Video Caption\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":1000},\"multiline\":{\"enabled\":true,\"value\":3},\"defaultValue\":{\"enabled\":false},\"index\":2}},\"coverUrl\":{\"type\":\"image\",\"extra\":{\"name\":\"Cover Image\",\"type\":\"image\",\"required\":false,\"defaultValue\":{\"enabled\":false},\"index\":3,\"sizeLimit\":{\"value\":5,\"unit\":\"MB\"},\"formatType\":[\"jpg\",\"png\",\"jpeg\"]}},\"enableAIGC\":{\"type\":\"boolean\",\"extra\":{\"name\":\"AI Label\",\"type\":\"boolean\",\"required\":false,\"defaultValue\":{\"enabled\":false},\"index\":4}},\"productId\":{\"type\":\"string\",\"extra\":{\"name\":\"Product ID\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":50},\"placeholder\":\"Product ID only supports digits, with a maximum of 50 characters.\",\"defaultValue\":{\"enabled\":false},\"index\":5}},\"productTitle\":{\"type\":\"string\",\"extra\":{\"name\":\"Product Title\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":30},\"defaultValue\":{\"enabled\":false},\"index\":6}},\"getLeads\":{\"type\":\"boolean\",\"extra\":{\"name\":\"Get Leads\",\"type\":\"boolean\",\"required\":false,\"defaultValue\":{\"enabled\":false},\"index\":7}},\"comment\":{\"type\":\"string\",\"extra\":{\"name\":\"Comment\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":200},\"multiline\":{\"enabled\":true,\"value\":3},\"defaultValue\":{\"enabled\":false},\"index\":8}}}"


- __Step 2: Build the Parameter JSON__
Construct the JSON object according to the parameter requirements:
json
{
  "__Extra__": {
    "videoDownloadUrl": {
      "name": "video_name.mp4",
      "size": 204800000
    }
  },
  "videoDownloadUrl": "https://get.morelogin.com/pre/cloudPhoneTaskVideo/1542431036481556/4c4fed83685345ae8f1505fbe0c2f123/baby.mp4"
}

- __Step 3: Escape the JSON String__
Convert the JSON object into an escaped string format:
json
"{\"__Extra__\": {\"videoDownloadUrl\": {\"name\": \"video_name.mp4\",\"size\": 204800000}},\"videoDownloadUrl\": \"https://get.morelogin.com/pre/cloudPhoneTaskVideo/1542431036481556/4c4fed83685345ae8f1505fbe0c2f123/baby.mp4\"}"

- __Step 4: API Call__
Pass the escaped string as the value of the templateParameter parameter to the target API.

### Створення одноразового розкладу

 - [POST /api/cloudphone/rpa/onceTask/save](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1oncetask~1save/post.md): Зберегти хмарний телефон після запланованого завдання.

Специфікація параметра templateParameter
1. __Джерело параметра__
Ключі параметрів мають бути вилучені з поля parameter, що повертається такими API:
- Отримати сторінки шаблонів ринку
- Отримати сторінки персональних шаблонів
2. __Структура даних__
- Надсилати параметри у форматі об'єкта JSON: {"key1": "value1", "key2": "value2"}
- Кінцеві значення параметрів мають бути десеріалізовані відповідно до бізнес-логіки перед використанням
3. __Параметри загального типу__
Для наступних типів параметрів передайте значення безпосередньо у відповідному форматі:
- рядок: {"name": "John"}
- десяткове / число: {"amount": 100.50}
- логічний: {"enabled": true}
4. __Параметри типу медіа__
Для медіа-параметрів, таких як зображення (pic) або відео (video), окрім основної інформації, необхідно включити фіксований ключ __Extra__". Приклад формату:
json
{
"__Extra__": {
"pic": {
"name": "pic_name",
"size": 204800
},
"video": {
"name": "video_name",
"size": 204800000
}
},
"pic": "https://get.morelogin.com/prod/cloudPhoneTaskVideo/1556061681934880/1c62314c7e2b4d298abe8d5452d7c050/test.png",
"video": "morelogin://cloudfile?ids=1,2"
}

5. __Приклад налаштування параметра__
У наступному прикладі показано, як налаштувати параметр templateParameter під час збереження плану за допомогою шаблону ринку:
- __Крок 1: Отримання параметрів шаблону__
Виклик API шаблону ринку:
GET /api/cloudphone/rpa/template/market/page
Витягніть поле parameter з відповіді, наприклад:

json
"parameter": "{\"videoDownloadUrl\":{\"type\":\"video\",\"extra\":{\"name\":\"Select Відео", "тип": "відео", "обов'язкове": "правда", "значення за замовчуванням": "увімкнено": "false", "індекс": 1, "ліміт розміру": "значення": 200, "одиниця": "МБ"}, "тип формату": [mp4", "mov"]}}, "опис відео": "тип": "рядок", "додаткове": "ім'я": "Відео" Підпис\",\"тип\":\"рядок\",\"обов'язковий\":false,\"допустимий символ\":{\"увімкнено\":true,\"значення\":1000},\"багаторядковий\":{\"увімкнено\":true,\"значення\":3},\"значення за замовчуванням\":{\"увімкнено\":false},\"індекс\":2}},\"управління_обкладинкою\":{\"тип\":\"зображення\",\"додатковий\":{\"назва\":\"Обкладинка Зображення\", "тип\":\"зображення\", "обов'язкове\":false, "значення за замовчуванням\":{\"увімкнено\":false}, "індекс\":3, "ліміт розміру\":{\"значення\":5, "одиниця\":\"МБ\"}, "тип формату\":[\"jpg\",\"png\",\"jpeg\"]}}, "enableAIGC\":{\"тип\":\"логічне\",\"додаткове\":{\"назва\":\"Мітка ШІ\",\"тип\":\"логічне\",\"обов'язкове\":false, "значення за замовчуванням\":{\"увімкнено\":false},\"індекс\":4}}, "ідентифікатор_продукту\":{\"тип\":\"рядок\",\"додаткове\":{\"назва\":\"Продукт ID\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":50},\"placeholder\":\"Ідентифікатор продукту підтримує лише цифри, максимум 50 символів.\",\"defaultValue\":{\"enabled\":false},\"index\":5}},\"productTitle\":{\"type\":\"string\",\"extra\":{\"name\":\"Назва продукту\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":30},\"defaultValue\":{\"enabled\":false},\"index\":6}},\"getLeads\":{\"type\":\"boolean\",\"extra\":{\"name\":\"Отримати Leads\",\"type\":\"boolean\",\"required\":false,\"defaultValue\":{\"enabled\":false},\"index\":7}},\"comment\":{\"type\":\"string\",\"extra\":{\"name\":\"Comment\",\"type\":\"string\",\"required\":false,\"charValid\":{\"enabled\":true,\"value\":200},\"multiline\":{\"enabled\":true,\"value\":3},\"defaultValue\":{\"enabled\":false},\"index\":8}}}"


- __Крок 2: Створення параметра JSON__
Створіть об'єкт JSON відповідно до вимог до параметра:
json
{
"__Extra__": {
"videoDownloadUrl": {
"name": "video_name.mp4",
"size": 204800000
}
},
"videoDownloadUrl": "morelogin://cloudfile?ids=1,2"
}

- __Крок 3: Екранування рядка JSON__
Конвертуйте об'єкт JSON у формат екранованого рядка:
json
"{\"__Extra__\": {\"videoDownloadUrl\": {\"name\": \"video_name.mp4\",\"size\": 204800000}},\"videoDownloadUrl\": \"morelogin://cloudfile?ids=1,2\"}"

- __Крок 4: Виклик API__
Передайте екранований рядок як значення параметра templateParameter до цільового API.

### Скасувати розклад

 - [POST /api/cloudphone/rpa/task/cancel](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1task~1cancel/post.md)

### Запис виконання завдань запитів сторінок

 - [POST /api/cloudphone/rpa/subTask/page](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1subtask~1page/post.md): Шаблон ринку розкладів запитів, назва шаблону підтримує нечіткий запит

### Отримати виконання завдання

 - [POST /api/cloudphone/rpa/subTask/detail/{id}](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1subtask~1detail~1%7Bid%7D/post.md): Шаблон ринку розкладів запитів, назва шаблону підтримує нечіткий запит

### Скасувати виконання

 - [POST /api/cloudphone/rpa/subTask/cancel/{id}](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/schedules/paths/~1api~1cloudphone~1rpa~1subtask~1cancel~1%7Bid%7D/post.md)

## Touch

### Дотик - Натискання

 - [POST /api/cloudphone/touch/click](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/touch/touchclick.md): Імітує одиночне натискання на екран хмарного телефону за вказаними координатами.
Система координат використовує лівий верхній кут екрана як початок координат (0, 0), вісь X спрямована вправо, вісь Y — вниз.

### Дотик - Подвійне натискання

 - [POST /api/cloudphone/touch/doubleClick](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/touch/touchdoubleclick.md): Імітує подвійне натискання на екран хмарного телефону за вказаними координатами.
Система координат використовує лівий верхній кут екрана як початок координат (0, 0), вісь X спрямована вправо, вісь Y — вниз.

### Дотик - Тривале натискання

 - [POST /api/cloudphone/touch/longClick](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/touch/touchlongclick.md): Імітує тривале натискання на екран хмарного телефону за вказаними координатами.
Використовуйте параметр duration для налаштування тривалості натискання (в мілісекундах). Якщо не вказано, використовується значення за замовчуванням.
Система координат використовує лівий верхній кут екрана як початок координат (0, 0), вісь X спрямована вправо, вісь Y — вниз.

### Дотик - Свайп

 - [POST /api/cloudphone/touch/swipe](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/touch/touchswipe.md): Імітує свайп пальцем від початкових координат до кінцевих координат.
Використовуйте параметр duration для керування швидкістю свайпу (в мілісекундах). Більше значення призводить до повільнішого свайпу.
Система координат використовує лівий верхній кут екрана як початок координат (0, 0), вісь X спрямована вправо, вісь Y — вниз.

### Дотик - Перетягування

 - [POST /api/cloudphone/touch/drag](https://guide.morelogin.com/uk/api-reference/cloud-phone/local-api/touch/touchdrag.md): Імітує перетягування пальцем від початкових координат до кінцевих координат. Подібно до свайпу, але перетягування зазвичай використовується для переміщення іконок, елементів UI тощо.
Використовуйте параметр duration для керування швидкістю перетягування (в мілісекундах). Більше значення призводить до повільнішого перетягування.
Система координат використовує лівий верхній кут екрана як початок координат (0, 0), вісь X спрямована вправо, вісь Y — вниз.

