# Initiate MDM profile installation on computers Initiates an MDM profile installation request on one or more computers. ## Endpoint `POST /dcapi/som/computers/actionRequest/mdm-profile/install` ## Request URL `https://{server-hostname}:8383/dcapi/som/computers/actionRequest/mdm-profile/install` ## Scope `SOM.CREATE` ## Header `Authorization: d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** (`string`, Mandatory): `application/computerIdsToInstallMDM.v1+json` - **Accept** (`string`, Mandatory): `application/mdmProfileInstallationStatus.v1+json` ### Request Body `application/json` - JSON Object - **computerIDs** (`array`, Optional): Array of computer resource IDs to perform the operation. Get computer IDs from the response of the [Computers](https://www.manageengine.com/products/desktop-central/help/api/onpremise/computers-getcomputers.html) API, under the `resource_id` field. ## Sample Request ### Curl ```curl curl --request POST \ --url https://appdomain/dcapi/som/computers/actionRequest/mdm-profile/install \ --header 'Accept: application/mdmProfileInstallationStatus.v1+json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/computerIdsToInstallMDM.v1+json' \ --data '{"computerIDs":[2001,2002]}' ``` ### Sample Request Body Install MDM profile on computers ```json { "computerIDs": [ 2001, 2002 ] } ``` ## Response Parameters ### HTTP Code 202 Response Body — `application/json` - JSON Object - **computerIDs** (`array`): Array of computer resource IDs originally submitted in the MDM profile installation request. - **status** (`boolean`): Indicates whether the MDM profile installation request was accepted and initiated successfully. - **message** (`string`): Descriptive message providing details about the installation outcome or any errors encountered. - **actionRequestID** (`string`): Unique tracking identifier for this action request. Use this ID to poll status. - **selectedComputersCount** (`string`): Total number of computers selected by the user for MDM profile installation. - **applicableComputersCount** (`string`): Number of computers that meet the prerequisites for MDM profile installation. - **notApplicableComputersCount** (`string`): Number of computers that do not meet the prerequisites for MDM profile installation (e.g., unsupported OS). - **successComputersCount** (`string`): Number of computers where the MDM profile installation was successfully initiated. - **failureComputersCount** (`string`): Number of computers where the MDM profile installation could not be initiated (e.g., agent offline, pre-check failed). - **mdmEnrollmentInProgress** (`boolean`): Indicates whether the MDM enrollment process is currently running across the selected computers. - **requestedComputers** (`array`): Array of computer resource IDs that were processed for MDM profile installation. ### HTTP Code 400 Response Body — `application/json` - JSON Object - **statusCode** (`string`): HTTP status code (400). - **errorCode** (`string`): API-specific error code identifying the validation failure. - **message** (`string`): Error message describing the validation failure. ### HTTP Code 412 Response Body — `application/json` - JSON Object - **statusCode** (`string`): HTTP status code (412). - **errorCode** (`string`): Precondition failed error code identifying the business logic violation. - **message** (`string`): Error message describing the precondition failed while processing request. ## Possible Response Codes - **202**: HTTP code - **400**: HTTP code - **412**: HTTP code ## Sample Response: HTTP 202 MDM profile install initiated ```json { "computerIDs": [ 2001, 2002 ], "applicableComputersCount": 2, "notApplicableComputersCount": 0, "failureComputersCount": 0, "mdmEnrollmentInProgress": true, "message": "", "selectedComputersCount": 2, "successComputersCount": 0, "actionRequestID": "AR-MDM-1712567890123", "requestedComputers": [ 2001, 2002 ], "status": true } ``` ## Sample Response: HTTP 400 Missing or empty computerIDs in request ```json { "errorCode": "20006", "message": "Resource IDs are not present in the request", "statusCode": 400 } ``` ## Sample Response: HTTP 412 ### Non-admin user cannot access the requested computers ```json { "errorCode": "20005", "message": "Selected computers are not accessible", "statusCode": 412 } ``` ### Some computers are not managed by the server ```json { "errorCode": "30007", "message": "All resources are not managed computers", "statusCode": 412 } ``` ## Rate Limits ![](https://www.zohowebstatic.com/sites/zweb/images/people/ico-help.png) **Duration:** 1 minute | **Threshold:** 30 | **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.