# Retrieve location details for all managed devices gets the locations of all managed devices ## Endpoint `GET /api/mdm/devices/locations` ## Request ### Request URL https://[{serverurl}](https://www.manageengine.com/mobile-device-management/help/api/cloud/oauth-authentication-endpoint-domain.html)/api/mdm/devices/locations ### Scope `MDMOnDemand.MDMInventory.READ` ### Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ### Request Parameters #### Request Headers - **Accept** (`string`, Mandatory): `application/json` #### 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) - **to** (`string`, Optional) ### Sample Request ```curl curl --request GET \ --url https://appdomain/api/mdm/devices/locations \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' ``` ## Response ### HTTP Code 200 #### Response Body: `application/json` - `JSON object` - **deviceLocationMap** (`JSON object`): Map of device IDs to arrays of location objects containing latitude, longitude, added_time, and located_time ### Possible Response Codes - **200** (`HTTP code`) ### Sample Response: HTTP 200 Location map for all managed devices ```json { "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" } ] } } ``` ## Rate Limits ![](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **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.