v1

latestOpenAPI 3.0.1Apache 2.02026-08-063494581.6 MB
apps_management_Provisioning Profiles

Delete provisioning profile version by ID

⚠️ Apple devices only.

Delete a specific version of an iOS provisioning profile by profile UUID and version UUID, removing it from the tenant's profile inventory. On success, returns the deleted version record. A version that is currently referenced by a published blueprint cannot be deleted — remove the profile from the blueprint first before deleting the version. Deletion removes the version from Esper's records; the .mobileprovision file will no longer be accessible via Esper.

About Delete Provisioning Profile Version

Esper stores provisioning profiles as parent records with one or more versioned uploads underneath. Deletion operates at the version level, not the profile level — deleting all versions of a profile does not automatically remove the parent profile record. This granular control allows teams to retire expired versions while keeping the profile record intact for future uploads. The Console enforces a guard against deleting versions attached to published blueprints; the API similarly returns an error in that case.

Key Fields / Path Parameters

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

versionId (required) — Esper UUID of the specific version to delete

Response body contains the deleted version's full record (same schema as the GET version endpoint)

Common Use Cases

Removing an expired profile version to keep the tenant's profile inventory clean

Deleting a version uploaded by mistake before it is attached to any blueprint

Cycling out old versions after uploading a renewed profile and updating blueprints to reference the new version

Best Practices

Confirm the version is not referenced by any published blueprint before calling this endpoint; the API will reject the deletion if it is

Use the versions list endpoint (GET /v2/provisioning-profiles/{id}/versions) to audit versions before deleting

When rotating expired profiles, follow this order: upload renewal → update blueprint → delete expired version

Workflow

Use GET /v2/provisioning-profiles/{id}/versions to identify the versionId to remove

Confirm the version is not attached to any published blueprint (detach it first if so)

Call DELETE /v2/provisioning-profiles/{id}/versions/{versionId}

Verify deletion by confirming the version no longer appears in the versions list

delete/v2/provisioning-profiles/{id}/versions/{versionId}

Path parameters

idstring uuid required

Unique identifier for the provisioning profile

versionIdstring uuid required

Unique identifier for the specific version of the provisioning profile to delete

Response

Success

Example response

{
  "content": {
    "download_url": "https://s3.amazonaws.com/bucket/provisioning-profiles/version.mobileprovision?signature=abc123"
  }
}