CLOUSD
Buka akun

Otomatisasi Android lewat API dan ADB

Clousd API adalah REST API di https://api.clousd.com/v1 untuk cloud phone Android, bukan untuk saluran telepon. Setiap tindakan di dasbor adalah panggilan yang bisa Anda lakukan sendiri: membuat perangkat, mengubah jaringannya, menginstal aplikasi, menyimpan snapshot, dan meng-clone. Pekerjaan yang lama menjawab 202, kunci punya akses terbatas, webhook bertanda tangan, dan ADB cukup satu perintah.

RESTJSON lewat HTTPS 202+ job untuk pekerjaan lama webhook
GET /v1/devices
curl https://api.clousd.com/v1/devices \
  -H "Authorization: Bearer cl_live_••••••••"
200 OKRespons
{ "devices": [
  { "name": "c3f9a41d2", "model": "Galaxy A16 5G",
    "android": "15", "state": "running",
    "exit": { "type": "mobile", "country": "DE",
              "timezone": "Europe/Berlin" },
    "uptime": 7740, "minutes_today": 129 }
] }

Kunci yang mudah dipahami.

Buat kunci di Pengaturan → Kunci API. Setiap kunci punya cakupan akses dan daftar perangkat yang boleh disentuhnya, dan hanya ditampilkan sekali. Cabut di sana kapan pun Anda perlu.

  • baca atau kendaliKunci baca hanya bisa melihat tanpa mengubah apa pun; kunci kendali bisa bertindak.
  • Terbatas pada perangkatKunci hanya melihat perangkat yang ada di daftarnya, serta perangkat baru yang dibuat atau di-clone dengan kunci itu.
  • Batas permintaan per kunci60 permintaan per menit, dan hingga 120 per menit per perangkat pada rute perangkat.
URL dasar dan autentikasi
# setiap permintaan
https://api.clousd.com/v1
Authorization: Bearer cl_live_your_key

# operasi yang lama menjawab 202 beserta job
POST /v1/devices/c3f9a41d2/restart
→ 202 { "job": { "id": "3f9c…", "kind": "restart", "state": "running" } }
GET  /v1/jobs/3f9c…
→ 200 { "job": { "state": "done" } }

Panggilan yang akan Anda pakai.

Inilah yang paling sering dipakai skrip di awal; semua rute API v1 beserta setiap kolomnya ada di referensi. Baru mulai? Ikuti panduan cepat dalam lima langkah.

Perangkat

siklus hidup
GET/v1/modelsYang bisa Anda buat
POST/v1/devicesBuat perangkat
GET/v1/devicesDaftar perangkat
POST/v1/devices/{name}/startNyalakan · matikan · restart
DELETE/v1/devices/{name}Hapus permanen

Layar dan input

kendali
GET/v1/devices/{name}/screenshotPNG, atau JPEG kecil
POST/v1/devices/{name}/actionBuka aplikasi, ketuk, ketik, cari teks
POST/v1/devices/{name}/inputSentuhan dan tombol mentah
GET/v1/devices/{name}/logsLogcat terbaru

Jaringan

jalur
GET/v1/network/optionsJenis dan negara yang tersedia
POST/v1/devices/{name}/networkGanti jalur internet
POST/v1/devices/{name}/network/rotateAlamat baru
POST/v1/network/checkUji proxy Anda sendiri

Aplikasi

seperti dari Play
GET/v1/appsKatalog
POST/v1/devices/{name}/appsInstal dari katalog
GET/v1/devices/{name}/appsYang terinstal
POST/v1/devices/{name}/apkUnggah APK Anda

Snapshot

keadaan
POST/v1/devices/{name}/snapshotsSimpan keadaan
POST/v1/devices/{name}/snapshots/{id}/restoreKembalikan
POST/v1/devices/{name}/snapshots/{id}/clonePerangkat baru dari snapshot

Armada

banyak perangkat
POST/v1/groupsJalankan langkah di banyak perangkat
GET/v1/schedulesJadwal mingguan
GET/v1/healthKesehatan perangkat Anda
GET/v1/usageMenit per perangkat

Per pekerjaan: snapshot dan clone, ganti jaringan ponsel, jalankan tes dari CI.

ADB, tanpa port terbuka.

Tidak ada perangkat yang membuka ADB ke internet. Anda terhubung ke relay kami, login dengan kode sekali pakai, dan relay meneruskan sesi Anda ke perangkat itu saja, tidak ke mana pun. Relay mati sampai Anda menyalakannya.

  • Hanya IP AndaAllow-list hingga 20 alamat atau rentang alamat wajib diisi untuk menyalakannya.
  • Berbatas waktu24 jam secara default, hingga 7 hari, lalu mati dengan sendirinya.
  • Semua tetap berfungsiinstall, shell, logcat, push, dan pull. Perintah berbahaya seperti root atau reboot ditolak.
