Retrieve location details for a specific managed device gets the locations of the device
Request URL https://{server-hostname}:8383/api/v1/mdm/devices/{device_id}/locations
Scope
Header Authorization: d92d4xxxxxxxxxxxxx15f52
Request Parameters - Request Headers - Path Parameters - 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
no_of_days integer Optional
date_in_millis string Optional
Curl
Java
Python
Deluge
PowerShell
Copied!
curl --request GET \
--url 'https://appdomain/api/v1/mdm/devices/{device_id}/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&no_of_days=SOME_INTEGER_VALUE&date_in_millis=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/{device_id}/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&no_of_days=SOME_INTEGER_VALUE&date_in_millis=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/{device_id}/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&no_of_days=SOME_INTEGER_VALUE&date_in_millis=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" + "&" + "no_of_days=value" + "&" + "date_in_millis=value";
headersMap = Map();
headersMap.put("Accept", "application/json");
response = invokeUrl
[
url: "https://appDomain/api/v1/mdm/devices/{device_id}/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/v1/mdm/devices/{device_id}/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&no_of_days=SOME_INTEGER_VALUE&date_in_millis=SOME_STRING_VALUE' -Method GET -Headers $headersResponse Parameters - HTTP code 200 Response Body - application/json JSON Object
Hide Sub-Attributes locations JSON Array
Array of location records with coordinates and timestamps
Show Sub-Attributes JSON Object
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 history for the device
Copied!
{
"locations": [
{
"added_time": "1523370360750",
"latitude": "37.7749",
"located_time": "1523370128573",
"longitude": "-122.4194"
},
{
"added_time": "1523370460750",
"latitude": "37.7755",
"located_time": "1523370228573",
"longitude": "-122.4180"
}
]
}
▼ 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.