CLOUSD
免費註冊

Android 雲手機 API:REST 與 ADB

Clousd API 是位於 https://api.clousd.com/v1 的 REST API,對象是 Android 雲手機,不是電話門號。控制台裡的每個操作,你都能自己用呼叫完成:建立裝置、更換網路、安裝 App、拍快照和複製。耗時的工作回傳 202,金鑰有權限範圍,Webhook 附簽章,ADB 只要一行指令。

REST走 HTTPS 的 JSON 202+ 工作輪詢,處理耗時操作 簽章 Webhook
GET /v1/devices
curl https://api.clousd.com/v1/devices \
  -H "Authorization: Bearer cl_live_••••••••"
200 OK回應
{ "devices": [
  { "name": "c3f9a41d2", "model": "Galaxy A16 5G",
    "android": "15", "state": "running",
    "exit": { "type": "mobile", "country": "DE",
              "timezone": "Europe/Berlin" },
    "uptime": 7740, "minutes_today": 129 }
] }

權限一目了然的金鑰。

在「設定 → API 金鑰」建立金鑰。每把金鑰都有權限範圍和可操作的裝置清單,而且只顯示一次。需要時隨時可以在那裡撤銷。

  • 唯讀或控制唯讀金鑰只能看、不能改;控制金鑰可以執行操作。
  • 限定裝置金鑰只看得到清單上的裝置,以及它自己建立或複製出來的新裝置。
  • 每把金鑰的速率限制每分鐘 60 個請求;裝置相關路由每台裝置每分鐘最多 120 個。
Base URL 與驗證
# 每個請求都要帶
https://api.clousd.com/v1
Authorization: Bearer cl_live_your_key

# 耗時操作回傳 202 與一個工作
POST /v1/devices/c3f9a41d2/restart
→ 202 { "job": { "id": "3f9c…", "kind": "restart", "state": "running" } }
GET  /v1/jobs/3f9c…
→ 200 { "job": { "state": "done" } }

你會用到的呼叫。

大多數腳本都從這些開始;所有 API v1 路由和每個欄位都在參考文件裡。第一次用?從五步驟快速入門開始。

裝置

生命週期
GET/v1/models可以建立哪些裝置
POST/v1/devices建立裝置
GET/v1/devices列出裝置
POST/v1/devices/{name}/start開機 · 關機 · 重開機
DELETE/v1/devices/{name}永久刪除

畫面與輸入

控制
GET/v1/devices/{name}/screenshotPNG,或小尺寸 JPEG
POST/v1/devices/{name}/action開啟 App、點擊、輸入、找文字
POST/v1/devices/{name}/input原始觸控與按鍵
GET/v1/devices/{name}/logs最近的 logcat

網路

出口
GET/v1/network/options可購買的類型與國家
POST/v1/devices/{name}/network更換出口
POST/v1/devices/{name}/network/rotate換新 IP
POST/v1/network/check測試自有代理

App

如同從 Play 安裝
GET/v1/apps目錄
POST/v1/devices/{name}/apps從目錄安裝
GET/v1/devices/{name}/apps已安裝的 App
POST/v1/devices/{name}/apk上傳你的 APK

快照

狀態
POST/v1/devices/{name}/snapshots保存狀態
POST/v1/devices/{name}/snapshots/{id}/restore還原
POST/v1/devices/{name}/snapshots/{id}/clone從快照開新裝置

機隊

多台裝置
POST/v1/groups在多台裝置上執行步驟
GET/v1/schedules每週排程
GET/v1/health裝置健康狀態
GET/v1/usage每台裝置的使用分鐘數

依用途:快照與複製、更換手機網路、從 CI 執行測試。

ADB,不用開放連接埠。

沒有任何裝置會把 ADB 暴露在網路上。你連到我們的中繼,用一次性代碼登入,中繼只會把你的連線轉送到那台裝置,其他一概不通。你開啟之前,它都是關閉的。

  • 只限你的 IP必須設定白名單才能開啟,最多 20 個位址或網段。
  • 有時效預設 24 小時,最長 7 天,時間到會自動關閉。
  • 功能一應俱全install、shell、logcat、push 和 pull 都能用。root、reboot 這類危險指令一律拒絕。
終端機
# the dashboard or POST /v1/devices/{name}/adb gives host, port and code
adb connect relay.clousd.com:27001
adb -s relay.clousd.com:27001 shell clousd-login a1b2c3
login ok

