Approve a specific app version in a release label for distribution Approve app version
Request URL https://{serverurl} /api/v1/mdm/apps/{app_id}/labels/{release_label_id}/approve
Scope
Header Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Request Parameters - Path Parameters app_id string Mandatory
Unique identifier of the application. Obtain from the Get App List response
release_label_id string Mandatory
Unique identifier of the release label. Obtain from the Get App Details response
- Request Body application/json JSON object
Hide Sub-Attributes silent_install boolean Optional
Allow silent installation. false = manual from App Catalog
notify_user_via_email boolean Optional
Notify users by e-mail upon distribution
retire_old_version boolean Optional
Retire old versions. If false, old versions removed
version_label string Optional
Channel name for the version label (e.g., Production)
distribute_update boolean Optional
true = distribute approved version to all devices/groups with older versions
Curl
Java
Python
Deluge
PowerShell
Copied!
curl --request POST \
--url https://appdomain/api/v1/mdm/apps/{app_id}/labels/{release_label_id}/approve \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'content-type: application/json' \
--data '{}'import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.io.IOException;
import java.net.http.HttpTimeoutException;
public class Main {
public static void main(String[] args) {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://appdomain/api/v1/mdm/apps/{app_id}/labels/{release_label_id}/approve"))
.header("content-type", "application/json")
.header("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52")
.method("POST", HttpRequest.BodyPublishers.ofString("{}"))
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
import http.client
conn = http.client.HTTPSConnection("appdomain")
payload = "{}"
headers = {
'content-type': "application/json",
'Authorization': "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52"
}
conn.request("POST", "/api/v1/mdm/apps/{app_id}/labels/{release_label_id}/approve", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
headersMap = Map();
headersMap.put("Content-Type", "application/json");
data=Map();
response = invokeUrl
[
url: "https://appDomain/api/v1/mdm/apps/{app_id}/labels/{release_label_id}/approve"
type: POST
headers: headersMap
body: data
connection: connection_name
]
info response;
$headers=@{}
$headers.Add("content-type", "application/json")
$headers.Add("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52")
$response = Invoke-WebRequest -Uri 'https://appdomain/api/v1/mdm/apps/{app_id}/labels/{release_label_id}/approve' -Method POST -Headers $headers -ContentType 'application/json' -Body '{}'▼ Show full
Sample Request Body Approve version and distribute update to all devices/groups with older versions
Copied!
{
"version_label": "Production",
"retire_old_version": false,
"notify_user_via_email": true,
"silent_install": true,
"distribute_update": true
}
▼ Show full
Approve version without auto-distributing to existing devices
Copied!
{
"version_label": "Stable",
"retire_old_version": true,
"notify_user_via_email": false,
"silent_install": false,
"distribute_update": false
}
▼ Show full
Sample Response: HTTP 204 204 No Content▼ Show full
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.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.