# Initiate computer removal from Scope of Management Initiates a computer removal request from the Scope of Management. ## Endpoints **DELETE** `/dcapi/som/computers/actionRequest/remove` ## Request URL ``` https://{serverurl}/dcapi/som/computers/actionRequest/remove ``` - `{serverurl}`: Refer to your OAuth authentication endpoint domain. ## Scope ``` DesktopCentralCloud.SOM.DELETE ``` ## Header ``` Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52 ``` ## Request Parameters ### Request Headers - **Content-Type** (string) — Mandatory `application/computerIdsToDelete.v1+json` - **Accept** (string) — Mandatory `application/somComputerDeletedStatus.v1+json` ### Request Body **Content-Type:** `application/json` **Type:** JSON object #### Sub-Attributes - **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/computers-getcomputers.html) API, under the `resource_id` field. ## Sample Request ### Curl ```bash curl --request DELETE \ --url https://appdomain/dcapi/som/computers/actionRequest/remove \ --header 'Accept: application/somComputerDeletedStatus.v1+json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/computerIdsToDelete.v1+json' \ --data '{}' ``` ### 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/dcapi/som/computers/actionRequest/remove")) .header("Content-Type", "application/computerIdsToDelete.v1+json") .header("Accept", "application/somComputerDeletedStatus.v1+json") .header("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") .method("DELETE", HttpRequest.BodyPublishers.ofString("{}")) .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") payload = "{}" headers = { 'Content-Type': "application/computerIdsToDelete.v1+json", 'Accept': "application/somComputerDeletedStatus.v1+json", 'Authorization': "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52" } conn.request("DELETE", "/dcapi/som/computers/actionRequest/remove", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ### Deluge ```javascript headersMap = Map(); headersMap.put("Content-Type", "application/computerIdsToDelete.v1+json"); headersMap.put("Accept", "application/somComputerDeletedStatus.v1+json"); data = Map(); response = invokeUrl [ url: "https://appDomain/dcapi/som/computers/actionRequest/remove" type: DELETE headers: headersMap body: data connection: connection_name ] info response; ``` ### PowerShell ```powershell $headers=@{} $headers.Add("Content-Type", "application/computerIdsToDelete.v1+json") $headers.Add("Accept", "application/somComputerDeletedStatus.v1+json") $headers.Add("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") $response = Invoke-WebRequest -Uri 'https://appdomain/dcapi/som/computers/actionRequest/remove' -Method DELETE -Headers $headers -ContentType 'application/computerIdsToDelete.v1+json' -Body '{}' ``` ## Sample Request Body **Remove computers from SoM** ```json { "computerIDs": [ "5001", "5002" ] } ``` ## Response Parameters ### HTTP 200 **Response Body:** `application/json` **Type:** JSON object #### Sub-Attributes - **status** (boolean) Indicates whether the computer removal request was accepted and the delayed action was successfully queued. - **actionRequestID** (string) Unique tracking identifier for this removal action request. Use this ID to poll progress via removeStatus. - **message** (string) Descriptive message providing additional context about the removal result. Present when an error occurs or additional information is needed. ### HTTP 400 **Response Body:** `application/json` **Type:** JSON object #### Sub-Attributes - **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 412 **Response Body:** `application/json` **Type:** JSON object #### Sub-Attributes - **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 HTTP Status Codes - **200** - **400** - **412** ## Sample Response: HTTP 200 **Removal initiated** ```json { "actionRequestID": "AR-REM-1712567890789", "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 Limiting - **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.