# Updates an existing data group Updates an existing data group by its unique identifier. ## Endpoint `PUT /endpointdlp/api/data-classification/data-group/data-group-details/{dataGroupId}` ## Request ### Request URL `https://{serverurl}/endpointdlp/api/data-classification/data-group/data-group-details/{dataGroupId}` ### Scope `DesktopCentralCloud.EndpointDLP.UPDATE` ### Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ### Request Parameters #### Request Headers - **Accept** (`string`, Mandatory): `application/dataGroupDetail.v1+json` - **Content-Type** (`string`, Mandatory): `application/dataGroupDetail.v1+json` #### Path Parameters - **dataGroupId** (`string`, Mandatory): Unique identifier of the data group. Fetch from [Get All Data Groups](https://www.manageengine.com/products/desktop-central/help/api/cloud/edlp-get-all-data-groups.html). #### Request Body `application/json` - `JSON Object` - **dataGroupDetail** (`JSON Object`, Mandatory): Data group detail wrapper ### Sample Request ```curl curl --request PUT \ --url https://appdomains/endpointdlp/api/data-classification/data-group/data-group-details/{dataGroupId} \ --header 'Accept: application/dataGroupDetail.v1+json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/dataGroupDetail.v1+json' \ --data '{"dataGroupDetail":{"dataGroupId":"602","lastModifiedTime":"1776085156095","creationTime":"1776085156095","lastModifiedUser":"john.doe","dataRuleDetails":[{"dataRuleId":"11","noOfOccurrence":"2"}],"dataGroupDescription":"Updated group for PII rules","dataGroupName":"PII Data Group Updated","createdUser":"john.doe","dataRuleSummaryBeanList":[{"regexSubRuleBean":{"dictionaryWordList":[],"regexValueList":["\\d{3}-\\d{2}-\\d{4}"]},"keywordSubRuleBean":null,"dataRuleId":"1000602","noOfOccurrence":"2","extensionList":null,"dataRuleName":"SSN Detection Rule","fingerprintSubRuleBean":null,"subRuleTypeId":1},{"regexSubRuleBean":null,"keywordSubRuleBean":{"fileDetailBean":{"fileName":"confidential-keywords.txt","fileLocation":"/dlp/refdata/uploads/confidential-keywords.txt"},"caseSensitive":false},"dataRuleId":"1000603","noOfOccurrence":"1","extensionList":null,"dataRuleName":"Confidential Keyword Rule","fingerprintSubRuleBean":null,"subRuleTypeId":2},{"regexSubRuleBean":null,"keywordSubRuleBean":null,"dataRuleId":"1000604","noOfOccurrence":"1","extensionList":null,"dataRuleName":"Source Code Fingerprint Rule","fingerprintSubRuleBean":{"fileDetailBean":{"fileName":"source-code-template.docx","fileLocation":"/dlp/refdata/uploads/source-code-template.docx"}},"subRuleTypeId":3}]}}' ``` ### Sample Request Body Update an existing data group containing one rule of each sub-rule type (regex, keyword, fingerprint). For keyword/fingerprint rules, `fileName` and `fileLocation` come from the Upload Reference File API response. ```json { "dataGroupDetail": { "dataGroupId": "602", "lastModifiedTime": "1776085156095", "creationTime": "1776085156095", "lastModifiedUser": "john.doe", "dataRuleDetails": [ { "dataRuleId": "11", "noOfOccurrence": "2" } ], "dataGroupDescription": "Updated group for PII rules", "dataGroupName": "PII Data Group Updated", "createdUser": "john.doe", "dataRuleSummaryBeanList": [ { "regexSubRuleBean": { "dictionaryWordList": [], "regexValueList": [ "\\d{3}-\\d{2}-\\d{4}" ] }, "keywordSubRuleBean": null, "dataRuleId": "1000602", "noOfOccurrence": "2", "extensionList": null, "dataRuleName": "SSN Detection Rule", "fingerprintSubRuleBean": null, "subRuleTypeId": 1 }, { "regexSubRuleBean": null, "keywordSubRuleBean": { "fileDetailBean": { "fileName": "confidential-keywords.txt", "fileLocation": "/dlp/refdata/uploads/confidential-keywords.txt" }, "caseSensitive": false }, "dataRuleId": "1000603", "noOfOccurrence": "1", "extensionList": null, "dataRuleName": "Confidential Keyword Rule", "fingerprintSubRuleBean": null, "subRuleTypeId": 2 }, { "regexSubRuleBean": null, "keywordSubRuleBean": null, "dataRuleId": "1000604", "noOfOccurrence": "1", "extensionList": null, "dataRuleName": "Source Code Fingerprint Rule", "fingerprintSubRuleBean": { "fileDetailBean": { "fileName": "source-code-template.docx", "fileLocation": "/dlp/refdata/uploads/source-code-template.docx" } }, "subRuleTypeId": 3 } ] } } ``` ## Response Parameters ### HTTP 200 Response body: `application/json` - `JSON Object` - **dataGroupDetail** (`JSON Object`): Data group detail wrapper ### HTTP 400 Response body: `application/json` - `JSON Object` - **errorCode** (`string`): Validation error code. Common value: `INTERNAL_ERROR` when the new data group/rule name already exists. - **errorMessage** (`string`): Validation failure message indicating the duplicate name. ### HTTP 401 Response body: `application/json` - `JSON Object` - **errorCode** (`long`): Unauthorized error code returned when authentication credentials are missing, expired, or invalid (authentication=required). - **errorMsg** (`string`): Authentication failure reason. ### HTTP 500 Response body: `application/json` - `JSON Object` - **errorCode** (`string`): Internal error code returned when updating a data group fails. - **errorMessage** (`string`): Failure message describing why the data group could not be updated. ### Sample Response: HTTP 200 Successful data group update containing one rule of each sub-rule type (regex, keyword, fingerprint). ```json { "dataGroupDetail": { "dataGroupId": "602", "createdUserId": "101", "lastModifiedTime": "1776087387580", "creationTime": "1776087387580", "dataGroupDescription": "Updated group for PII rules", "dataRuleSummaryBeanList": [ { "regexSubRuleBean": { "dictionaryWordList": [], "regexValueList": [ "\\d{3}-\\d{2}-\\d{4}" ] }, "keywordSubRuleBean": null, "dataRuleId": "1000602", "noOfOccurrence": "2", "dataRuleDescription": null, "extensionList": null, "dataRuleName": "SSN Detection Rule", "dataRuleType": null, "fingerprintSubRuleBean": null, "subRuleTypeId": 1 }, { "regexSubRuleBean": null, "keywordSubRuleBean": { "fileDetailBean": { "fileName": "confidential-keywords.txt", "fileLocation": "/dlp/refdata/uploads/confidential-keywords.txt" }, "caseSensitive": false }, "dataRuleId": "1000603", "noOfOccurrence": "1", "dataRuleDescription": null, "extensionList": null, "dataRuleName": "Confidential Keyword Rule", "dataRuleType": null, "fingerprintSubRuleBean": null, "subRuleTypeId": 2 }, { "regexSubRuleBean": null, "keywordSubRuleBean": null, "dataRuleId": "1000604", "noOfOccurrence": "1", "dataRuleDescription": null, "extensionList": null, "dataRuleName": "Source Code Fingerprint Rule", "dataRuleType": null, "fingerprintSubRuleBean": { "fileDetailBean": { "fileName": "source-code-template.docx", "fileLocation": "/dlp/refdata/uploads/source-code-template.docx" } }, "subRuleTypeId": 3 } ], "labelId": "0", "lastModifiedUserId": "101", "customerId": "5001", "lastModifiedUser": "john.doe", "dataRuleDetails": [ { "dataRuleId": "11", "noOfOccurrence": "2" } ], "dataGroupName": "PII Data Group Updated", "createdUser": "john.doe" } } ``` ### Sample Response: HTTP 400 Data group name already exists. ```json { "errorMessage": "This Rule Name already exist", "errorCode": "INTERNAL_ERROR" } ``` ### Sample Response: HTTP 401 User unauthorized. ```json { "errorMessage": "Unauthorized access", "errorCode": "UAC_UNAUTHORIZED" } ``` ### Sample Response: HTTP 500 Internal server error. ```json { "errorMessage": "Exception occurred while updating DataGroup", "errorCode": "INTERNAL_ERROR" } ``` ## Rate Limit ![](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.