# Retrieves available criteria columns for building dynamic custom group filters Returns all available criteria columns grouped by category (computer, ipRange, etc.). Each column includes its ID, display name, data type, column category, and list of applicable comparison operators. This endpoint is typically the first call when building a dynamic custom group filter. Use the returned `columnId`, `comparator`, and `criteriaValue` options to build the `criteriaList` when calling [Create Dynamic CG](https://www.manageengine.com/products/desktop-central/custom-groups-create-dynamic-cg.html) or [Update Dynamic CG](https://www.manageengine.com/products/desktop-central/custom-groups-update-dynamic-cg.html). To discover valid values for a specific column, call [Get Dynamic CG Column Values](https://www.manageengine.com/products/desktop-central/custom-groups-get-dynamic-cgcolumn-values.html) with the `columnId` from this response. ## Endpoints **GET** `/api/1.4/customgroup/dynamic/criteriaPattern` --- ## Request URL ``` https://{serverurl}/api/1.4/customgroup/dynamic/criteriaPattern ``` `{serverurl}`: See [OAuth Authentication Endpoint Domain](https://www.manageengine.com/products/desktop-central/oauth-authentication-endpoint-domain.html) ## Scope ``` DesktopCentralCloud.Common.READ ``` ## Header ``` Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52 ``` ## Request Parameters ### Request Headers - **Accept** (string) — Mandatory `application/json` Must be `application/json`. Only JSON responses are supported. --- ## Sample Request ### Curl ```bash curl --request GET \ --url https://appdomain/api/1.4/customgroup/dynamic/criteriaPattern \ --header 'Accept: application/json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' ``` ### 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/api/1.4/customgroup/dynamic/criteriaPattern")) .header("Accept", "application/json") .header("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") .method("GET", HttpRequest.BodyPublishers.noBody()) .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") headers = { 'Accept': "application/json", 'Authorization': "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52" } conn.request("GET", "/api/1.4/customgroup/dynamic/criteriaPattern", headers=headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8")) ``` ### Deluge ```javascript headersMap = Map(); headersMap.put("Accept", "application/json"); response = invokeUrl [ url: "https://appDomain/api/1.4/customgroup/dynamic/criteriaPattern" type: GET headers: headersMap connection: connection_name ] info response; ``` ### PowerShell ```powershell $headers=@{} $headers.Add("Accept", "application/json") $headers.Add("Authorization", "Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52") $response = Invoke-WebRequest -Uri 'https://appdomain/api/1.4/customgroup/dynamic/criteriaPattern' -Method GET -Headers $headers ``` --- ## Response Parameters ### HTTP 200 **Response Body**: `application/json` - **message_type** (string) Always `dynamic` for this endpoint. - **message_response** (JSON object) Response payload container. - **dynamic** (JSON object) Response payload. - **\*** (JSON array) Dynamic keys grouped by resolved `COLUMN_CATEGORY` from `customGroup-criteria.xml`. Typical keys: `Operating System`, `Computer`, `Software`. Each array contains the criteria columns belonging to that category. - **columnId** (long) Unique column ID — use in `criteriaList[].columnId` when calling [Create Dynamic CG](https://www.manageengine.com/products/desktop-central/custom-groups-create-dynamic-cg.html) or [Update Dynamic CG](https://www.manageengine.com/products/desktop-central/custom-groups-update-dynamic-cg.html). - **columnValue** (string) Internal DB column identifier (e.g., `OS_NAME`, `OS_VERSION`, `SOFTWARE_NAME`). - **displayName** (string) Localized display label of the criteria column. - **columnCategory** (string) UI grouping: `Operating System`, `Computer`, `Software`, `Network`, etc. - **colDataType** (string) Data type of the column values (e.g., `CHAR`, `INTEGER`, `BIGINT`). Use to format values supplied via `criteriaList[].criteriaValue`. - **applicableCriteriaType** (JSON array) Operators for this column. Use the `value` field as `criteriaList[].comparator` when calling [Create Dynamic CG](https://www.manageengine.com/products/desktop-central/custom-groups-create-dynamic-cg.html) or [Update Dynamic CG](https://www.manageengine.com/products/desktop-central/custom-groups-update-dynamic-cg.html). - **value** (string) Operator ID — use as `criteriaList[].comparator`. 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`. - **label** (string) Localized display label: `is`, `is not`, `contains`, `does not contain`, `in range`, etc. - **additionalValues** (JSON object) Script-based criteria columns only. Script execution metadata. Present only when this criteria column represents a script check. - **exitCode** (string) Comma-separated expected exit codes (e.g., `0`, `0,1`). - **scriptId** (string) Resource ID of the custom script in the scripts repository. - **scriptName** (string) File name of the script (e.g., `ComplianceCheck.bat`). - **description** (string) Human-readable description of what the script checks. - **message_version** (string) API version: `1.4`. - **status** (string) `success` when the request completed without errors. ### HTTP 500 **Response Body**: `application/json` - **message_type** (string) Always `dynamic` 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 - **500** — HTTP code --- ## Sample Response: HTTP 200 ```json { "message_type": "dynamic", "message_response": { "dynamic": { "Computer": [ { "columnCategory": "Computer", "columnId": 3, "displayName": "System Type", "applicableCriteriaType": [ { "label": "is", "value": "equal" } ], "columnValue": "PROCESSOR_ARCH_NAME" }, { "columnCategory": "Computer", "columnId": 11, "displayName": "IP Address", "applicableCriteriaType": [ { "label": "is", "value": "equal" } ], "columnValue": "IPADDR_LONG" } ], "Operating System": [ { "columnCategory": "Operating System", "columnId": 1, "displayName": "Operating System", "applicableCriteriaType": [ { "label": "is", "value": "equal" }, { "label": "is not", "value": "not equal" }, { "label": "contains", "value": "contains" }, { "label": "does not contain", "value": "not contains" } ], "columnValue": "OS_NAME" }, { "columnCategory": "Operating System", "columnId": 2, "displayName": "OS Version", "applicableCriteriaType": [ { "label": "is", "value": "equal" }, { "label": "is not", "value": "not equal" } ], "columnValue": "OS_VERSION" } ], "Software": [ { "columnCategory": "Software", "columnId": 5, "displayName": "Software Name", "applicableCriteriaType": [ { "label": "is", "value": "equal" }, { "label": "contains", "value": "contains" } ], "columnValue": "SOFTWARE_NAME" }, { "columnCategory": "Software", "columnId": 6, "displayName": "Software Version", "applicableCriteriaType": [ { "label": "is", "value": "equal" }, { "label": "is not", "value": "not equal" } ], "columnValue": "SOFTWARE_VERSION" } ] } }, "message_version": "1.4", "status": "success" } ``` ## Sample Response: HTTP 500 ```json { "error_description": "An internal error occurred while processing the request.", "message_type": "dynamic", "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.