Updates a dynamic custom group (groupCategory=2). Requires groupId. Only computer-type dynamic groups exist (user-type dynamic is not supported). The criteriaList field replaces all existing criteria entirely — members are re-evaluated after update. If criteriaPattern is omitted, the existing join pattern stored on the group is preserved. Important: Do not include groupType or groupCategory in the request body — these are immutable after creation and will be rejected. Prerequisites: Call Get Dynamic CG Criteria Pattern to discover available columns and operators, and Get Dynamic CG Column Values to fetch valid comparison values.
post /api/1.4/customgroup/updateCg
https://{serverurl}/api/1.4/customgroup/updateCg
DesktopCentralCloud.Common.UPDATECopied!
Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52
Must be application/json. Request body must be valid JSON.
Must be application/json. Only JSON responses are supported.
Resource ID of the group to update. Fetch from Retrieve All Custom Groups.
Updated group name. Max 100 chars.
Updated description. Max 250 chars.
Replaces existing criteria entirely. Members will be re-evaluated. Fetch available columns/operators from Get Dynamic CG Criteria Pattern.
Criteria column ID. Fetch from Get Dynamic CG Criteria Pattern. Column IDs are instance-specific — never hardcode them, always discover via the criteriaPattern endpoint.
How this criteria joins with the next: 'AND' (both must match) or 'OR' (either matches).
Comparison operator. Fetch applicable operators from Get Dynamic CG Criteria Pattern via applicableCriteriaType[].value. Values: 'equal', 'not equal', 'contains', 'not contains', 'starts with', 'not starts with', 'ends with', 'greater than', 'greater or equal', 'less than', 'less or equal', 'between', 'not between', 'on', 'after', 'before'.
Array of string values to compare against. Multiple values act as OR within this criteria. Fetch available values from Get Dynamic CG Column Values.
[Script-based criteria only] Script execution parameters: exit code, script ID, name, and description.
Comma-separated expected exit codes (e.g., '0' for success, '0,1' for success or warning).
Resource ID of the custom script in the scripts repository.
File name of the script (e.g., 'ComplianceCheck.bat').
Human-readable description of what the script checks.
Updated criteria join pattern using 1-based indices (e.g., '1 AND 2'). If omitted, the existing pattern stored on the group is reused.
curl --request POST \
--url https://appdomain/api/1.4/customgroup/updateCg \
--header 'Accept: application/json' \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \
--header 'Content-Type: application/json' \
--data '{"groupId":302,"criteriaList":[{"comparator":"contains","logicalOperator":"AND","columnId":1,"criteriaValue":["Windows 11"]},{"comparator":"equal","logicalOperator":"AND","columnId":3,"criteriaValue":["64-bit"]}]}'Change criteria from a single OS filter to OS and architecture combined.
{
"groupName": "Windows 11 PCs",
"groupId": 302,
"description": "Updated - Windows 11 64-bit workstations only",
"criteriaList": [
{
"comparator": "contains",
"logicalOperator": "AND",
"columnId": 1,
"criteriaValue": [
"Windows 11"
]
},
{
"comparator": "equal",
"logicalOperator": "AND",
"columnId": 3,
"criteriaValue": [
"64-bit"
]
}
],
"criteriaPattern": "1 AND 2"
}
Always 'updateCg' for this endpoint.
Response payload container.
Response payload.
Resource ID of the updated group (returned as string). Use as cgId in Delete CG, or as groupId in a subsequent Update Dynamic CG call.
Current name after update.
API version: '1.4'.
'success' when the request completed without errors.
Always 'updateCg' for this endpoint.
API version: '1.4'.
Always 'error' for error responses.
'70506' (CG_INVALID_DETAILS_TO_UPDATE).
Resolved I18N message: 'No such Custom Group found.' -- group does not exist, user is out of scope, or group is invalid for current product edition.
Always 'updateCg' for this endpoint.
API version: '1.4'.
Always 'error' for error responses.
'70501' (CG_CREATE_UPDATE_PARAMS_MISSING), '70502' (CG_DUPLICATE_NAME), '70509' (CG_DUMMY_CG_RENAME), '70503' (CG_NULL_CRITERIA_PATTERN), '70517' (CG_INVALID_CRITERIA_PATTERN), '70508' (CG_MORE_COMPUTERS_DUMMY_CG), '70513' (CG_INVALID_CREATION_MODE).
Resolved I18N message varies by error code: 'Required parameters are missing to create/update Custom Group.' (70501), 'Custom group name is already in use.' (70502), 'All Features Group cannot be renamed.' (70509), 'Criteria pattern is empty.' (70503), 'Invalid criteria pattern.' (70517), 'Computer limit exceeded for free edition.' (70508), 'Only manually created Custom Group is allowed to be accessed using external apis.' (70513).
Always 'updateCg' for this endpoint.
API version: '1.4'.
Always 'error' for error responses.
Internal error code: '1003' (INTERNAL_ERROR).
Resolved I18N message, typically: An internal error occurred while processing the request.
Criteria updated and member re-evaluation triggered.
{
"message_type": "updateCg",
"message_response": {
"updatecg": {
"groupName": "Windows 11 PCs",
"cgResourceId": "302"
}
},
"message_version": "1.4",
"status": "success"
}
Group ID does not exist or user lacks access.
{
"error_description": "No such Custom Group found.",
"message_type": "updateCg",
"error_code": "70506",
"message_version": "1.4",
"status": "error"
}
groupId or criteriaList is missing.
{
"error_description": "Required parameters are missing to create/update Custom Group.",
"message_type": "updateCg",
"error_code": "70501",
"message_version": "1.4",
"status": "error"
}
Unexpected server-side failure during update.
{
"error_description": "An internal error occurred while processing the request.",
"message_type": "updateCg",
"error_code": "1003",
"message_version": "1.4",
"status": "error"
}
![]()
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.
© 2026, Zoho Corporation Pvt. Ltd. All Rights Reserved.