# Trigger generation of a CIS compliance detailed report Triggers asynchronous generation of a CIS compliance detailed report for the specified custom group, policy group, and profile with optional compliance status and percentage filters. ## Endpoint `POST /dcapi/scap/compliance/export/cisDetailedReport` ## Request URL `https://{serverurl}/dcapi/scap/compliance/export/cisDetailedReport` `{serverurl}`: [OAuth Authentication Endpoint Domain](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html) ## Scope `DesktopCentralCloud.VulnerabilityMgmt.UPDATE` ## Header `Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** (`string`, Mandatory): `application/cisDetailedReport.v1+json` - **Accept** (`string`, Mandatory): `application/cisDetailedReport.v1+json` ### Request Body `application/json` JSON Object: - **groupResourceId** (`long`, Optional): Custom group resource ID to generate the report for. Fetch from [Get CG Association Details](https://www.manageengine.com/products/desktop-central/help/api/cloud/get-cg-association-details.html). - **policyGrpId** (`long`, Optional): Policy group ID to filter the report. Fetch from [List Policy Groups](https://www.manageengine.com/products/desktop-central/help/api/cloud/list-policy-groups.html). - **profileId** (`long`, Optional): Profile ID to filter the report. Fetch from [Get Profiles List for Platform](https://www.manageengine.com/products/desktop-central/help/api/cloud/get-profiles-list-for-platform.html) or [Get Profiles for Policy Group](https://www.manageengine.com/products/desktop-central/help/api/cloud/get-profiles-for-policy-group.html). - **compliancePercentage** (`string`, Optional): Compliance percentage filter. Use `all` for no filter. - **complianceStatus** (`string`, Optional): Compliance status filter. `0` = Passed, `1` = Failed, `3` = Error, `5` = Unscored. Supports comma-separated combinations (for example, `1,3`). Use `all` for no filter. - **reportName** (`string`, Optional): Name for the generated report file. - **totalRowsCount** (`long`, Optional): Total rows count for validation against export limit. Fetch from [Get CIS Report Row Count](https://www.manageengine.com/products/desktop-central/help/api/cloud/get-cis-report-row-count.html). - **exportType** (`string`, Optional): Export format type. ## Sample Request ```curl curl --request POST \ --url https://appdomains/dcapi/scap/compliance/export/cisDetailedReport \ --header 'Accept: application/cisDetailedReport.v1+json' \ --header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/cisDetailedReport.v1+json' \ --data '{}' ``` ## Sample Request Body Generate a CIS compliance detailed report with filters: ```json { "reportName": "CIS_Report_Production_2026", "totalRowsCount": "15000", "compliancePercentage": "all", "profileId": "50001", "complianceStatus": "all", "groupResourceId": "301", "policyGrpId": "1001" } ``` ## Response Parameters ### HTTP Code 200 Response Body: `application/json` JSON Object: - **isExportInitiated** (`boolean`): `true` if the report generation was successfully initiated. - **message** (`string`): Status message when export is already in progress. ### HTTP Code 400 Response Body: `application/json` JSON Object: - **errorCode** (`string`): Bad request error code indicating required parameters are missing or invalid. - **errorMessage** (`string`): Message indicating which parameters are missing from the request. ### HTTP Code 401 Response Body: `application/json` JSON Object: - **errorCode** (`long`): Unauthorized error code: credentials missing, expired, or invalid. - **errorMsg** (`string`): Authentication failure reason. ### HTTP Code 412 Response Body: `application/json` JSON Object: - **errorCode** (`string`): Precondition failed error code. Total rows exceed the maximum export limit of `3000000`. - **errorMessage** (`string`): Message indicating the row count exceeds the maximum allowed limit for export. ### HTTP Code 429 Response Body: `application/json` JSON Object: - **errorCode** (`long`): Rate limit error code returned when the API call reached threshold. - **errorMsg** (`string`): Rate limit exceeded message with retry guidance. ## Possible Response Codes - `200` HTTP code - `400` HTTP code - `401` HTTP code - `412` HTTP code - `429` HTTP code ## Sample Responses ### HTTP 200 Report generation initiated successfully: ```json { "isExportInitiated": true } ``` Report generation is already running: ```json { "message": "Export in progress. Please re-initiate once the current report has been successfully exported.", "isExportInitiated": false } ``` ### HTTP 400 Required parameters are missing or invalid: ```json { "errorMessage": "Required parameters are missing from the request", "errorCode": "INSUFFICIENT_DATA" } ``` A request body parameter has an invalid format or type: ```json { "errorCode": "IAM0025", "errorMsg": "groupResourceId is an invalid parameter format." } ``` ### HTTP 401 Compliance report is not available for this edition: ```json { "errorMessage": "Authentication required", "errorCode": "UAC_UNAUTHORIZED" } ``` ### HTTP 412 Total rows exceed the maximum export limit: ```json { "errorMessage": "The total row count exceeds the supported limit, so exporting this report is not possible. Please retry with a different configuration.", "errorCode": "INTERNAL_ERROR" } ``` ### HTTP 429 API call threshold exceeded: ```json { "errorMessage": "Rate limit exceeded. Retry after some time", "errorCode": "TOO_MANY_REQUESTS" } ``` ## Rate Limits ![](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.