---
title: "Get tenant app version by ID"
method: GET
path: "/v2/tenant-apps/{appId}/versions/{versionId}"
tags: ["apps_management_Tenant Apps"]
---

# Get tenant app version by ID

`GET /v2/tenant-apps/{appId}/versions/{versionId}`

Retrieves the full detail record for a single tenant app version.

Returns the TenantAppVersionDetailResponse for the given appId and versionId, with the same legacy_format option for choosing between build_number and version_code.

**About Get Tenant App Version**

⚠️ iOS and Windows only. This is the detail view behind a single entry in the app's version list, useful once you already have both the appId and versionId.

**Common Use Cases**

Confirming a specific version's detail before referencing it in a blueprint or install command

Auditing a specific build's metadata

**Best Practices**

Set legacy_format to false to receive version_code if your integration doesn't depend on the legacy build_number field

**Workflow**

Obtain the appId and versionId from the versions list

Call this endpoint for the full version detail

## Path parameters

- `appId` string, uuid, required
- `versionId` string, uuid, required

## Query parameters

- `legacy_format` boolean

## Response `200`

Success

- object
  - `content` AppsManagementTenantAppVersionDetailResponse
    - `id` string
    - `app_id` string
    - `app_type` 'TENANT_IOS' | 'TENANT_WINDOWS' | 'TENANT_WINDOWS_EXE' | 'TENANT_WINDOWS_UWP'
    - `tenant_id` string
    - `app_name` string
    - `app_icon_url` string
    - `release_notes` string
    - `description` string
    - `file_size_in_kb` integer
    - `device_family` string[]
    - `version_name` string
    - `build_number` string — Build number of the app. Omitted when legacy_format is false.
    - `version_code` string — Version code of the app (same as build_number). Only present when legacy_format is false.
    - `min_sdk_version` string
    - `created_at` string, date-time
    - `updated_at` string, date-time
    - `created_by` string
    - `updated_by` string
    - `is_active` boolean, nullable — Present only when app_type is TENANT_WINDOWS_EXE. True only when install_script, uninstall_script, and success_criteria are all set. Gates downstream install commands — a version with is_active=false cannot be deployed.
    - `success_criteria_type` 'REGISTRY_VALIDATION' | 'FILE_VALIDATION', nullable — Present only when app_type is TENANT_WINDOWS_EXE. Discriminator for the validation check performed after install/uninstall.
    - `success_criteria` union — Present only when app_type is TENANT_WINDOWS_EXE. Contains the validation args. Shape depends on success_criteria_type.
      - AppsManagementWindowsExeRegistryValidationArgs
        - `registry_path` string, required — Registry path. e.g. HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\MyApp
        - `registry_key` string, required — Registry value name within the path.
        - `registry_value` string, required — Expected value.
      - AppsManagementWindowsExeFileValidationArgs
        - `file_path` string, required — File path to check.
    - `app_download_url` string — Presigned URL for downloading the app binary. Present for TENANT_IOS (IPA), TENANT_WINDOWS (MSI), and TENANT_WINDOWS_UWP (MSIX/MSIXBundle) app types.
    - `app_sha256_hash` string — SHA256 hash of the app binary. Present for TENANT_IOS, TENANT_WINDOWS, and TENANT_WINDOWS_UWP app types.
    - `product_code` string — MSI product code. Present only when app_type is TENANT_WINDOWS.
    - `install_script` string, nullable — PowerShell install script content. Present only when app_type is TENANT_WINDOWS_EXE. Null if not yet configured.
    - `uninstall_script` string, nullable — PowerShell uninstall script content. Present only when app_type is TENANT_WINDOWS_EXE. Null if not yet configured.
    - `package_format` 'MSIX' | 'MSIXBUNDLE' — Present only when app_type is TENANT_WINDOWS_UWP. Indicates whether the package is a single .msix or a .msixbundle.
    - `package_family_name` string, nullable — Present only when app_type is TENANT_WINDOWS_UWP. The package family name (PFN) derived from the manifest identity and publisher.
    - `identity_name` string, nullable — Present only when app_type is TENANT_WINDOWS_UWP. The <Identity Name> from the package manifest.
    - `publisher` string, nullable — Present only when app_type is TENANT_WINDOWS_UWP. The <Identity Publisher> from the package manifest.
    - `architecture` string, nullable — Present only when app_type is TENANT_WINDOWS_UWP. Package architecture (e.g. x64, x86, arm64, neutral).
    - `entry_point_type` string, nullable — Present only when app_type is TENANT_WINDOWS_UWP. The application entry point type from the manifest.
    - `aumids` AppsManagementMsixAumid[] — Present only when app_type is TENANT_WINDOWS_UWP. The Application User Model IDs (AUMIDs) exposed by the package, extracted from the manifest at ingest.
      - `application_id` string — The <Application Id> from the package manifest.
      - `aumid` string — The fully-qualified AUMID, formatted as PackageFamilyName!ApplicationId.
      - `is_default` boolean — True for the first launchable entry, treated as the package default.
    - `artifacts` AppsManagementAppVersionArtifact[] — Present only when app_type is TENANT_WINDOWS_UWP. Per-version artifacts (framework dependencies, signing certificates, etc.), each with a presigned download URL.
      - `id` string — The artifact row id (UUID).
      - `artifact_type` string — The artifact discriminator (e.g. "UWP_DEPENDENCY", "UWP_CERTIFICATE").
      - `file_name` string, nullable — The original uploaded filename of the artifact.
      - `app_sha256_hash` string, nullable — SHA256 hash of the uploaded artifact file.
      - `download_url` string, nullable — Presigned S3 URL for downloading the artifact.
      - `metadata` AppsManagementAppVersionArtifactMetadata — Type-specific attributes of an artifact. All fields are optional; only those relevant to the artifact's type are populated.
        - `package_family_name` string, nullable — The dependency package's own package family name (UWP_DEPENDENCY).
        - `package_dependency_name` string, nullable — The <PackageDependency Name> declared by the main package manifest (UWP_DEPENDENCY).
        - `min_version` string, nullable — The minimum required version declared by the main package manifest (UWP_DEPENDENCY).
        - `version_name` string, nullable — The actual version of the uploaded dependency package (UWP_DEPENDENCY).
        - `architecture` string, nullable — The dependency package architecture, e.g. x64, x86, arm64 (UWP_DEPENDENCY).
        - `cert_thumbprint` string, nullable — SHA1 thumbprint of the signing certificate (UWP_CERTIFICATE).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `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)
