Справочник API Clousd.
Все маршруты Clousd API v1 (операций: 71), сгруппированные так, как вы будете ими пользоваться. Параметры, тела запросов и ответы — в файле OpenAPI.
Каждый запрос
# base URL https://api.clousd.com/v1 # header Authorization: Bearer cl_live_your_key # errors are JSON { "error": "busy", "message": "…" }
Все маршруты.
Основы
| Что | Значение | Примечания |
|---|---|---|
| Базовый URL | https://api.clousd.com/v1 | Только HTTPS, JSON на входе и выходе |
| Аутентификация | Authorization: Bearer cl_live_… | Ключи создаются в панели, с правами read или control и списком устройств |
| Долгие операции | 202 Accepted → GET /v1/jobs/{id} | Создание, запуск, восстановление и похожие вызовы возвращают задание, которое нужно опрашивать |
| Ошибки | { "error": "busy", "message": "…" } | Короткий код для ветвления и сообщение для людей |
| Полная спецификация | openapi-v1.yaml | OpenAPI 3.1 с параметрами, телами и ответами |
Задачи
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/schedules | Расписания этого ключа |
| POST | /v1/schedules | Задача, которая запускается сама — ежедневно, ежечасно или по вашему вызову |
| POST | /v1/schedules/{id}/toggle | Приостановить или возобновить расписание |
| POST | /v1/schedules/{id}/delete | Удалить расписание |
| POST | /v1/runs | Дать одному или нескольким телефонам задачу обычными словами |
| GET | /v1/runs | Запуски этого ключа, новые первыми |
| GET | /v1/runs/{id} | Один запуск — статус, answer, structured_output и карточка, на которой он ждёт |
| DELETE | /v1/runs/{id} | Удалить завершённый запуск с его шагами и скриншотами |
| GET | /v1/runs/{id}/events | События в реальном времени через Server-Sent Events |
| GET | /v1/runs/{id}/trajectory | Каждый шаг — инструмент, цель, результат и сохранён ли экран |
| GET | /v1/runs/{id}/steps/{n}.jpg | Экран перед шагом n |
| POST | /v1/runs/{id}/answer | Ответить на карточку запуска — вопрос (answer) или разрешение (allow / decline) |
| POST | /v1/runs/{id}/message | Сообщить что-то работающему агенту; он прочтёт это перед следующим шагом |
| POST | /v1/runs/{id}/cancel | Остановить запуск |
| POST | /v1/schedules/{id}/run | Запустить расписание сейчас — триггер для trigger=api |
| GET | /v1/credentials | Сохранённые входы — пакет, имя и какие поля заполнены; значения не возвращаются никогда |
| POST | /v1/credentials | Сохранить вход для приложения |
| POST | /v1/credentials/{id}/fields | Задать одно поле входа |
| DELETE | /v1/credentials/{id}/fields/{type} | Удалить одно поле входа |
| DELETE | /v1/credentials/{id} | Удалить вход |
Устройства
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/devices | Устройства, которые видит этот ключ |
| POST | /v1/devices | Создать устройство (оплачивается с аккаунта API-ключа) |
| GET | /v1/devices/{name} | Одно устройство |
| POST | /v1/devices/{name}/start | Запустить устройство |
| POST | /v1/devices/{name}/stop | Остановить устройство (состояние сохраняется; остановленное устройство ничего не стоит) |
| POST | /v1/devices/{name}/restart | Перезапустить устройство |
| GET | /v1/devices/{name}/ice | ICE-серверы для WebRTC-просмотра этого устройства: TURN сервера устройства с временными учётными данными (достаточно ключа read) |
| GET | /v1/devices/{name}/quality | Качество по категориям (последний замер) |
| POST | /v1/devices/{name}/reset | Сбросить устройство до чистого состояния: приложения и данные стираются, телефон возвращается как новый (та же модель и Android, 1–5 мин) |
| GET | /v1/devices/{name}/screenrecord | Записать экран на несколько секунд |
| POST | /v1/devices/{name}/label | Дать телефону имя, по которому его различат люди и агенты («Pixel QA»); пустое — снова «Модель #N» |
| GET | /v1/balance | Деньги аккаунта — баланс, расход в день, на сколько часов хватит, продления и предупреждения для пользователя |
| GET | /v1/models | Модели, из которых можно создавать устройства |
ИИ-агенты
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/devices/{name}/observe | Свежий взгляд на телефон — скриншот, дерево интерфейса и приложение на экране одним вызовом |
| POST | /v1/devices/{name}/act | Одно действие, затем ожидание, пока экран не перестанет меняться |
| POST | /v1/devices/{name}/op | Один базовый примитив (протокол ядра Lusiesta, один к одному) |
Экран и ввод
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/devices/{name}/screenshot | Экран в PNG; с w — уменьшенный JPEG (кэшируется до 10 с — для свежего кадра используйте /observe) |
| POST | /v1/devices/{name}/action | Одно действие на телефоне (без ожидания) |
| POST | /v1/devices/{name}/input | Касание, клавиша, текст, прокрутка, буфер обмена, поворот (нужна живая сессия трансляции) |
| GET | /v1/devices/{name}/logs | Последние строки logcat |
| GET | /v1/devices/{name}/stream | Показатели трансляции — fps, битрейт, задержка у зрителя, ступень ABR (достаточно ключа read) |
| POST | /v1/devices/{name}/stream | WebRTC — на входе SDP offer, на выходе SDP answer; тело с bitrate_kbps вместо этого фиксирует ступень качества (ключ control) |
| POST | /v1/devices/{name}/stream/probe | Проба задержки для живого просмотра: опускает шторку уведомлений на 600 мс и возвращает часы шлюза (ключ control, не чаще раза в 5 с на устройство) |
Сеть
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/devices/{name}/network | Страна сети устройства |
| POST | /v1/devices/{name}/network | Задать страну, из которой подключается устройство (часовой пояс и язык следуют за ней) |
| GET | /v1/network/options | Что можно выбрать при создании устройства прямо сейчас — страны и тарифы |
Приложения
| Метод | Маршрут | Что делает |
|---|---|---|
| POST | /v1/devices/{name}/apk | Установить APK |
| GET | /v1/apps | Каталог приложений — что можно установить прямо сейчас |
| GET | /v1/devices/{name}/apps | Приложения из каталога, установленные на устройстве |
| POST | /v1/devices/{name}/apps | Установить приложение из каталога (ключ control) |
ADB
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/devices/{name}/adb | Состояние сессии ADB |
| POST | /v1/devices/{name}/adb | Открыть сессию ADB через реле (код |
| DELETE | /v1/devices/{name}/adb | Закрыть сессию ADB |
Файлы и медиа
| Метод | Маршрут | Что делает |
|---|---|---|
| PUT | /v1/devices/{name}/files | Положить файл на телефон (push) — тело запроса и есть файл, путь в /sdcard/ или /data/local/tmp/ |
| POST | /v1/devices/{name}/media | Медиа из медиатеки на телефон, как будто снято им (push), убрать то, что положили мы (clean), или список |
| GET | /v1/media | Медиатека — фото и видео с их id |
| POST | /v1/media | Загрузить фото или видео — {name, data_b64, folder}, до 25 МБ |
| POST | /v1/media/send | Скопировать файлы медиатеки в галереи телефонов |
Вебхуки
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/webhooks | Вебхуки этого ключа и события, на которые можно подписаться: завершение, сбой, отмена и ожидание запуска, проблема на устройстве и её устранение |
| POST | /v1/webhooks | Подписать адрес https |
| GET | /v1/webhooks/{id} | Один вебхук |
| DELETE | /v1/webhooks/{id} | Удалить его |
| POST | /v1/webhooks/{id}/rotate | Новый секрет (показывается один раз) |
| POST | /v1/webhooks/{id}/toggle | Приостановить или возобновить доставку |
| POST | /v1/webhooks/{id}/test | Отправить тестовое событие сейчас |
| GET | /v1/webhooks/{id}/deliveries | Последние доставки со статусом и временем ответа |
Аккаунт
| Метод | Маршрут | Что делает |
|---|---|---|
| GET | /v1/usage | Минуты работы по устройствам и дням (UTC) за месяц |
| GET | /v1/incidents | Инциденты на ваших устройствах (последние 100, новые первыми) |
| GET | /v1/health | Состояние ваших устройств (замер каждые 5 минут) |
| GET | /v1/jobs | Последние 50 заданий ваших устройств |
| GET | /v1/jobs/{id} | Состояние долгой операции |