Skip to Content
Alpha — full Android pipeline + iOS toolkit + live dynamic loop. API still shifting; pin to commits in CI.
ReferenceAPIdevices · API

devices endpoints

Auto-generated from FastAPI OpenAPI. The descriptions are lifted from the route docstrings — edit the Python source, not this page.

GET /v1/devices

List Devices

Connected devices — Android (via adb) + iOS (via Frida’s lockdown-based enumeration).

Each entry carries platform: "android" | "ios" so the UI can filter recipes to the matching platform. Android entries also include the historical fields (model / abi / android_release / frida_server_running / …); iOS entries carry name / udid / version / model / arch when available.

Responses:

  • 200 — Successful Response

POST /v1/devices/connect

Device Connect

adb connect \<host>:\<port> — wireless ADB.

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/flavors

Device Flavors

Responses:

  • 200 — Successful Response

POST /v1/devices/{serial}/clear

Device Clear

pm clear \<pkg> — wipes app data without uninstalling.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/disconnect

Device Disconnect

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/{serial}/dumpsys/{topic}

Device Dumpsys

parameterinrequiredtypedescription
serialpathyesstring
topicpathyesstring
targetquerynostring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/frida-server

Device Frida Per Device

Start frida-server on a specific device (multi-device variant of /v1/device/frida/start).

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/home

Device Home

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/install

Device Install

parameterinrequiredtypedescription
serialpathyesstring

Request body: multipart/form-data

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/install-project

Device Install Project

Install an already-stored Project’s APK on the device — no re-upload.

The user uploaded an APK once at /#/scan; the file lives in the workspace. From the Devices screen we just point adb install -r at the same path.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/intent

Device Intent

Generic am start|broadcast with an action + optional data + component.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/key

Device Key

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/{serial}/logcat

Device Logcat Per

parameterinrequiredtypedescription
serialpathyesstring
linesquerynointeger
levelquerynostring
filterquerynostring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/logcat/clear

Device Logcat Clear

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/monkey

Device Monkey

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/{serial}/packages

Device Packages Per

List packages on a specific device. scope ∈ {all,3rd,system,uninstalled,with-paths}.

parameterinrequiredtypedescription
serialpathyesstring
scopequerynostring
filterquerynostring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/permissions/{op}

Device Permissions

grant / revoke / reset permissions for a package.

parameterinrequiredtypedescription
serialpathyesstring
oppathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/reboot

Device Reboot

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/{serial}/screen.mjpeg

Device Screen Mjpeg

Live screen as multipart/x-mixed-replace — point an \<img src=…> at it.

Default 6 fps because PNG frames at 1080×2400 are ~1 MB each. The browser paints each frame atomically so there is no flicker. Set ?fps=12 for smoother motion at 2× bandwidth, or ?fps=2 for low-power preview.

parameterinrequiredtypedescription
serialpathyesstring
fpsquerynointeger

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/{serial}/screencap-debug

Device Screencap Debug

Diagnostic JSON for the screencap path — used when the mirror stalls.

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/{serial}/screencap.png

Device Screencap

Single PNG. Tries exec-out fast path first, falls back to temp-file.

Validated against the PNG magic header so we never serve a half-baked stream to the \<img> tag (that was the cause of the SM-F741B “stalled” bug).

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/screenrecord/pull

Device Screenrecord Pull

Pull the most recent recording into the workspace.

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/screenrecord/start

Device Screenrecord Start

Start screenrecord on-device. Caps at 180s (Android’s own limit).

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/sharedprefs

Device Sharedprefs

Hits the canonical SharedPreferences debug receiver — only works in debug builds that registered <package>.sp.{PUT,REMOVE,CLEAR}.

type ∈ {string, boolean, float, int, long}.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/shell

Device Shell

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/start

Device App Start

am start -n \<pkg>/\<activity> — launch the app’s main activity by default.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/stop

Device App Stop

am force-stop \<pkg> — terminate all processes for the package.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/swipe

Device Swipe

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/tap

Device Tap

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/tcpip

Device Tcpip

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/text

Device Text

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/uninstall

Device Uninstall

adb uninstall [-k] \<pkg> — pass keep_data=yes to retain data dir.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/url

Device Open Url

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

GET /v1/devices/{serial}/version

Device Version

parameterinrequiredtypedescription
serialpathyesstring

Responses:

  • 200 — Successful Response
  • 422 — Validation Error

POST /v1/devices/{serial}/wm

Device Wm

op ∈ {size,size-reset,density,density-reset}; value e.g. 1080x1920 or 320.

parameterinrequiredtypedescription
serialpathyesstring

Request body: application/x-www-form-urlencoded

Responses:

  • 200 — Successful Response
  • 422 — Validation Error