# 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
### Request URL
`https://{server-hostname}:8383/dcapi/scap/compliance/benchmark/rules/{ruleId}`
### Scope
`VulnerabilityMgmt.READ`
### Header
`Authorization: d92d4xxxxxxxxxxxxx15f52`
### Path Parameters
- **ruleId** `string` — Mandatory
Rule identifier. Fetch from [Get Benchmark Details](https://www.manageengine.com/products/desktop-central/help/api/onpremise/get-benchmark-details.html) response `steps[].children[].itemId` where type is `rule`.
### Sample Request
```curl
curl --request GET \
--url https://appdomain/dcapi/scap/compliance/benchmark/rules/{ruleId} \
--header 'Authorization: d92d4xxxxxxxxxxxxx15f52'
```
## Response
### HTTP 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.
#### Sample Response
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"
}
```
### HTTP 401
Response Body — `application/json`
`JSON object`
- **errorCode** `long`
Unauthorized error code returned when authentication credentials are missing, expired, or invalid (authentication=required)
- **errorMsg** `string`
Authentication failure reason
#### Sample Response
Authentication credentials are missing or invalid:
```json
{
"errorMessage": "Authentication required",
"errorCode": "UNAUTHORIZED"
}
```
### HTTP 429
Response Body — `application/json`
`JSON object`
- **errorCode** `long`
Rate limit error code returned when the API call threshold (configured via threshold/duration in security XML) is exceeded; client is locked out for lock-period minutes
- **errorMsg** `string`
Rate limit exceeded message with retry guidance
#### Sample Response
API call threshold exceeded:
```json
{
"errorMessage": "Rate limit exceeded. Retry after some time",
"errorCode": "TOO_MANY_REQUESTS"
}
```
### Possible Response Codes
- **200** — HTTP code
- **401** — HTTP code
- **429** — HTTP code
## 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.