---
title: "Get all VPP tokens for the tenant"
method: GET
path: "/tenant/v0/vpptokens/"
tags: ["tenant_VPP Token Management"]
---

# Get all VPP tokens for the tenant

`GET /tenant/v0/vpptokens/`

⚠️ iOS/iPadOS/tvOS only.

Returns all Volume Purchase Program (VPP) tokens registered to the Esper tenant.

Use this endpoint to audit which VPP tokens are currently on file, check their metadata and expiry status, and identify tokens that need renewal before they affect app distribution.

**About List VPP Tokens**

VPP tokens enable Esper to distribute paid and free apps from the Apple App Store to managed iOS devices on behalf of an Apple Business organization. Each token is associated with a specific location in Apple Business, and Esper recommends tying one token to one location to avoid app installation conflicts. Tokens expire annually and must be renewed before expiry to maintain uninterrupted app management. The response includes pagination fields (count, next, previous) and an array of VPPToken objects.

**Key Fields / Query Parameters**

id — UUID of the VPP token record in Esper.

meta — Object containing token metadata, including expiry information.

created_at / updated_at — Timestamps for auditing when the token was uploaded or last modified.

**Common Use Cases**

Retrieving all VPP tokens to check expiry dates before the annual renewal window

Auditing which Apple Business locations have active tokens registered in Esper

Verifying a VPP token was successfully stored after upload

**Best Practices**

Monitor meta for expiry dates and renew tokens before they lapse; expired VPP tokens will block app installations and updates on enrolled iOS devices.

Associate each VPP token with a dedicated, Esper-specific Apple Business location to prevent conflicts with other MDM platforms.

If you manage multiple regions, use the VPP country selection feature in Apple MDM Management to configure up to five countries per token.

## Response `200`

VPP tokens for the Tenant

- object
  - `code` integer
  - `message` string
  - `content` object
    - `count` integer
    - `previous` string
    - `next` string
    - `results` TenantVPPToken[]
      - `id` string, uuid
      - `tenant_id` string, required
      - `key` string
      - `meta` object
      - `created_by` string, required
      - `updated_by` string, required
      - `created_at` string, date-time
      - `updated_at` string, date-time

## Other responses

- `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)
