Retrieve a list of managed devices gets list of devices and its details
Request URL https://{server-hostname}:8383/api/v1/mdm/devices
Scope
Header Authorization: d92d4xxxxxxxxxxxxx15f52
Request Parameters - Request Headers - Query Parameters limit integer Optional
Maximum number of records to return in a single response. Used together with offset for pagination
skip-token string Optional
Pagination continuation token returned by a previous response. Pass it to fetch the next page of results
offset integer Optional
Zero-based index of the first record to return. Used together with limit for pagination
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
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
exclude_removed boolean Optional
device_type string Optional
Filter results by device type. Allowed values: 1=Mobile, 2=Tablet, 3=Laptop, 4=Desktop, 5=TV
select_all boolean Optional
When true, applies the operation to every record matching the current filter rather than to specific IDs. Default: false
device_group_unassigned boolean Optional
When true, returns only devices that are not assigned to any device group. Default: false
summary boolean Optional
When true, returns only a lightweight summary projection of the resource instead of full details. Default: false
include_all boolean Optional
serial_number string Optional
customer_ids string Optional
is_tree_source boolean Optional
exclude_agent string Optional
is_supervised boolean Optional
Curl
Java
Python
Deluge
PowerShell
Copied!
curl --request GET \
--url 'https://appdomain/api/v1/mdm/devices?limit=SOME_INTEGER_VALUE&skip-token=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&delta-token=SOME_STRING_VALUE&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&email=SOME_STRING_VALUE&group_id=SOME_INTEGER_VALUE&exclude_removed=SOME_BOOLEAN_VALUE&owned_by=SOME_INTEGER_VALUE&device_type=SOME_STRING_VALUE&select_all=SOME_BOOLEAN_VALUE&device_group_unassigned=SOME_BOOLEAN_VALUE&summary=SOME_BOOLEAN_VALUE&imei=SOME_STRING_VALUE&include_all=SOME_BOOLEAN_VALUE&serial_number=SOME_STRING_VALUE&customer_ids=SOME_STRING_VALUE&is_tree_source=SOME_BOOLEAN_VALUE&exclude_agent=SOME_STRING_VALUE&is_supervised=SOME_BOOLEAN_VALUE&probeid=SOME_STRING_VALUE&start_date=SOME_STRING_VALUE&end_date=SOME_STRING_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?limit=SOME_INTEGER_VALUE&skip-token=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&delta-token=SOME_STRING_VALUE&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&email=SOME_STRING_VALUE&group_id=SOME_INTEGER_VALUE&exclude_removed=SOME_BOOLEAN_VALUE&owned_by=SOME_INTEGER_VALUE&device_type=SOME_STRING_VALUE&select_all=SOME_BOOLEAN_VALUE&device_group_unassigned=SOME_BOOLEAN_VALUE&summary=SOME_BOOLEAN_VALUE&imei=SOME_STRING_VALUE&include_all=SOME_BOOLEAN_VALUE&serial_number=SOME_STRING_VALUE&customer_ids=SOME_STRING_VALUE&is_tree_source=SOME_BOOLEAN_VALUE&exclude_agent=SOME_STRING_VALUE&is_supervised=SOME_BOOLEAN_VALUE&probeid=SOME_STRING_VALUE&start_date=SOME_STRING_VALUE&end_date=SOME_STRING_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?limit=SOME_INTEGER_VALUE&skip-token=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&delta-token=SOME_STRING_VALUE&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&email=SOME_STRING_VALUE&group_id=SOME_INTEGER_VALUE&exclude_removed=SOME_BOOLEAN_VALUE&owned_by=SOME_INTEGER_VALUE&device_type=SOME_STRING_VALUE&select_all=SOME_BOOLEAN_VALUE&device_group_unassigned=SOME_BOOLEAN_VALUE&summary=SOME_BOOLEAN_VALUE&imei=SOME_STRING_VALUE&include_all=SOME_BOOLEAN_VALUE&serial_number=SOME_STRING_VALUE&customer_ids=SOME_STRING_VALUE&is_tree_source=SOME_BOOLEAN_VALUE&exclude_agent=SOME_STRING_VALUE&is_supervised=SOME_BOOLEAN_VALUE&probeid=SOME_STRING_VALUE&start_date=SOME_STRING_VALUE&end_date=SOME_STRING_VALUE", headers=headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
parameters = "limit=value" + "&" + "skip-token=value" + "&" + "delta-token=value" + "&" + "searchkey=value" + "&" + "searchfield=value" + "&" + "is_allowed_apps=value" + "&" + "is_app_purchased_from_portal=value" + "&" + "search=value" + "&" + "app_scope=value" + "&" + "platform=value" + "&" + "email=value" + "&" + "group_id=value" + "&" + "exclude_removed=value" + "&" + "owned_by=value" + "&" + "device_type=value" + "&" + "select_all=value" + "&" + "device_group_unassigned=value" + "&" + "summary=value" + "&" + "imei=value" + "&" + "include_all=value" + "&" + "serial_number=value" + "&" + "customer_ids=value" + "&" + "is_tree_source=value" + "&" + "exclude_agent=value" + "&" + "is_supervised=value" + "&" + "probeid=value" + "&" + "start_date=value" + "&" + "end_date=value";
headersMap = Map();
headersMap.put("Accept", "application/json");
response = invokeUrl
[
url: "https://appDomain/api/v1/mdm/devices" + "?" + 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?limit=SOME_INTEGER_VALUE&skip-token=SOME_STRING_VALUE&offset=SOME_INTEGER_VALUE&delta-token=SOME_STRING_VALUE&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&email=SOME_STRING_VALUE&group_id=SOME_INTEGER_VALUE&exclude_removed=SOME_BOOLEAN_VALUE&owned_by=SOME_INTEGER_VALUE&device_type=SOME_STRING_VALUE&select_all=SOME_BOOLEAN_VALUE&device_group_unassigned=SOME_BOOLEAN_VALUE&summary=SOME_BOOLEAN_VALUE&imei=SOME_STRING_VALUE&include_all=SOME_BOOLEAN_VALUE&serial_number=SOME_STRING_VALUE&customer_ids=SOME_STRING_VALUE&is_tree_source=SOME_BOOLEAN_VALUE&exclude_agent=SOME_STRING_VALUE&is_supervised=SOME_BOOLEAN_VALUE&probeid=SOME_STRING_VALUE&start_date=SOME_STRING_VALUE&end_date=SOME_STRING_VALUE' -Method GET -Headers $headersResponse Parameters - HTTP code 200 Response Body - application/json JSON Object
Hide Sub-Attributes devices JSON Array
Array of managed device objects
Show Sub-Attributes JSON Object
Show Sub-Attributes device_id string
Unique identifier of the managed device
os_version string
Operating system version installed on the device
is_lost_mode_enabled boolean
Whether Lost Mode is currently enabled on the device
owned_by string
Device ownership type: 1 - Corporate, 2 - Personal
is_removed string
(Deprecated) Whether the device is removed from management
product_name string
Manufacturer or product name of the device
device_name string
Assigned name of the device
platform_type string
Platform type of the device (e.g., android, ios, windows)
platform_type_id string
Platform type ID: 1 - iOS, 2 - Android, 3 - Windows
serial_number string
Hardware serial number of the device
user JSON Object
User details assigned to the device
Show Sub-Attributes user_name string
Name of the user assigned to the device
user_id string
Unique identifier of the assigned user
user_email string
Email address of the assigned user
imei long
International Mobile Equipment Identity number
summary JSON Object
Summary counts of profiles, apps, documents, and groups
Show Sub-Attributes profile_count string
Number of profiles installed on the device
app_count string
Number of apps on the device
doc_count string
Number of documents on the device
group_count string
Number of groups the device belongs to
Possible Response Codes Sample Response: HTTP 200 List of managed devices with user and summary details
Copied!
{
"devices": [
{
"summary": {
"doc_count": "1",
"group_count": "2",
"profile_count": "5",
"app_count": "10"
},
"device_id": "9007199254741001",
"os_version": "8.0.0",
"is_lost_mode_enabled": false,
"owned_by": "2",
"is_removed": "false",
"serial_number": "2321bkbkqgidga1",
"product_name": "samsung",
"device_name": "admin_SM-G935F",
"platform_type": "android",
"imei": 357327071694307,
"model": "SM-G935F",
"udid": "f8c4071d394ef48e",
"platform_type_id": "2",
"user": {
"user_email": "admin@zylker.com",
"user_id": "9007199254740999",
"user_name": "admin"
}
}
]
}
▼ 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.