# Fetch detailed fix information for a specific CIS benchmark rule
Retrieves detailed information about a specific CIS benchmark rule including description, rationale, remediation steps, and for scanned resources: expected vs actual values and audit remarks
## Endpoints
**GET** `/dcapi/scap/compliance/benchmark/rules/{ruleId}`
## Request URL
`https://`[{serverurl}](https://www.manageengine.com/products/desktop-central/help/api/cloud/oauth-authentication-endpoint-domain.html)`/dcapi/scap/compliance/benchmark/rules/{ruleId}`
## Scope
`DesktopCentralCloud.VulnerabilityMgmt.READ`
## Header
`Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52`
## Request Parameters
### Path Parameters
- **ruleId** `string` — Mandatory
- Rule identifier. Fetch from [Get Benchmark Details](https://www.manageengine.com/products/desktop-central/help/api/cloud/get-benchmark-details.html) response steps[].children[].itemId where type is rule
### Query Parameters
- **resourceId** `long` — Optional
- Resource ID for scan results
- **collectionId** `long` — Optional
- Collection ID for scan results
## Sample Request
```curl
curl --request GET \
--url https://appdomains/dcapi/scap/compliance/benchmark/rules/{ruleId} \
--header 'Authorization: Zoho-oauthtoken d92d4xxxxxxxxxxxxx15f52'
```
## Response Parameters
### HTTP code 200
Response Body — `application/json`
`JSON Object`
- **ruleId** `string`
- The queried rule ID
- **summary** `string`
- Rule description (sanitized HTML)
- **rationale** `string`
- Why this rule matters (sanitized HTML)
- **fix** `string`
- Remediation instructions (sanitized HTML)
- **reason** `string`
- Expected vs actual values with HTML formatting. Only present when resourceId and collectionId are provided
### 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 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`
- **401** `HTTP code`
- **429** `HTTP code`
## Sample Response: HTTP 200
Rule details with scan results showing expected vs actual values
```json
{
"summary": "Ensure Account lockout threshold is set to 5 or fewer invalid logon attempts",
"reason": "Expected value : 5
Current value : 10
Registry path : HKLM\\SOFTWARE\\...",
"fix": "To establish the recommended configuration via GP, set the following UI path to 5 or fewer but not 0: Computer Configuration\\Policies\\Windows Settings\\Security Settings\\Account Policies\\Account lockout threshold",
"ruleId": "1001",
"rationale": "Setting an account lockout threshold reduces the likelihood that an online password brute force attack will be successful"
}
```
Rule details without resource-specific scan data
```json
{
"summary": "Ensure Account lockout threshold is set to 5 or fewer invalid logon attempts",
"fix": "To establish the recommended configuration via GP, set the following UI path to 5 or fewer but not 0",
"ruleId": "1001",
"rationale": "Setting an account lockout threshold reduces the likelihood that an online password brute force attack will be successful"
}
```
## Sample Response: HTTP 401
Authentication credentials are missing or invalid
```json
{
"errorMessage": "Authentication required",
"errorCode": "UNAUTHORIZED"
}
```
## Sample Response: HTTP 429
API call threshold exceeded
```json
{
"errorMessage": "Rate limit exceeded. Retry after some time",
"errorCode": "TOO_MANY_REQUESTS"
}
```
## API Rate Limits

**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.