Mark several findings as exceptions with one shared reason
curl --request POST \
--url https://api.trycomp.ai/v1/cloud-security/findings/exceptions \
--header 'Content-Type: application/json' \
--data '
{
"reason": "Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role.",
"findingIds": [
"icx_abc123",
"icx_def456"
]
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
reason: 'Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role.',
findingIds: ['icx_abc123', 'icx_def456']
})
};
fetch('https://api.trycomp.ai/v1/cloud-security/findings/exceptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.trycomp.ai/v1/cloud-security/findings/exceptions"
payload = {
"reason": "Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role.",
"findingIds": ["icx_abc123", "icx_def456"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Cloud Security
Mark several findings as exceptions with one | Comp AI API
Records an exception for each listed finding (up to 500) in one request, each with its own audit entry. Use it to scope out many failing resources at once.
POST
/
v1
/
cloud-security
/
findings
/
exceptions
Mark several findings as exceptions with one shared reason
curl --request POST \
--url https://api.trycomp.ai/v1/cloud-security/findings/exceptions \
--header 'Content-Type: application/json' \
--data '
{
"reason": "Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role.",
"findingIds": [
"icx_abc123",
"icx_def456"
]
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
reason: 'Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role.',
findingIds: ['icx_abc123', 'icx_def456']
})
};
fetch('https://api.trycomp.ai/v1/cloud-security/findings/exceptions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.trycomp.ai/v1/cloud-security/findings/exceptions"
payload = {
"reason": "Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role.",
"findingIds": ["icx_abc123", "icx_def456"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Body
application/json
Documentation for why this finding does not apply or is being accepted. Minimum 20 non-whitespace characters.
Example:
"Bucket hosts intentionally public marketing assets; writes restricted to the marketing IAM role."
IDs of the failing check results to mark (1-500). All must belong to your organization; one unknown ID rejects the whole request.
Required array length:
1 - 500 elementsExample:
["icx_abc123", "icx_def456"]
Free-text reviewer or approval reference.
Example:
"Approved by CISO 2026-Q1"
ISO date when this exception should auto-expire. Null/missing = never.
Example:
"2026-08-13"
Response
201
Was this page helpful?

