REST API
Devices
Attached devices, their details and apps.
listDevices
Section titled “listDevices”GET /v1/devices
List devices this key may see
| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
platform |
query | no | ios, android |
|
kind |
query | no | physical, simulator, emulator, remote |
|
label |
query | no | string | |
state |
query | no | ready, busy, leased, locked, needsSetup, connecting, disconnected |
| Response | Means |
|---|---|
| 200 | Devices. |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |
MCP tools on this operation: list_devices.
getDevice
Section titled “getDevice”GET /v1/devices/{deviceId}
One device with capabilities and health
| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
deviceId |
path | yes | string | Stable device id such as ios:00008120-001A2B3C4D5E6F70 or android:R58M123ABC. |
Silan-Lease |
header | no | string | Lease token when the device is claimed. |
| Response | Means |
|---|---|
| 200 | Device. DeviceDetail |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |
MCP tools on this operation: get_device.
updateDevice
Section titled “updateDevice”PATCH /v1/devices/{deviceId}
Rename or relabel a device
| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
deviceId |
path | yes | string | Stable device id such as ios:00008120-001A2B3C4D5E6F70 or android:R58M123ABC. |
Request body: application/json.
| Field | Type | What it is |
|---|---|---|
name |
string | |
labels |
array of string |
| Response | Means |
|---|---|
| 200 | Updated. Device |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |
listApps
Section titled “listApps”GET /v1/devices/{deviceId}/apps
Installed apps
| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
deviceId |
path | yes | string | Stable device id such as ios:00008120-001A2B3C4D5E6F70 or android:R58M123ABC. |
Silan-Lease |
header | no | string | Lease token when the device is claimed. |
includeSystem |
query | no | boolean |
| Response | Means |
|---|---|
| 200 | Apps. |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |
MCP tools on this operation: list_apps.
installApp
Section titled “installApp”POST /v1/devices/{deviceId}/apps
Install an app build (.ipa, .app, or .apk) from a path on this Mac
| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
deviceId |
path | yes | string | Stable device id such as ios:00008120-001A2B3C4D5E6F70 or android:R58M123ABC. |
Silan-Lease |
header | no | string | Lease token when the device is claimed. |
Prefer |
header | no | respond-async |
Send respond-async to get a job instead of waiting. |
Request body: application/json.
| Field | Type | What it is |
|---|---|---|
path |
string | Absolute path on this Mac. Refused over the relay. |
launch |
boolean |
| Response | Means |
|---|---|
| 200 | Installed. InstalledApp |
| 202 | Accepted as a job. Job |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |
MCP tools on this operation: install_app.
uninstallApp
Section titled “uninstallApp”DELETE /v1/devices/{deviceId}/apps/{appId}
Uninstall an app
| Parameter | In | Required | Type | What it is |
|---|---|---|---|---|
deviceId |
path | yes | string | Stable device id such as ios:00008120-001A2B3C4D5E6F70 or android:R58M123ABC. |
appId |
path | yes | string | iOS bundle ID or Android package name. |
Silan-Lease |
header | no | string | Lease token when the device is claimed. |
| Response | Means |
|---|---|
| 204 | Removed. |
| 4XX | Error (RFC 9457). |
| 5XX | Error (RFC 9457). |
MCP tools on this operation: uninstall_app.