Tham chiếu Clousd API.
Mọi route của Clousd API v1, 71 thao tác, được nhóm theo cách bạn sẽ dùng. Tham số, body yêu cầu và phản hồi có trong tệp OpenAPI.
Mọi yêu cầu
# base URL https://api.clousd.com/v1 # header Authorization: Bearer cl_live_your_key # errors are JSON { "error": "busy", "message": "…" }
Tất cả route.
Cơ bản
| Mục | Giá trị | Ghi chú |
|---|---|---|
| Base URL | https://api.clousd.com/v1 | Chỉ HTTPS, dữ liệu vào và ra đều là JSON |
| Xác thực | Authorization: Bearer cl_live_… | Khóa được tạo trên bảng điều khiển, giới hạn quyền đọc hoặc điều khiển và theo danh sách thiết bị |
| Thao tác dài | 202 Accepted → GET /v1/jobs/{id} | Tạo, bật, khôi phục và các lệnh tương tự trả về một job để theo dõi |
| Lỗi | { "error": "busy", "message": "…" } | Một mã ngắn để code rẽ nhánh và một thông báo cho người đọc |
| Đặc tả đầy đủ | openapi-v1.yaml | OpenAPI 3.1 với tham số, body và phản hồi |
Tác vụ
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/schedules | Lịch chạy của khóa này |
| POST | /v1/schedules | Tác vụ tự chạy - hằng ngày, hằng giờ hoặc khi bạn gọi |
| POST | /v1/schedules/{id}/toggle | Tạm dừng hoặc tiếp tục lịch chạy |
| POST | /v1/schedules/{id}/delete | Xóa lịch chạy |
| POST | /v1/runs | Giao tác vụ bằng lời thường cho một hay nhiều máy |
| GET | /v1/runs | Các lần chạy của khóa này, mới nhất trước |
| GET | /v1/runs/{id} | Một lần chạy - trạng thái, câu trả lời, structured_output, card đang chờ |
| DELETE | /v1/runs/{id} | Xóa lần chạy đã xong cùng các bước và ảnh chụp màn hình |
| GET | /v1/runs/{id}/events | Sự kiện trực tiếp dạng Server-Sent Events |
| GET | /v1/runs/{id}/trajectory | Mọi bước - công cụ, đối tượng, kết quả, màn hình có được lưu không |
| GET | /v1/runs/{id}/steps/{n}.jpg | Màn hình trước bước n |
| POST | /v1/runs/{id}/answer | Trả lời card của lần chạy - câu hỏi (answer) hoặc xin phép (allow / decline) |
| POST | /v1/runs/{id}/message | Nhắn cho agent đang chạy; agent đọc trước bước tiếp theo |
| POST | /v1/runs/{id}/cancel | Dừng lần chạy |
| POST | /v1/schedules/{id}/run | Chạy lịch ngay - kích hoạt cho trigger=api |
| GET | /v1/credentials | Đăng nhập đã lưu - package, tên và các trường đã điền; không bao giờ trả về giá trị |
| POST | /v1/credentials | Lưu đăng nhập cho một ứng dụng |
| POST | /v1/credentials/{id}/fields | Điền một trường của đăng nhập |
| DELETE | /v1/credentials/{id}/fields/{type} | Xóa một trường của đăng nhập |
| DELETE | /v1/credentials/{id} | Xóa một đăng nhập |
Thiết bị
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/devices | Thiết bị khóa này nhìn thấy |
| POST | /v1/devices | Tạo thiết bị (tính phí vào tài khoản của khóa API) |
| GET | /v1/devices/{name} | Một thiết bị |
| POST | /v1/devices/{name}/start | Bật thiết bị |
| POST | /v1/devices/{name}/stop | Tắt thiết bị (trạng thái được giữ; máy đã tắt không tốn phí) |
| POST | /v1/devices/{name}/restart | Khởi động lại thiết bị |
| GET | /v1/devices/{name}/ice | Máy chủ ICE cho trình xem WebRTC của thiết bị: TURN của máy chủ chứa thiết bị kèm thông tin xác thực tạm thời (khóa read là đủ) |
| GET | /v1/devices/{name}/quality | Chất lượng theo hạng mục (lần đo gần nhất) |
| POST | /v1/devices/{name}/reset | Đặt lại thiết bị về trạng thái mới: xóa ứng dụng và dữ liệu, máy trở lại như mới (cùng mẫu và Android, 1-5 phút) |
| GET | /v1/devices/{name}/screenrecord | Quay màn hình trong vài giây |
| POST | /v1/devices/{name}/label | Đặt tên máy để người và agent phân biệt được (“Pixel QA”); để trống = trở về “Model #N” |
| GET | /v1/balance | Tiền của tài khoản - số dư, chi tiêu mỗi ngày, số giờ còn lại, kỳ gia hạn và cảnh báo cho người dùng |
| GET | /v1/models | Các mẫu máy có thể tạo thiết bị |
AI agent
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/devices/{name}/observe | Nhìn mới vào điện thoại - ảnh màn hình, cây UI và ứng dụng đang mở trong một lệnh gọi |
| POST | /v1/devices/{name}/act | Một thao tác, rồi chờ tới khi màn hình thôi thay đổi |
| POST | /v1/devices/{name}/op | Một lệnh cơ sở của lõi (giao thức lõi Lusiesta, tương ứng một-một) |
Màn hình và nhập liệu
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/devices/{name}/screenshot | Màn hình dạng PNG; có w thì là JPEG nhỏ hơn (lưu đệm tới 10 giây - dùng /observe để có khung hình mới) |
| POST | /v1/devices/{name}/action | Một thao tác trên máy (không chờ) |
| POST | /v1/devices/{name}/input | Chạm, phím, văn bản, cuộn, bộ nhớ tạm, xoay (cần phiên luồng trực tiếp) |
| GET | /v1/devices/{name}/logs | Các dòng logcat gần đây |
| GET | /v1/devices/{name}/stream | Số liệu luồng trực tiếp - fps, bitrate, độ trễ người xem, mức ABR (khóa read là đủ) |
| POST | /v1/devices/{name}/stream | WebRTC - gửi SDP offer, nhận SDP answer; body có bitrate_kbps thì thay vào đó cố định mức chất lượng (khóa control) |
| POST | /v1/devices/{name}/stream/probe | Đo độ trễ cho người xem trực tiếp: kéo khay thông báo trong 600 ms và trả về đồng hồ của gateway (khóa control, tối đa một lần mỗi 5 giây cho mỗi máy) |
Mạng
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/devices/{name}/network | Quốc gia mạng của thiết bị |
| POST | /v1/devices/{name}/network | Đặt quốc gia thiết bị kết nối từ đó (múi giờ và ngôn ngữ đi theo) |
| GET | /v1/network/options | Những gì chọn được khi tạo thiết bị lúc này - quốc gia và gói |
Ứng dụng
| Phương thức | Route | Chức năng |
|---|---|---|
| POST | /v1/devices/{name}/apk | Cài một APK |
| GET | /v1/apps | Kho ứng dụng - những gì cài được lúc này |
| GET | /v1/devices/{name}/apps | Ứng dụng từ kho đã cài trên thiết bị |
| POST | /v1/devices/{name}/apps | Cài ứng dụng từ kho (khóa control) |
ADB
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/devices/{name}/adb | Trạng thái phiên ADB |
| POST | /v1/devices/{name}/adb | Mở phiên ADB qua relay (mã |
| DELETE | /v1/devices/{name}/adb | Đóng phiên ADB |
Tệp và media
| Phương thức | Route | Chức năng |
|---|---|---|
| PUT | /v1/devices/{name}/files | Đưa tệp lên máy (push) - body là tệp, đường dẫn trong /sdcard/ hoặc /data/local/tmp/ |
| POST | /v1/devices/{name}/media | Đưa media từ thư viện lên máy như thể chụp bằng chính máy (push), gỡ những gì đã đưa (clean), hoặc liệt kê |
| GET | /v1/media | Thư viện Media - ảnh và video kèm id |
| POST | /v1/media | Tải lên ảnh hoặc video - {name, data_b64, folder}, tối đa 25 MB |
| POST | /v1/media/send | Sao chép tệp thư viện vào thư viện ảnh của các máy |
Webhook
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/webhooks | Webhook của khóa này và các sự kiện có thể đăng ký (run.completed / failed / cancelled / waiting, device.problem / resolved) |
| POST | /v1/webhooks | Đăng ký một URL https |
| GET | /v1/webhooks/{id} | Một webhook |
| DELETE | /v1/webhooks/{id} | Xóa webhook |
| POST | /v1/webhooks/{id}/rotate | Secret mới (chỉ hiện một lần) |
| POST | /v1/webhooks/{id}/toggle | Tạm dừng hoặc tiếp tục gửi |
| POST | /v1/webhooks/{id}/test | Gửi ngay một sự kiện thử |
| GET | /v1/webhooks/{id}/deliveries | Các lần gửi gần đây kèm trạng thái và thời gian phản hồi |
Tài khoản
| Phương thức | Route | Chức năng |
|---|---|---|
| GET | /v1/usage | Số phút chạy của từng thiết bị theo ngày (UTC) trong một tháng |
| GET | /v1/incidents | Sự cố trên thiết bị của bạn (100 gần nhất, mới nhất trước) |
| GET | /v1/health | Tình trạng thiết bị của bạn (đo mỗi 5 phút) |
| GET | /v1/jobs | 50 job gần nhất của thiết bị |
| GET | /v1/jobs/{id} | Trạng thái của một thao tác dài |