---
title: "Force refresh of VPP app version metadata"
method: POST
path: "/v2/itunesapps/{appId}/refresh-version"
tags: ["apps_management_VPP App Management"]
---

# Force refresh of VPP app version metadata

`POST /v2/itunesapps/{appId}/refresh-version`

Forces an on-demand refresh of a single VPP app's iTunes version metadata.

Synchronously re-fetches the latest iTunes metadata for the given app under the caller's tenant and persists it, using the same write path as the daily VPP version cron job, but scoped to just that one (tenant, app_id) pair. Returns the refreshed app details directly so callers can render updated info without a follow-up GET.

**About VPP App Refresh**

VPP apps are normally kept in sync with Apple's iTunes catalog via a daily background cron job; this endpoint lets a caller trigger that same sync immediately for a single app rather than waiting for the next scheduled run.

**Key Fields / Query Parameters**

- appId — UUID of the VPP app to refresh, passed in the path

**Common Use Cases**

- Immediately pulling a newly released app version's metadata into Esper instead of waiting for the daily cron
- Refreshing stale iTunes metadata (icon, version, size) for a specific app right before deployment

**Best Practices**

- Use this for one-off, on-demand refreshes rather than as a substitute for the daily sync — it's scoped to a single app, not the full catalog
Synchronously re-fetches the latest iTunes metadata for a single VPP
app under the caller's tenant and persists it. Same write path as the
daily VPP version cron, scoped to one (tenant, app_id). Returns
the refreshed app details so the UI can render without a follow-up GET.

## Path parameters

- `appId` string, uuid, required

## Response `200`

Success

- object
  - `content` AppsManagementItunesAppInfoV2
    - `app_id` string, uuid — App ID in UUID format
    - `apple_app_id` string — App ID from Apple
    - `app_version_id` string, uuid — current version of the app in UUID format
    - `apple_app_version` string — current version of the app
    - `app_name` string — name of the app
    - `icon_url` string — url of the app's icon
    - `developer` string — developer of the app
    - `itunes_url` string — URL for the app on the iTunes store
    - `genres` string[]
    - `device_families` string[]
    - `bundle_id` string — bundle ID of the app
    - `price` number — price of the app
    - `app_size` integer — size of the app
    - `minimum_os_version` string — minimum OS version required for the app
    - `description` string — description of the app
    - `last_updated_date` string — date the app was last updated
    - `pricing_param` string — pricing parameter

## Other responses

- `400` — Bad Request (invalid app_id or missing headers)
- `401` — Unauthorized
- `404` — Not Found (no vpp_app_ids row for the tenant + app_id, or app not found in iTunes)
- `500` — Internal Server Error

---

[API](https://skmtc.dev/esper/apis/esper-api-reference.md) · [All operations](https://skmtc.dev/esper/apis/esper-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/esper/esper-api-reference/revisions/6b55f43485ae/schema)
