---
title: "List app installs"
method: GET
path: "/devices/{deviceId}/apps/installs"
tags: ["Tools/Apps"]
---

# List app installs

`GET /devices/{deviceId}/apps/installs`

Reports the backend's view of background app-install attempts on this device — status reflects the install ATTEMPT, not device ground truth; list-apps remains authoritative for what is actually installed. Records are in-memory and lost on service restart; terminal records are kept ~15 minutes. Not gated on device readiness, so it also answers while the device is offline or crashed.

## Path parameters

- `deviceId` string, required

## Headers

- `X-Device-Display-ID` integer

## Response `200`

OK

- ListAppInstallsOutputBody
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `installs` AppInstallStatus[], nullable, required
    - `appId` string, required — Android package name or iOS bundle id
    - `errorClass` string — Closed set: download_failed, adb_install_failed, panic, timeout, failed. Only present when status is failed.
    - `platform` string, required — android or ios
    - `startedAt` string, date-time, required
    - `status` 'running' | 'succeeded' | 'failed', required — On iOS MDM devices, succeeded means the install command was accepted by the device's MDM channel, not that the install finished on-device.
    - `updatedAt` string, date-time, required

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/droidrun/apis/droidrun-cloud.md) · [All operations](https://skmtc.dev/droidrun/apis/droidrun-cloud/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/droidrun/droidrun-cloud/revisions/a1453ac769d4/schema)
