---
title: "Get provisioning profiles for a tenant"
method: GET
path: "/v2/provisioning-profiles"
tags: ["apps_management_Provisioning Profiles"]
---

# Get provisioning profiles for a tenant

`GET /v2/provisioning-profiles`

⚠️ Apple devices only.

Retrieve a paginated list of all iOS provisioning profiles registered for the tenant, including a signed download URL for each profile file.
Returns profile metadata extracted from uploaded .mobileprovision files — App ID, team identifier, profile type, and expiration date — along with a signed download_url for retrieving the raw file. Results default to 10 per page and can be filtered by app_identifier, profile_type, team_id, or searched by name and identifier.

**About List Provisioning Profiles**

Provisioning profiles in Esper are uploaded per tenant and then attached to blueprints to authorize Enterprise iOS apps on managed devices. This endpoint provides the full tenant inventory of profiles, useful for auditing coverage, identifying profiles nearing expiration, and confirming which App IDs are registered. Each record represents a profile keyed by App ID; individual uploads of the same App ID create versioned records accessible via the versions sub-resource.

**Key Fields / Query Parameters**

limit — Max results per page; defaults to 10

offset — Number of records to skip for pagination; defaults to 0

app_identifier — Filter by bundle ID (e.g., com.example.app)

profile_type — Filter by development, ad-hoc, app-store, or enterprise

team_id — Filter by Apple Developer Team identifier

search — Search within profile names and identifiers

download_url (response) — Signed S3 URL for downloading the .mobileprovision file

**Common Use Cases**

Auditing which Enterprise app IDs have registered provisioning profiles in the tenant
Identifying profiles approaching expiration before device-side installation failures occur
Retrieving profile IDs needed to fetch version history or attach profiles to blueprints via the API

**Best Practices**

Filter by profile_type=enterprise to focus on profiles relevant to Enterprise app distribution

Use app_identifier filtering when managing profiles for a specific app across multiple versions

Paginate with limit and offset for tenants with large profile inventories; next and prev URLs are included in the response

## Query parameters

- `limit` number — Maximum number of provisioning profiles to return
- `offset` number — Number of provisioning profiles to skip
- `app_identifier` string — Filter by bundle identifier of the associated app
- `profile_type` 'development' | 'ad-hoc' | 'app-store' | 'enterprise' — Filter by profile type
- `team_id` string — Filter by Apple Developer Team identifier
- `search` string — Search in provisioning profile names and identifiers

## Response `200`

Success

- object
  - `content` object
    - `count` integer — Total number of provisioning profiles
    - `prev` string — URL for previous page of results
    - `next` string — URL for next page of results
    - `results` AppsManagementProvisioningProfileWithDownloadResponse[]
      - `id` string, uuid — Unique identifier for the provisioning profile
      - `version_id` string, uuid — Unique identifier for this specific version of the profile
      - `name` string — Display name of the provisioning profile
      - `team_identifier` string — Apple Developer Team identifier
      - `app_identifier` string — Bundle identifier of the associated app
      - `profile_type` 'development' | 'ad-hoc' | 'app-store' | 'enterprise' — Type of profile (development, distribution, etc.)
      - `expiration_date` string, date-time — When the provisioning profile expires
      - `tenant_id` string, uuid — Tenant that owns this provisioning profile
      - `created_at` string, date-time — When the provisioning profile was first created
      - `updated_at` string, date-time — When this version was last updated
      - `created_by` string — User who created the provisioning profile
      - `updated_by` string — User who created this version
      - `download_url` string, uri — Signed URL for downloading the provisioning profile file

## Other responses

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