Retrieve location details for all managed devices gets the locations of all managed devices
Request URL https://{server-hostname}:8383/api/mdm/devices/locations
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
last_known boolean Optional
When true, returns the last-known data even when the device is offline. Default: false
from string Optional
Start of the result range or time window (epoch milliseconds for time filters, zero-based index for ranges)
Curl
Java
Python
Deluge
PowerShell
Copied!
curl --request GET \
--url 'https://appdomain/api/mdm/devices/locations?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&last_known=SOME_BOOLEAN_VALUE&from=SOME_STRING_VALUE&to=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/mdm/devices/locations?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&last_known=SOME_BOOLEAN_VALUE&from=SOME_STRING_VALUE&to=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/mdm/devices/locations?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&last_known=SOME_BOOLEAN_VALUE&from=SOME_STRING_VALUE&to=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" + "&" + "last_known=value" + "&" + "from=value" + "&" + "to=value";
headersMap = Map();
headersMap.put("Accept", "application/json");
response = invokeUrl
[
url: "https://appDomain/api/mdm/devices/locations" + "?" + 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/mdm/devices/locations?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&last_known=SOME_BOOLEAN_VALUE&from=SOME_STRING_VALUE&to=SOME_STRING_VALUE' -Method GET -Headers $headersResponse Parameters - HTTP code 200 Response Body - application/json JSON Object
Hide Sub-Attributes deviceLocationMap JSON Object
Map of device IDs to arrays of location objects containing latitude, longitude, added_time, and located_time
Show Sub-Attributes deviceId JSON Array
Array of locations for the device
Show Sub-Attributes JSON Object
Show Sub-Attributes locations JSON Object
Location object containing latitude, longitude, added_time, and located_time
Show Sub-Attributes added_time string
Timestamp when the location was recorded on the server
latitude string
Latitude of the device location
longitude string
Longitude of the device location
located_time string
Timestamp when the device was at the location
Possible Response Codes Sample Response: HTTP 200 Location map for all managed devices
Copied!
{
"deviceLocationMap": {
"9007199254741002": [
{
"added_time": "1523370360800",
"latitude": "37.7850",
"located_time": "1523370128600",
"longitude": "-122.4094"
}
],
"9007199254741001": [
{
"added_time": "1523370360750",
"latitude": "37.7749",
"located_time": "1523370128573",
"longitude": "-122.4194"
}
]
}
}
▼ 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.