adb -s relay.clousd.com:27001 install app-release.apk
adb -s relay.clousd.com:27001 logcat -d | tail -40
防護會發生什麼限制
允許的位址來自其他任何地方的連線會立刻關閉最多 20 個 IP 或網段
到期該裝置的中繼關閉,代碼清除預設 24 小時,最長 7 天
連線數第四個連線會被拒絕每台裝置同時 3 個
代碼錯誤連線關閉;累計 20 次後,該裝置的中繼會關閉每個連線 5 次 · 每 10 分鐘 20 次
閒置連線自動關閉;正在跑的 shell 和 logcat 不算閒置30 分鐘
Push 與 pull該連線後續的檔案傳輸會被拒絕每個連線 2 GiB
一律拒絕另外還有 disable-verity、reverse、tcpip、usb、jdwp、sideload、restoreroot, remount, reboot, …

Webhook,附簽章。

替金鑰設定 Webhook URL,只要這把金鑰的裝置有動靜,平台就會發送通知:工作完成、裝置出現問題、問題排除。

EVENTjob.finished開機、關機、網路、快照、複製…
EVENThealth.problem裝置需要處理
EVENThealth.resolved已恢復正常

最多傳送三次:立即一次、10 秒後一次、一分鐘後一次。每個請求都帶有 X-Clousd-Signature。

驗證簽章 · Python
import hashlib, hmac

# HMAC 密鑰是你 API 金鑰的 SHA-256 十六進位雜湊值
secret = hashlib.sha256(API_KEY.encode()).hexdigest().encode()
expected = hmac.new(secret, raw_body, hashlib.sha256).hexdigest()

if not hmac.compare_digest(expected, headers["X-Clousd-Signature"]):
    raise PermissionError("bad signature")

# body: {"event": "job.finished", "ts": …, "phone": "c3f9a41d2", "job": {…}}

好處理的錯誤。

標準 HTTP 狀態碼,加上 JSON 內容,包含程式可判讀的 kind 和給人看的訊息:{"error": "busy", "message": "…"}

狀態碼代表什麼kind
400欄位缺漏,或不是允許的值bad_request
401金鑰缺漏、錯誤或已撤銷unauthorized
402餘額不足以執行你要求的操作insufficient_funds
403金鑰的權限範圍或裝置清單不允許forbidden
404這把金鑰找不到該裝置、工作或快照not_found
409裝置已經是那個狀態,或正忙於其他工作busy
429請求太多:先等一下再重試rate_limited

雲手機 API 常見問題

還有其他問題?寫信給客服,由真人回覆,通常一個工作天內。

API 要另外收費嗎?

不用。API、Webhook 和 ADB 都包含在內。你只需支付裝置運作期間的費用:每分鐘 $0.004,或每月 $12.00。沒有分級方案,每個帳號都能用 API

可以透過 API 建立裝置嗎?

可以。GET /v1/models 會列出可以建立的機型;帶上機型、網路和方案呼叫 POST /v1/devices 就能建立一台。記得加上 Idempotency-Key 標頭,逾時後重試也絕不會重複建立或重複扣款。

有 SDK 嗎?

API 是純 REST,任何有 HTTP 用戶端的語言都能用。Python SDK 和給 AI Agent 用的 MCP 伺服器,會隨 Agent 搶先體驗一起推出。

AI Agent 怎麼使用?

GET /v1/devices/{name}/observe 會回傳最新截圖,以及畫面上的元素和它們的位置;POST /v1/devices/{name}/act 負責點擊、輸入或滑動,並等畫面穩定。給 AI Agent 用的 observe 與 act API

可以透過網路使用 ADB 嗎?

可以,透過我們的中繼:替裝置開啟 ADB、允許你的 IP 位址,用 adb connect 連線,再以一次性代碼登入。ADB 預設關閉,24 小時後會自動關閉;你也可以設定最長 7 天。

完整參考文件在哪裡?

在 /docs/reference/,由 OpenAPI 描述自動產生,也可以下載 openapi-v1.yaml。

哪裡可以看 API 是否正常?

請看 API 狀態頁面:實際檢查 API,以及即時畫面和 ADB 背後的閘道,最多每五分鐘一次,保留 90 天的每日紀錄。

免費試用

拿一把金鑰,一分鐘寫好你第一台裝置的腳本。

  • 不用信用卡,也不用儲值。
  • 註冊帳號、開一台裝置,先用半小時。
  • 合用就儲值繼續用;不合用,你也沒有任何損失。
關機的手機不收費每個帳號可試用一次,裝置狀態會保留