# Retrieve the sync status of a specific content token To get VPP account sync status ## Endpoint **GET** `/api/mdm/apps/account/vpp/sync/{vpp_id}` ## Request ### Request URL `https://{server-hostname}:8383/api/mdm/apps/account/vpp/sync/{vpp_id}` ### Scope `MDMDeviceMgmt.READ` ### Header `Authorization: d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Accept** `string` — Mandatory: `application/json` ### Path Parameters - **vpp_id** `string` — Mandatory Unique identifier of the VPP content token. Obtain from the [Add VPP Account](https://www.manageengine.com/products/desktop-central/help/api/onpremise/volumepurchaseprogram-vpp.html)_addVppAccount) or [Get VPP Accounts](https://www.manageengine.com/products/desktop-central/help/api/onpremise/volumepurchaseprogram-vpp.html)_getVppAccount) response ## Sample Request ```curl curl --request GET \ --url https://appdomain/api/mdm/apps/account/vpp/sync/{vpp_id} \ --header 'Accept: application/json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' ``` ## Response Parameters ### HTTP Code 200 Response body: `application/json` | Attribute | Type | Description | |---|---|---| | if_license_insufficient | boolean | true if the content token has insufficient licenses for one or more apps | | if_sync_failed | boolean | Whether the sync failed. true = sync failed | | apps_with_insufficient_licenses | integer | Number of apps with insufficient licenses | | failed_apps_count | integer | Total number of apps that did not sync successfully | | total_apps_count | integer | Total number of apps associated with this content token | | successful_apps_count | integer | Total number of apps that synced successfully | | last_sync_time | long | Epoch timestamp (milliseconds) of the last sync | | completed_apps_count | integer | Total number of apps processed (successful + failed) | | remarks | string | Remarks about the sync status including failure reasons. Can be null or differentClientContext | | status | integer | Sync status code. 0 = Idle, 1 = Downloading App Details, 2 = Syncing Apps | | other_mdm_hostname | string | Hostname of another MDM using this token. Displayed when remarks equals differentClientContext | ## Possible Response Codes | Code | Description | |---|---| | 200 | HTTP code | ## Sample Response: HTTP 200 ### Sync status when idle with no sync initiated ```json { "if_license_insufficient": false, "if_sync_failed": true, "apps_with_insufficient_licenses": 0, "failed_apps_count": 0, "total_apps_count": 0, "successful_apps_count": 0, "last_sync_time": 1621574248750, "completed_apps_count": 0, "remarks": null, "status": 0, "other_mdm_hostname": "Sample MDM" } ``` ### Sync status while apps are being synced ```json { "if_license_insufficient": false, "if_sync_failed": false, "apps_with_insufficient_licenses": 0, "failed_apps_count": 0, "total_apps_count": 10, "successful_apps_count": 5, "last_sync_time": 1621574248750, "completed_apps_count": 5, "remarks": null, "status": 2, "other_mdm_hostname": "" } ``` ## API Rate Limit ![](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **Duration:** 1 minute | **Threshold:** 60 | **Lock period:** 5 minutes Duration - Time window for the threshold. Threshold - Number of API calls allowed within the specified duration. Lock Period - Wait time before consecutive API requests.