---
title: "List App versions"
method: GET
path: "/enterprise/{enterprise_id}/application/{application_id}/version/"
tags: ["esper_cloud_api_Application"]
---

# List App versions

`GET /enterprise/{enterprise_id}/application/{application_id}/version/`

Lists all versions of a specific application registered in the enterprise library.

Returns a paginated collection of AppVersion records for the specified application, filterable by version code, build number, approval status, Google Play origin, enabled state, and timestamps. Default page size is 20; results can be ordered by install count.

**About List App Versions**

An Esper application can have multiple versions, each tracked as a distinct AppVersion record with its own UUID (version_id). Versions may originate from a direct APK upload or from the Console Google Play Store (identifiable via is_g_play). Each version carries an approval_status (AVAILABLE, ACCEPTED, APPROVED, or REJECTED) and can be enabled or disabled independently. The version_id is required when issuing install commands to specific devices.

**Key Query Parameters**

version_code — filter by the version code string (as set in the APK manifest)

build_number — filter by build number

is_g_play — true returns only versions sourced from the Console Google Play Store

approval_status — filter by lifecycle status: AVAILABLE, ACCEPTED, APPROVED, or REJECTED

is_enabled — filter for enabled versions only

is_default — filter for the default version of the application

ordering — sort by installed_count (ascending) or -installed_count (descending)

limit — results per page (default: 20)

**Common Use Cases**

Retrieve the list of approved, enabled versions before selecting one for a device install command
Audit which app versions are currently deployed across devices using installed_count ordering
Identify versions with approval_status=REJECTED or is_enabled=false to clean up the library

**Best Practices**

Filter by approval_status=APPROVED and is_enabled=true to limit results to deployment-ready versions
Use is_g_play=false when working exclusively with internally uploaded APKs to exclude Play Store-sourced versions
Store version_id values from results — these UUIDs are required for device install and app detail lookups

**Workflow**

Call this endpoint with the target application_id and any filters (approval status, enabled state)
Select the appropriate version from the results and record its id (version_id)
Use version_id in install commands or in GET .../version/{version_id}/ for full version detail

## Path parameters

- `application_id` string, uuid, required
- `enterprise_id` string, required

## Query parameters

- `version_code` string
- `build_number` string
- `is_g_play` boolean
- `approval_status` 'AVAILABLE' | 'ACCEPTED' | 'APPROVED' | 'REJECTED'
- `is_enabled` boolean
- `is_default` 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
- `ordering` string

## Response `200`

successful operation

- object
  - `count` integer, required
  - `next` string, url, nullable
  - `previous` string, url, nullable
  - `results` EsperCloudApiAppVersion[], required
    - `id` string, uuid
    - `installed_count` integer
    - `permissions` EsperCloudApiAppPermission[], required
      - `id` string, uuid
      - `permission` string, required
      - `grant_state` 'Default' | 'Denied' | 'Granted'
      - `created_on` string, date-time
      - `updated_on` string, date-time
      - `is_active` boolean
      - `enterprise` string, url, required
      - `app_version` string, url
    - `app_file` string, url
    - `app_icon` string, url, nullable
    - `version_code` string, required
    - `build_number` string, nullable
    - `size_in_mb` number
    - `hash_string` string
    - `release_name` string, nullable
    - `release_comments` string, nullable
    - `release_track` 'Alpha' | 'Beta' | 'Production', nullable
    - `created_on` string, date-time
    - `updated_on` string, date-time
    - `min_sdk_version` string, nullable
    - `target_sdk_version` string, nullable
    - `is_enabled` boolean
    - `is_default` boolean
    - `enterprise` string, url, required
    - `application` string, url
    - `approval_status` 'AVAILABLE' | 'ACCEPTED' | 'APPROVED' | 'REJECTED'

## 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/versions/e1f64cbb488e/schema)
