# Creates a static custom group with explicit member resources Creates a static custom group (groupCategory=1) where members are explicitly specified via resource IDs. Required: groupName, groupType, groupCategory, resourceIds. Group name must be unique and max 100 characters. Prerequisites: Call [Get Available Resources](https://www.manageengine.com/products/desktop-central/help/api/cloud/custom-groups-get-available-resources.html) to discover valid resource IDs to include in resourceIds. ## Endpoints **POST** `/api/1.4/customgroup/addCg` ## Request URL https://[*{serverurl}*](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html)/api/1.4/customgroup/addCg ## Scope `DesktopCentralCloud.Common.UPDATE` ## Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers **Content-Type** `string` **Mandatory** `application/json` Must be application/json. Request body must be valid JSON. **Accept** `string` **Mandatory** `application/json` Must be application/json. Only JSON responses are supported. ### Request Body `application/json` `JSON Object` - **groupName** `string` **Mandatory** Name for the new group. Must be unique. Max 100 chars. > Forbidden characters: ` \ : ; < > ? * " | & # % /` - **groupCategory** `string` **Mandatory** Must be 1 for static groups. - **groupType** `string` **Mandatory** 1 = Computers, 2 = Users. - **description** `string` **Optional** Group description. Max 250 chars. Double quotes not allowed. - **resourceIds** `array` **Mandatory** Array of long resource IDs to add as members. Fetch IDs from [Get Available Resources](https://www.manageengine.com/products/desktop-central/help/api/cloud/custom-groups-get-available-resources.html). ## Sample Request ```curl curl --request POST \ --url https://appdomains/api/1.4/customgroup/addCg \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{"groupName":"Windows Servers","groupType":1,"groupCategory":1,"resourceIds":[101,102,103]}' ``` ## Sample Request Body Create a static computer group with three server members. ```json { "groupName": "Windows Servers", "groupType": 1, "groupCategory": 1, "description": "Production Windows Server machines", "resourceIds": [ 101, 102, 103 ] } ``` Create a static user group with two members. ```json { "groupName": "HR Users", "groupType": 2, "groupCategory": 1, "description": "Human Resources department users", "resourceIds": [ 501, 502 ] } ``` ## Response Parameters ### HTTP Code 200 Response Body — `application/json` `JSON Object` - **message_type** `string` Always 'addCg' for this endpoint. - **message_response** `JSON Object` Response payload container. - **message_version** `string` API version: '1.4'. - **status** `string` 'success' when the request completed without errors. ### HTTP Code 412 Response Body — `application/json` `JSON Object` - **message_type** `string` Always 'addCg' for this endpoint. - **message_version** `string` API version: '1.4'. - **status** `string` Always 'error' for error responses. - **error_code** `string` '70501' (CG_CREATE_UPDATE_PARAMS_MISSING), '70502' (CG_DUPLICATE_NAME), '70504' (CG_INVALID_GROUP_TYPE), '70505' (CG_INVALID_GROUP_CATEGORY), '70503' (CG_NULL_CRITERIA_PATTERN), '70517' (CG_INVALID_CRITERIA_PATTERN), '70508' (CG_MORE_COMPUTERS_DUMMY_CG), '70513' (CG_INVALID_CREATION_MODE). - **error_description** `string` 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), 'Invalid group type.' (70504), 'Invalid group category.' (70505), '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). ### HTTP Code 500 Response Body — `application/json` `JSON Object` - **message_type** `string` Always 'addCg' for this endpoint. - **message_version** `string` API version: '1.4'. - **status** `string` Always 'error' for error responses. - **error_code** `string` Internal error code: '1003' (INTERNAL_ERROR). - **error_description** `string` Resolved I18N message, typically: An internal error occurred while processing the request. ## Possible Response Codes - **200** — HTTP code - **412** — HTTP code - **500** — HTTP code ## Sample Response: HTTP 200 Static computer group created with assigned resource ID. ```json { "message_type": "addCg", "message_response": { "addcg": { "groupName": "Windows Servers", "groupType": "1", "groupCategory": "1", "cgResourceId": "301" } }, "message_version": "1.4", "status": "success" } ``` Static group created but some submitted resource IDs were not found. ```json { "message_type": "addCg", "message_response": { "addcg": { "groupName": "Windows Servers", "groupType": "1", "groupCategory": "1", "invalidResourceIds": [ 999, 998 ], "cgResourceId": "301" } }, "message_version": "1.4", "status": "success" } ``` ## Sample Response: HTTP 412 Required field (groupName, groupType, groupCategory, or resourceIds) is missing. ```json { "error_description": "Required parameters are missing to create/update Custom Group.", "message_type": "addCg", "error_code": "70501", "message_version": "1.4", "status": "error" } ``` A group with this name already exists. ```json { "error_description": "Custom group name is already in use.", "message_type": "addCg", "error_code": "70502", "message_version": "1.4", "status": "error" } ``` ## Sample Response: HTTP 500 Unexpected server-side failure during group creation. ```json { "error_description": "An internal error occurred while processing the request.", "message_type": "addCg", "error_code": "1003", "message_version": "1.4", "status": "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.