Terminal
# 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
PengamanYang terjadiBatas
Alamat yang diizinkanKoneksi dari alamat lain langsung ditutuphingga 20 IP atau rentang
KedaluwarsaRelay untuk perangkat itu mati dan kodenya dihapusdefault 24 j, maks. 7 hari
SesiKoneksi keempat ditolak3 sekaligus per perangkat
Kode salahSesi ditutup; setelah 20 kali relay untuk perangkat itu mati5 per sesi · 20 per 10 mnt
Sesi tidak aktifDitutup; shell dan logcat yang sedang berjalan tidak dihitung tidak aktif30 menit
Push dan pullTransfer file berikutnya di sesi itu ditolak2 GiB per sesi
Selalu ditolakJuga disable-verity, reverse, tcpip, usb, jdwp, sideload, restoreroot, remount, reboot, …

Webhook, bertanda tangan.

Beri kunci sebuah URL webhook, dan platform akan mengirim notifikasi ke sana saat sesuatu terjadi di perangkat milik kunci itu: job selesai, perangkat mengalami masalah, atau masalahnya teratasi.

EVENTjob.finishednyala, mati, jaringan, snapshot, clone…
EVENThealth.problemperangkat perlu diperiksa
EVENThealth.resolvedsudah normal kembali

Tiga kali percobaan pengiriman: langsung, setelah 10 detik, dan setelah satu menit. Setiap permintaan membawa X-Clousd-Signature.

Verifikasi tanda tangan · Python
import hashlib, hmac

# kunci rahasia HMAC adalah digest SHA-256 hex dari kunci API Anda
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": {…}}

Error yang bisa Anda tangani.

Kode status HTTP standar, dan body JSON berisi jenis error yang bisa dibaca mesin serta pesan untuk manusia: {"error": "busy", "message": "…"}

StatusArtinyaJenis
400Ada kolom yang kosong atau nilainya tidak diizinkanbad_request
401Kunci tidak ada, salah, atau sudah dicabutunauthorized
402Saldo tidak cukup untuk permintaan tersebutinsufficient_funds
403Cakupan atau daftar perangkat kunci tidak mengizinkannyaforbidden
404Perangkat, job, atau snapshot tersebut tidak ada untuk kunci ininot_found
409Perangkat sudah dalam keadaan itu atau sedang menjalankan job lainbusy
429Terlalu banyak permintaan: tunggu sebentar lalu coba lagirate_limited

Pertanyaan seputar API cloud phone

Ada hal lain? Tulis ke tim dukungan dan orang sungguhan akan menjawab, biasanya dalam satu hari kerja.

Apakah API dikenai biaya tambahan?

Tidak. API, webhook, dan ADB sudah termasuk. Anda membayar perangkat selama menyala: $0.004 per menit atau $12.00 per bulan. Tanpa tingkatan paket, API di setiap akun

Bisakah saya membuat perangkat lewat API?

Bisa. GET /v1/models menampilkan apa saja yang bisa Anda buat; POST /v1/devices dengan model, jaringan, dan paket akan membuat perangkat. Kirim header Idempotency-Key agar percobaan ulang setelah timeout tidak pernah membuat atau menagih dua kali.

Apakah ada SDK?

API ini REST biasa dan bisa dipakai dari bahasa pemrograman apa pun yang punya klien HTTP. SDK Python dan server MCP untuk AI agent hadir bersama akses awal untuk agent.

Bagaimana AI agent memakainya?

GET /v1/devices/{name}/observe mengembalikan screenshot terbaru dan elemen layar beserta posisinya; POST /v1/devices/{name}/act mengetuk, mengetik, atau menggeser, lalu menunggu sampai layar stabil. API observe dan act untuk AI agent

Bisakah saya memakai ADB lewat internet?

Bisa, lewat relay kami: nyalakan ADB untuk sebuah perangkat, izinkan alamat IP Anda, hubungkan dengan adb connect, lalu login dengan kode sekali pakai. ADB mati secara default dan mati dengan sendirinya setelah 24 jam, atau hingga 7 hari jika Anda memilihnya.

Di mana referensi lengkapnya?

Di /docs/reference/, dibuat dari deskripsi OpenAPI yang juga bisa Anda unduh sebagai openapi-v1.yaml.

Di mana saya bisa melihat apakah API sedang aktif?

Di halaman status API: pengecekan nyata terhadap API dan gateway di balik layar langsung dan ADB, dijalankan paling lama setiap lima menit, dengan riwayat harian 90 hari.

Trial Gratis

Dapatkan kunci. Skrip perangkat pertama dalam semenit.

  • Tanpa kartu, tanpa isi saldo.
  • Buat akun, jalankan perangkat, pakai selama setengah jam.
  • Kalau cocok, isi saldo dan lanjutkan. Kalau tidak, Anda tidak rugi apa pun.
Ponsel yang dimatikan tidak dikenai biayaSatu trial per akun, perangkat menyimpan keadaannya