Retrieve firmware details for a Mac machine gets the firmware info of the device
Request URL https://{server-hostname}:8383/api/v1/mdm/devices/{device_id}/firmware
Scope
Header Authorization: d92d4xxxxxxxxxxxxx15f52
Request Parameters - Request Headers - Path Parameters - Query Parameters searchkey string Optional
Value to search for. Must be used in combination with searchfield to specify which field is searched
searchfield string Optional
Name of the field to search against. Used together with searchkey (e.g., name, email, udid)
is_allowed_apps boolean Optional
Set to true to return apps from the allow list, false to return apps from the block list
is_app_purchased_from_portal boolean Optional
Set to true to restrict results to apps purchased through the enterprise app portal (VPP/managed Google Play). Default: false
search string Optional
Free-text search string applied to the default searchable fields of the resource
app_scope string Optional
Filter applications by their assignment scope. Allowed values: 1=All, 2=Assigned to groups, 3=Assigned to devices
platform string Optional
Filter results by device platform. Allowed values: 1=iOS, 2=Android, 3=Windows, 4=macOS, 6=tvOS
delta-token string Optional
Token used for delta/incremental fetches. Pass the token returned from a previous response to retrieve only items modified since that point
skip-token string Optional
Pagination continuation token returned by a previous response. Pass it to fetch the next page of results
limit integer Optional
Maximum number of records to return in a single response. Used together with offset for pagination
Curl
Java
Python
Deluge
PowerShell
Copied!
curl --request GET \
--url 'https://appdomain/api/v1/mdm/devices/{device_id}/firmware?searchkey=SOME_STRING_VALUE&searchfield=SOME_STRING_VALUE&is_allowed_apps=SOME_BOOLEAN_VALUE&is_app_purchased_from_portal=SOME_BOOLEAN_VALUE&search=SOME_STRING_VALUE&app_scope=SOME_STRING_VALUE&platform=SOME_STRING_VALUE&delta-token=SOME_STRING_VALUE&skip-token=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE' \
--header 'Accept: application/json' \
--header 'Authorization: d92d4xxxxxxxxxxxxx15f52'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/devices/{device_id}/firmware?searchkey=SOME_STRING_VALUE&searchfield=SOME_STRING_VALUE&is_allowed_apps=SOME_BOOLEAN_VALUE&is_app_purchased_from_portal=SOME_BOOLEAN_VALUE&search=SOME_STRING_VALUE&app_scope=SOME_STRING_VALUE&platform=SOME_STRING_VALUE&delta-token=SOME_STRING_VALUE&skip-token=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE"))
.header("Accept", "application/json")
.header("Authorization", " d92d4xxxxxxxxxxxxx15f52")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
import http.client
conn = http.client.HTTPSConnection("appdomain")
headers = {
'Accept': "application/json",
'Authorization': " d92d4xxxxxxxxxxxxx15f52"
}
conn.request("GET", "/api/v1/mdm/devices/{device_id}/firmware?searchkey=SOME_STRING_VALUE&searchfield=SOME_STRING_VALUE&is_allowed_apps=SOME_BOOLEAN_VALUE&is_app_purchased_from_portal=SOME_BOOLEAN_VALUE&search=SOME_STRING_VALUE&app_scope=SOME_STRING_VALUE&platform=SOME_STRING_VALUE&delta-token=SOME_STRING_VALUE&skip-token=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
parameters = "searchkey=value" + "&" + "searchfield=value" + "&" + "is_allowed_apps=value" + "&" + "is_app_purchased_from_portal=value" + "&" + "search=value" + "&" + "app_scope=value" + "&" + "platform=value" + "&" + "delta-token=value" + "&" + "skip-token=value" + "&" + "limit=value";
headersMap = Map();
headersMap.put("Accept", "application/json");
response = invokeUrl
[
url: "https://appDomain/api/v1/mdm/devices/{device_id}/firmware" + "?" + parameters
type: GET
headers: headersMap
connection: connection_name
]
info response;
$headers=@{}
$headers.Add("Accept", "application/json")
$headers.Add("Authorization", " d92d4xxxxxxxxxxxxx15f52")
$response = Invoke-WebRequest -Uri 'https://appdomain/api/v1/mdm/devices/{device_id}/firmware?searchkey=SOME_STRING_VALUE&searchfield=SOME_STRING_VALUE&is_allowed_apps=SOME_BOOLEAN_VALUE&is_app_purchased_from_portal=SOME_BOOLEAN_VALUE&search=SOME_STRING_VALUE&app_scope=SOME_STRING_VALUE&platform=SOME_STRING_VALUE&delta-token=SOME_STRING_VALUE&skip-token=SOME_STRING_VALUE&limit=SOME_INTEGER_VALUE' -Method GET -Headers $headersResponse Parameters - HTTP code 200 Response Body - application/json JSON Object
Hide Sub-Attributes is_firmware_change_pending boolean
Whether a restart is required for firmware changes to take effect
is_roms_allowed boolean
Whether ROMS loading is allowed
is_firmware_password_exists boolean
Whether firmware password is enabled (manually or through MDM)
firmware_mode integer
Firmware mode: 1 - Command Mode, 2 - Full Mode
managed_password_id integer
Managed password ID (-1 = password not set through MDM)
Possible Response Codes Sample Response: HTTP 200 {
"is_firmware_change_pending": false,
"is_roms_allowed": false,
"is_firmware_password_exists": false,
"firmware_mode": 1,
"managed_password_id": -1
}
▼ Show full
Duration: 1 minute | Threshold: 250 | 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.