---
title: "List apps in enterprise"
method: GET
path: "/v1/enterprise/{enterprise_id}/application/"
tags: ["esper_cloud_api_Application V1"]
---

# List apps in enterprise

`GET /v1/enterprise/{enterprise_id}/application/`

Returns a paginated list of all Android applications uploaded to the enterprise, with optional filters for name, package name, category, SDK version, and more.

Use this endpoint to search and inventory the Android apps available in your enterprise before installing, managing, or auditing app versions across your fleet.

**About List Applications**

This endpoint is part of the Application V1 family (/v1/enterprise/{enterprise_id}/application/...), which manages the enterprise's Android app library — uploaded APKs and Google Play-sourced apps. It is the V1 version of the unversioned GET /enterprise/{enterprise_id}/application/ endpoint; both share the same filter parameters and response shape but use different schema versions (ApplicationV1 vs Application).

There are two other application API families with distinct scopes

Tenant Apps (/v2/tenant-apps/...) — manages uploaded apps for iOS and Windows platforms (IPA files, Windows binaries). Use this family for non-Android app library management.

Device Apps (/v2/devices/{deviceId}/device-apps/ and GET /v2/device-apps) — queries apps installed on a specific device or finds devices with a given app installed, covering iOS and Windows app types (VPP, TENANT_IOS, ESPER_IOS, WEBCLIP, ESPER_WINDOWS, TENANT_WINDOWS). Use this family when you need device-level app inventory rather than the enterprise library.

This endpoint returns ApplicationV1 objects. Each result includes the app's UUID, display name, package name, and a nested latest_version object. Results are paginated with a default page size of 20. Use the application_id from results to target individual apps for deletion or version queries.

**Key Fields / Query Parameters**

application_name — Filter by partial or full display name

package_name — Filter by Android package name (partial match)

package_name_exact — Filter by Android package name (exact match)

has_uploaded_version — When true, returns only apps with at least one uploaded version

category — Filter by application category

supported_sdk — Filter by minimum Android SDK version supported

is_active — Filter by active applications only

is_hidden (default: false) — When true, includes Esper default system apps in results

created_on_gt / created_on_lt — Filter by creation timestamp range

updated_on_gt / updated_on_lt — Filter by last-updated timestamp range

limit (default: 20) — Number of results per page

offset (default: 0) — Starting index for pagination

**Common Use Cases**

Searching for an Android app by package name before retrieving its version list

Auditing all apps registered to the enterprise

Building a pre-install checklist by filtering for apps with has_uploaded_version: true

**Best Practices**

Use package_name_exact rather than package_name when you know the full package name — it avoids ambiguous partial matches

For iOS or Windows apps, use GET /v2/tenant-apps instead — this endpoint returns Android apps only

For per-device app inventory or to find which devices have a given app installed, use the Device Apps family (/v2/devices/{deviceId}/device-apps/ or GET /v2/device-apps) instead

Paginate with limit and offset on large enterprises; use count from the response to determine total pages

Store application_id values from results for use in version and install queries downstream

**Workflow**

Call GET /v1/enterprise/{enterprise_id}/application/ with relevant filters

Paginate through results using next links or offset increments until next is null

Note the id (application UUID) for any apps to inspect further

Use the id to call GET /v1/enterprise/{enterprise_id}/application/{application_id}/ for full detail or proceed to version management

## Path parameters

- `enterprise_id` string, required

## Query parameters

- `application_name` string
- `package_name` string
- `package_name_exact` string
- `has_uploaded_version` boolean
- `category` string
- `supported_sdk` integer
- `is_active` boolean
- `is_hidden` boolean
- `created_on_gt` string, datetime
- `created_on_lt` string, datetime
- `updated_on_gt` string, datetime
- `updated_on_lt` string, datetime
- `limit` integer
- `offset` integer

## Response `200`

successful operation

- object
  - `count` integer, required
  - `next` string, url, nullable
  - `previous` string, url, nullable
  - `results` EsperCloudApiApplicationV1[], required
    - `id` string, uuid
    - `latest_version` EsperCloudApiApplicationVersionV1
      - `id` string, uuid
      - `version_code` string
      - `build_number` string, nullable
      - `hash_string` string
      - `min_sdk_version` string, nullable
      - `target_sdk_version` string, nullable
      - `icon_url` string, url
      - `release_name` string
    - `application_name` string, required
    - `package_name` string, required
    - `is_hidden` boolean
    - `enterprise` string, url, required

## Other responses

- `401` — Authorization information is missing or invalid.
- `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/revisions/e1f64cbb488e/schema)
