# Retrieve the current processing status of a previously uploaded file Returns the processing status and metadata for a file identified by its `file_id`. Use this to verify whether a file upload has completed before referencing it in other API calls. ## Endpoints **GET** `/api/v1/mdm/files/{file_id}/status` ## Request URL ``` https://{serverurl}/api/v1/mdm/files/{file_id}/status ``` ## Scope ``` MDMOnDemand.MDMDeviceMgmt.READ ``` ## Header ``` Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52 ``` ## Request Parameters ### Path Parameters - **file_id** (long) — Mandatory Unique identifier of the uploaded file. Obtain this from the response of [Upload a File to MDM](https://www.manageengine.com/mobile-device-management/files-upload-file.html) or [Upload a File Using Module Configuration](https://www.manageengine.com/mobile-device-management/files-upload-file-ems.html) ### Query Parameters - **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 ## Sample Request ### Curl ```curl curl --request GET \ --url https://appdomain/api/v1/mdm/files/{file_id}/status \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' ``` ### Java ```java 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/files/{file_id}/status")) .header("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") .method("GET", HttpRequest.BodyPublishers.noBody()) .build(); HttpResponse response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); } } ``` ### Python ```python import http.client conn = http.client.HTTPSConnection("appdomain") headers = { 'Authorization': "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52" } conn.request("GET", "/api/v1/mdm/files/{file_id}/status", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ### Deluge ```javascript headersMap = Map(); headersMap.put("Accept", "application/json"); response = invokeUrl [ url: "https://appDomain/api/v1/mdm/files/{file_id}/status" type: GET headers: headersMap connection: connection_name ] info response; ``` ### PowerShell ```powershell $headers=@{} $headers.Add("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") $response = Invoke-WebRequest -Uri 'https://appdomain/api/v1/mdm/files/{file_id}/status' -Method GET -Headers $headers ``` ## Response Parameters ### HTTP 200 **Response Body**: `application/json` - **status** (string) Current processing status of the file. Possible values: - `PENDING` (queued for processing) - `PROCESSING` (upload in progress) - `COMPLETED` (file ready for use) - `FAILED` (upload or processing failed) - **file_id** (long) Unique identifier of the uploaded file - **file_name** (string) Name of the uploaded file including its extension - **content_type** (string) MIME type of the uploaded file. Common values: - `application/vnd.android.package-archive` (apk) - `application/x-itunes-ipa` (ipa) - `application/zip` (appxbundle, xap, appx, msix) - `application/x-ms-installer` (msi) - **content_length** (string) Length of the uploaded file in bytes - **expiry_time** (long) Unix timestamp (in milliseconds) until when the uploaded file is valid - **created_time** (long) Unix timestamp (in milliseconds) when the file was originally uploaded ## Sample Response: HTTP 200 ### File processing completed and ready for use ```json { "created_time": 1735603200000, "content_type": "application/vnd.android.package-archive", "file_name": "zylker-app.apk", "file_id": 9007199254741076, "expiry_time": 15987913528, "content_length": 2048576, "status": "COMPLETED" } ``` ### File is queued and waiting to be processed ```json { "created_time": 1735603200000, "content_type": "application/x-ms-installer", "file_name": "large-installer.msi", "file_id": 9007199254741078, "expiry_time": 15987913528, "content_length": 52428800, "status": "PENDING" } ``` ## Rate Limit **Duration:** 1 minute **Threshold:** 120 **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.