# Быстрый старт

Приступите к работе с API MoreLogin за 5 минут.

## Автоматизация браузера (локальный API)

**Сценарий**: Создайте профиль браузера, запустите его, подключитесь через Puppeteer, чтобы запустить скрипт, а затем остановите его.

### Предварительные условия

- Настольное приложение MoreLogin **v2.15.0+** установлено и работает локально.
- Кукловод установлен (`npm i puppeteer-core`).


### Шаг 1. Создайте профиль браузера

```bash
curl -X POST "http://127.0.0.1:40000/api/env/create/quick" \
  -H "Content-Type: application/json" \
  -d '{
    "browserTypeId": 1,
    "operatorSystemId": 1,
    "quantity": 1
  }'
```

*Этот эндпоинт возвращает `data` как массив идентификаторов созданных профилей. Используйте `data[0]` в качестве `envId` для следующих шагов (например, `1993244721490239488`). Идентификаторы ресурсов передаются десятичными строками.*

### Шаг 2. Запустите профиль и получите порт отладки

```bash
curl -X POST "http://127.0.0.1:40000/api/env/start" \
  -H "Content-Type: application/json" \
  -d '{"envId": "1993244721490239488"}'
```

*Ответ будет содержать `debugPort` (например, `12345`).*

### Шаг 3. Подключите Puppeteer (Node.js)

```javascript
const puppeteer = require('puppeteer-core');

(async () => {
  const browser = await puppeteer.connect({
    browserURL: 'http://127.0.0.1:12345'
  });
  const page = await browser.newPage();
  await page.goto('https://www.morelogin.com');
  console.log(await page.title());
  await browser.disconnect();
})();
```

### Шаг 4. Остановите профиль

```bash
curl -X POST "http://127.0.0.1:40000/api/env/close" \
  -H "Content-Type: application/json" \
  -d '{"envId": "1993244721490239488"}'
```

## Облачное управление телефоном (открытый API)

**Сценарий**: быстро создайте облачный телефон, запустите его, установите приложение и запустите расписание RPA.

### Предварительные условия

- Идентификатор API и ключ API из панели управления MoreLogin.
- Шаги 1–3 выполняются на новом аккаунте. Шагу 4 нужно хотя бы одно приложение в библиотеке команды, шагу 5 — хотя бы один шаблон RPA; ни то, ни другое нельзя создать через API, поэтому подготовьте их в панели управления, если запросы вернут пустой список.


### Шаг 1. Получите токен доступа

```bash
curl -X POST "https://api.morelogin.com/oauth2/token" \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "YOUR_API_ID",
    "client_secret": "YOUR_API_KEY",
    "grant_type": "client_credentials"
  }'
```

*Сохраните `access_token` из ответа.*

### Шаг 2. Создайте Cloud Phone

```bash
curl -X POST "https://api.morelogin.com/cloudphone/create" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "skuId": "10002",
    "quantity": 1
  }'
```

*Сохраните `data[0]` из ответа как идентификатор Cloud Phone. Идентификаторы ресурсов передаются десятичными строками.*

### Шаг 3. Включите Cloud Phone

```bash
curl -X POST "https://api.morelogin.com/cloudphone/powerOn" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{"id": "1673823102599682"}'
```

*Включение выполняется асинхронно. Успешный ответ означает только принятие запроса; дождитесь готовности устройства перед командами, требующими онлайн-состояния.*

### Шаг 4. Установите приложение

Приложения устанавливаются из библиотеки команды, поэтому сначала посмотрите, что в ней есть:

```bash
curl -X POST "https://api.morelogin.com/cloudphone/app/page" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{"pageNum": 1, "pageSize": 10}'
```

*Используйте `data.dataList[0].appVersionList[0].id` как `appVersionId` — версии возвращаются новыми вперёд. Идентификатор уровня приложения — не то, что ожидает `install`. Если `data.dataList` пуст, сначала загрузите приложение в панели управления MoreLogin: API для наполнения библиотеки нет.*

Устанавливайте по `appVersionId` либо по `packageName` вместе с `versionCode`, если известно только имя пакета:

```bash
curl -X POST "https://api.morelogin.com/cloudphone/app/install" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "id": "1673823102599682",
    "appVersionId": "1672940217990530"
  }'
```

### Шаг 5. Запустите расписание RPA

Выведите свои шаблоны и возьмите нужный `id`:

```bash
curl -X POST "https://api.morelogin.com/cloudphone/rpa/template/personal/page" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{"pageNo": 1}'
```

*Используйте `data.dataList[0].id` как `templateId` ниже. Шаблоны создаются в панели управления или берутся из магазина; API только перечисляет и запускает их.*

```bash
curl -X POST "https://api.morelogin.com/cloudphone/rpa/onceTask/save" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -d '{
    "cloudPhoneId": "1673823102599682",
    "scheduleName": "Daily Login Task",
    "templateId": "987654321"
  }'
```

## Что дальше?

| Цель | Перейти к |
|  --- | --- |
| Полный справочник по API профиля браузера | [API браузера](/ru/api-reference/browser/local-api) |
| Полный справочник по API Cloud Phone | [API облачного телефона](/ru/api-reference/cloud-phone/open-api) |
| Подключиться через АБР | [Руководство по подключению ADB](/ru/api-reference/cloud-phone/adb) |