---
title: "List installed apps"
method: GET
path: "/enterprise/{enterprise_id}/device/{device_id}/install/"
tags: ["esper_cloud_api_AndroidDevice"]
---

# List installed apps

`GET /enterprise/{enterprise_id}/device/{device_id}/install/`

Get details of a specific app installed on an Android device. Retrieves the full DeviceApp record for a single app identified by app_id on the specified Android device, including the app's app_name, package_name, state, app_type, version_code, version_name, is_active, is_kiosk_app, is_esper_controlled, whitelisted, is_data_clearable, and is_uninstallable fields.

This endpoint is for Android devices only. For other platforms use the following alternatives:

iOS and other non-Android devices: GET /v2/devices/{deviceId}/device-apps/ — returns apps for a device and supports filtering by app type including VPP, TENANT_IOS, ESPER_IOS, WEBCLIP, ESPER_WINDOWS, and TENANT_WINDOWS

**Common Use Cases** 

Retrieving the full details of a specific app on an Android device to check its current state, version, or kiosk configuration, confirming whether an app is set as the kiosk app (is_kiosk_app: true) on a device, verifying app attributes such as is_uninstallable or is_data_clearable before issuing an uninstall or data-clear command, and auditing whether a specific app is whitelisted on a device.


**Workflow**

1. Call GET /enterprise/{enterprise_id}/device/{device_id}/app/ and filter by package_name to locate the app and retrieve its app_id.
2. Call this endpoint to retrieve the full DeviceApp record for that specific app.
3. Check state, version_code, and is_active to confirm the app's current status on the device.

## Path parameters

- `enterprise_id` string, required
- `device_id` string, required

## Query parameters

- `device` string
- `package_name` string
- `application_name` string
- `install_state` string
- `limit` integer
- `offset` integer

## Response `200`

successful operation

- object
  - `count` integer, required
  - `next` string, url, nullable
  - `previous` string, url, nullable
  - `results` EsperCloudApiAppInstall[], required
    - `id` string, uuid
    - `application` EsperCloudApiAppInstallApplication, required
      - `application_name` string
      - `package_name` string
      - `version` EsperCloudApiAppInstallVersion
        - `app_version_id` string, uuid
        - `version_code` string
        - `build_number` string
        - `hash_string` string
      - `is_enabled` boolean
    - `install_state` 'NOT_INSTALLED' | 'INSTALL_IN_PROGRESS' | 'UNINSTALL_IN_PROGRESS' | 'INSTALL_SUCCESS' | 'INSTALL_FAILED' | 'UNINSTALL_SUCCESS' | 'UNINSTALL_FAILED', required — Device App Install State ``` * NOT_INSTALLED = "Not Installed" * INSTALL_IN_PROGRESS = "Installation In-Progress" * UNINSTALL_IN_PROGRESS = "Uninstallation In-Progress" * INSTALL_SUCCESS = "Install Success" * INSTALL_FAILED = "Install Failed" * UNINSTALL_SUCCESS = "Uninstall Success" * UNINSTALL_FAILED = "Uninstall Failed" ```
    - `reason_details` string, nullable
    - `created_on` string, date-time
    - `updated_on` string, date-time
    - `is_active` boolean
    - `enterprise` string, url, required
    - `device` string, url, required

## Other responses

- `401` — Authorization information is missing or invalid.
- `404` — Not Found.
- `500` — Internal server error

---

[API](https://skmtc.net/esper/apis/esper-api-reference.md) · [All operations](https://skmtc.net/esper/apis/esper-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/esper/esper-api-reference/versions/e1f64cbb488e/schema)
