# Открытый API

Открытый API MoreLogin предлагает комплексный и удобный для разработчиков RESTful-интерфейс, позволяющий программно управлять профилями браузеров, облачными телефонами и связанными ресурсами, обеспечивая бесперебойную автоматизацию, масштабируемость и контроль. Открытый API MoreLogin работает на вашем компьютере и доступен по адресу: https://api.morelogin.com

Version: 1.0.0

## Security

### Authorization

Token for request access token interface response access_token field

Type: http
In: header
Name: Authorization
Scheme: bearer
Bearer Format: JWT

## Download OpenAPI description

[Открытый API](https://guide.morelogin.com/_bundle/@l10n/ru/API%20Reference/Cloud%20Phone/open-api.yaml)

## Authorization

### Токен доступа

 - [POST /oauth2/token](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/authorization/paths/~1oauth2~1token/post.md)

### Информация о пользователе

 - [GET /oauth2/userinfo](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/authorization/paths/~1oauth2~1userinfo/get.md)

## Cloud Phone Management

### Получение списка облачных профилей телефонов

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

### Создание облачного телефона

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

### Стартап облачного телефона

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

### Выключите облачный телефон

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

### Изменить профиль телефона в облаке

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

### Настройка прокси облачного телефона

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

### Удалить облачный телефон

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

### Новый облачный телефон в один клик

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

### Подробная информация о телефоне в облаке

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

### Получение сведений об облачном телефоне по AndroidId

 - [POST /cloudphone/queryByAndroidId](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/cloud-phone-management/querybyandroidid.md): Запрос ID облачного телефона, связанного с определенным androidId в текущей команде. Возвращает ID облачного телефона, если он найден.

### Включение или выключение глобального ROOT

 - [POST /cloudphone/enableRoot](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/cloud-phone-management/enableroot.md): Включение или выключение глобальных прав ROOT на уровне системы на одном облачном телефоне.

### Снимок экрана облачного телефона

 - [POST /cloudphone/screenCap](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/cloud-phone-management/screencap.md): Получение снимка экрана в реальном времени для указанного экземпляра облачного телефона. Поддерживается возврат временного подписанного URL-адреса со временем истечения срока действия.

### Снимок экрана облачного телефона (ответ base64)

 - [POST /cloudphone/screenCapBase64](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/cloud-phone-management/screencapbase64.md): Получить снимок экрана в реальном времени указанного экземпляра облачного телефона. В настоящее время поддерживаются только Android 12 и Android 15.

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

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

## ADB

### Обновить статус ADB облачного телефона

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

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

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

### Выполнить команду оболочки

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

## Files

### Получить URL для загрузки файла

 - [POST /cloudphone/uploadUrl](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/files/get.md): Загрузите временные файлы через этот интерфейс, и система автоматически удалит их через 7 дней.

### Загрузка файлов

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

### результат загрузки файла

 - [POST /cloudphone/uploadFileResult](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/files/fileuploadresult.md)

### Загрузка файла

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

### Результат загрузки файла

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

### Установить Keybox

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

## Apps

### Установите приложение на облачный телефон.

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

### Получить список приложений

 - [POST /cloudphone/app/page](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/apps/paths/~1cloudphone~1app~1page/post.md): Получить список приложений APP

### Список приложений команды

 - [POST /cloudphone/team/app/page](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/apps/paths/~1cloudphone~1team~1app~1page/post.md): Получение списка приложений команды.

### Запрос списка установленных приложений

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

### Запустить приложение

 - [POST /cloudphone/app/start](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/apps/paths/~1cloudphone~1app~1start/post.md): Запустите установленное приложение на облачном телефоне.

### Перезапустите приложение

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

### Остановить приложение

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

### Удалите приложение

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

### Включение ROOT для приложения

 - [POST /cloudphone/app/openRoot](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/apps/appopenroot.md): Включение прав ROOT для конкретного пакета приложения на одном облачном телефоне.

### Скрыть приложение для людей с ограниченными возможностями

 - [POST /cloudphone/app/setHideAccessibilityApp](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/apps/paths/~1cloudphone~1app~1sethideaccessibilityapp/post.md): Поддерживает только Android 13, Android 14 и Android 15A.

## Schedules

### Получите шаблоны страниц для рынка

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

### Получите персональные шаблоны страниц

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

### Получить список расписаний

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

### Создание расписания

 - [POST /cloudphone/rpa/task/save](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/schedules/paths/~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 /cloudphone/rpa/onceTask/save](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/schedules/paths/~1cloudphone~1rpa~1oncetask~1save/post.md): Сохранение запланированной задачи в облаке телефона

Спецификация параметров шаблона

__Источник параметров__
Ключи параметров должны быть извлечены из поля 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 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\":\"Идентификатор продукта поддерживает только цифры, максимум 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\":\"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}}}"


- __Шаг 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 /cloudphone/rpa/task/cancel](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/schedules/paths/~1cloudphone~1rpa~1task~1cancel/post.md)

### Запись о выполнении задач запроса страницы

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

### Получить выполнение задачи

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

### Отменить выполнение

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

## Touch

### Касание - Нажатие

 - [POST /cloudphone/touch/click](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/touch/touchclick.md): Имитирует одиночное нажатие на экран облачного телефона по указанным координатам.
Система координат использует левый верхний угол экрана как начало координат (0, 0), ось X направлена вправо, ось Y — вниз.

### Касание - Двойное нажатие

 - [POST /cloudphone/touch/doubleClick](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/touch/touchdoubleclick.md): Имитирует двойное нажатие на экран облачного телефона по указанным координатам.
Система координат использует левый верхний угол экрана как начало координат (0, 0), ось X направлена вправо, ось Y — вниз.

### Касание - Длительное нажатие

 - [POST /cloudphone/touch/longClick](https://guide.morelogin.com/ru/api-reference/cloud-phone/open-api/touch/touchlongclick.md): Имитирует длительное нажатие на экран облачного телефона по указанным координатам.
Используйте параметр duration для настройки продолжительности нажатия (в миллисекундах). Если не указан, используется значение по умолчанию.
Система координат использует левый верхний угол экрана как начало координат (0, 0), ось X направлена вправо, ось Y — вниз.

### Касание - Свайп

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

### Касание - Перетаскивание

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

