---
title: "Get provisioning profile version by ID"
method: GET
path: "/v2/provisioning-profiles/{id}/versions/{versionId}"
tags: ["apps_management_Provisioning Profiles"]
---

# Get provisioning profile version by ID

`GET /v2/provisioning-profiles/{id}/versions/{versionId}`

⚠️ Apple devices only.

Retrieve a specific version of an iOS provisioning profile by both the parent profile UUID and the version UUID, including a signed download URL for that version's file.
Returns the full version record: Apple-extracted fields (UUID, expiration date, entitlements, platforms, developer certificates, time_to_live), Esper audit fields, and a signed download_url for the .mobileprovision file. Use this when you need the complete details or download URL for a precise profile version rather than just the most recent one.

**About Get Provisioning Profile Version by ID**

Provisioning profile versions in Esper track individual .mobileprovision uploads associated with a given App ID. A profile can accumulate multiple versions over its lifetime as certificates are renewed or profile configurations change. This endpoint targets a single version by its versionId, making it useful for confirming the exact state of a version currently attached to a blueprint or for generating a fresh download link for a specific version.

**Key Fields / Path Parameters**

id (required) — Esper UUID of the parent provisioning profile

versionId (required) — Esper UUID of the specific profile version

uuid (response) — Apple's own UUID for this version, distinct from Esper's id

expiration_date (response) — When this version's Apple authorization expires

time_to_live (response) — Days remaining from creation date to expiration

provisions_all_devices (response) — true for enterprise profiles covering all devices

entitlements (response) — JSON object of app capabilities granted by this profile

download_url (response) — Signed S3 URL for downloading this version's file; time-limited

**Common Use Cases**

Retrieving the full entitlements and certificate details for a specific profile version before attaching it to a blueprint

Generating a fresh signed download URL for a known profile version

Confirming expiration and time_to_live for a version currently in use by managed devices

**Best Practices**

Use the versions list endpoint (GET /v2/provisioning-profiles/{id}/versions) to discover valid versionId values

The download_url is time-limited; fetch it fresh when a download is needed

Check provisions_all_devices to confirm whether the version requires individual device registration or covers all devices (enterprise behavior)

## Path parameters

- `id` string, uuid, required — Unique identifier for the provisioning profile
- `versionId` string, uuid, required — Unique identifier for the specific version of the provisioning profile

## Response `200`

Success

- object
  - `content` AppsManagementProvisioningProfileVersionWithDownloadResponse
    - `id` string, uuid — Primary key and unique identifier for this version
    - `profile_id` string, uuid — Foreign key reference to the parent ProvisioningProfile
    - `uuid` string — Apple's UUID for this specific provisioning profile version
    - `name` string — Display name of the provisioning profile version
    - `sha256_hash` string — SHA256 hash of the provisioning profile file for duplicate detection
    - `creation_date` string, date-time — When Apple created this provisioning profile (from .mobileprovision file)
    - `expiration_date` string, date-time — When this provisioning profile expires (from Apple)
    - `time_to_live` integer — Days until expiration from creation date
    - `provisions_all_devices` boolean — Whether this profile provisions all devices (enterprise profiles)
    - `is_xcode_managed` boolean — Whether this profile is managed by Xcode automatically
    - `platforms` string — JSON array of supported platforms (iOS, macOS, etc.)
    - `entitlements` string — JSON object of app entitlements and capabilities
    - `developer_certificates` string — JSON array of developer certificates included in this profile
    - `tenant_id` string, uuid — Tenant that owns this provisioning profile version
    - `created_by` string — User identifier who uploaded this version
    - `updated_by` string — User identifier who last modified this version record
    - `created_at` string, date-time — Timestamp when this version record was created in the database
    - `updated_at` string, date-time — Timestamp when this version record was last modified
    - `download_url` string, uri — Signed URL for downloading the provisioning profile file

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