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
Path parameters
Unique identifier for the provisioning profile
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"
}
}