Get compliance assets

Cortex XSIAM Platform APIs

post /public_api/v1/compliance/get_assets

Retrieve compliance assets with required assessment profile revision and last evaluation time, with optional filtering, sorting and pagination.

Filtering Support:

  • String fields (asset_name, rule_name, control): eq, neq, contains, not_contains
  • Status fields (asset_type, status, severity, rule_type): eq, neq
  • Status valid values: [FAILED, PASSED, NOT_ASSESSED]
  • Severity valid values: [low, medium, high, critical]

Sorting Support:

  • Available fields: asset_name, asset_type, status, rule_name, control, severity
  • Sort orders: asc, desc
  • Default: asset_name in ascending order

Pagination: (max number of elements is 100)

Authentication: XDRAuthToken Api Key "Authorization"
Authentication: XDRAuth Api Key "x-xdr-auth-id"
CLIENT REQUEST
curl -X 'POST'
-H "Authorization: [[apiKey]]" \
-H "x-xdr-auth-id: [[apiKey]]" \
-H 'Accept: application/json'
-H 'Content-Type: application/json'
'https://api-yourfqdn/public_api/v1/compliance/get_assets'
-d '{ "request_data" : { "search_from" : 0, "assessment_profile_revision" : "343554605578776831", "last_evaluation_time" : 1758816221000, "filters" : [ { "field" : "SEVERITY", "value" : "high", "operator" : "eq" }, { "field" : "SEVERITY", "value" : "high", "operator" : "eq" } ], "sort" : { "field" : "asset_name", "keyword" : "asc" }, "search_to" : 1 } }'
import http.client conn = http.client.HTTPSConnection("api-yourfqdn") payload = "{\"request_data\":{\"assessment_profile_revision\":\"343554605578776831\",\"last_evaluation_time\":1758816221000,\"filters\":[{\"field\":\"severity\",\"operator\":\"eq\",\"value\":\"low\"}],\"sort\":{\"field\":\"asset_name\",\"keyword\":\"asc\"},\"search_from\":0,\"search_to\":100}}" headers = { 'x-xdr-auth-id': "REPLACE_KEY_VALUE", 'content-type': "application/json" } conn.request("POST", "/public_api/v1/compliance/get_assets", payload, headers) res = conn.getresponse() data = res.read() print(data.decode("utf-8"))
require 'uri' require 'net/http' require 'openssl' url = URI("https://api-yourfqdn/public_api/v1/compliance/get_assets") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Post.new(url) request["x-xdr-auth-id"] = 'REPLACE_KEY_VALUE' request["content-type"] = 'application/json' request.body = "{\"request_data\":{\"assessment_profile_revision\":\"343554605578776831\",\"last_evaluation_time\":1758816221000,\"filters\":[{\"field\":\"severity\",\"operator\":\"eq\",\"value\":\"low\"}],\"sort\":{\"field\":\"asset_name\",\"keyword\":\"asc\"},\"search_from\":0,\"search_to\":100}}" response = http.request(request) puts response.read_body
const data = JSON.stringify({ "request_data": { "assessment_profile_revision": "343554605578776831", "last_evaluation_time": 1758816221000, "filters": [ { "field": "severity", "operator": "eq", "value": "low" } ], "sort": { "field": "asset_name", "keyword": "asc" }, "search_from": 0, "search_to": 100 } }); const xhr = new XMLHttpRequest(); xhr.withCredentials = true; xhr.addEventListener("readystatechange", function () { if (this.readyState === this.DONE) { console.log(this.responseText); } }); xhr.open("POST", "https://api-yourfqdn/public_api/v1/compliance/get_assets"); xhr.setRequestHeader("x-xdr-auth-id", "REPLACE_KEY_VALUE"); xhr.setRequestHeader("content-type", "application/json"); xhr.send(data);
HttpResponse<String> response = Unirest.post("https://api-yourfqdn/public_api/v1/compliance/get_assets") .header("x-xdr-auth-id", "REPLACE_KEY_VALUE") .header("content-type", "application/json") .body("{\"request_data\":{\"assessment_profile_revision\":\"343554605578776831\",\"last_evaluation_time\":1758816221000,\"filters\":[{\"field\":\"severity\",\"operator\":\"eq\",\"value\":\"low\"}],\"sort\":{\"field\":\"asset_name\",\"keyword\":\"asc\"},\"search_from\":0,\"search_to\":100}}") .asString();
import Foundation let headers = [ "x-xdr-auth-id": "REPLACE_KEY_VALUE", "content-type": "application/json" ] let parameters = ["request_data": [ "assessment_profile_revision": "343554605578776831", "last_evaluation_time": 1758816221000, "filters": [ [ "field": "severity", "operator": "eq", "value": "low" ] ], "sort": [ "field": "asset_name", "keyword": "asc" ], "search_from": 0, "search_to": 100 ]] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-yourfqdn/public_api/v1/compliance/get_assets")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "POST" request.allHTTPHeaderFields = headers request.httpBody = postData as Data let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume()
<?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api-yourfqdn/public_api/v1/compliance/get_assets", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\"request_data\":{\"assessment_profile_revision\":\"343554605578776831\",\"last_evaluation_time\":1758816221000,\"filters\":[{\"field\":\"severity\",\"operator\":\"eq\",\"value\":\"low\"}],\"sort\":{\"field\":\"asset_name\",\"keyword\":\"asc\"},\"search_from\":0,\"search_to\":100}}", CURLOPT_HTTPHEADER => [ "content-type: application/json", "x-xdr-auth-id: REPLACE_KEY_VALUE" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
CURL *hnd = curl_easy_init(); curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST"); curl_easy_setopt(hnd, CURLOPT_URL, "https://api-yourfqdn/public_api/v1/compliance/get_assets"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "x-xdr-auth-id: REPLACE_KEY_VALUE"); headers = curl_slist_append(headers, "content-type: application/json"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"request_data\":{\"assessment_profile_revision\":\"343554605578776831\",\"last_evaluation_time\":1758816221000,\"filters\":[{\"field\":\"severity\",\"operator\":\"eq\",\"value\":\"low\"}],\"sort\":{\"field\":\"asset_name\",\"keyword\":\"asc\"},\"search_from\":0,\"search_to\":100}}"); CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://api-yourfqdn/public_api/v1/compliance/get_assets"); var request = new RestRequest(Method.POST); request.AddHeader("x-xdr-auth-id", "REPLACE_KEY_VALUE"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\"request_data\":{\"assessment_profile_revision\":\"343554605578776831\",\"last_evaluation_time\":1758816221000,\"filters\":[{\"field\":\"severity\",\"operator\":\"eq\",\"value\":\"low\"}],\"sort\":{\"field\":\"asset_name\",\"keyword\":\"asc\"},\"search_from\":0,\"search_to\":100}}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
Body parameters
required
application/json
request_dataobject
assessment_profile_revisionstringrequired

Assessment profile revision identifier

Example:"343554605578776831"
last_evaluation_timeintegerrequiredint64

Last evaluation timestamp in epoch format

Example:1758816221000
filtersarray

Array of filter objects for filtering assets

[
fieldstring (Enum)required

Field to filter on

Example:"SEVERITY"
Allowed values:"asset_name""asset_type""status""rule_name""control""severity""rule_type""SEVERITY""ASSET_NAME""ASSET_TYPE""STATUS""RULE_NAME""CONTROL""RULE_TYPE"
operatorstringrequired

Filter operator to apply

Example:"eq"
valuestringrequired

Value to filter by

Example:"high"
]
sortobject
fieldstring (Enum)

Field to sort by

Example:"asset_name"
Default:"asset_name"
Allowed values:"asset_name""asset_type""status""rule_name""control""severity"
keywordstring (Enum)

Sort direction

Example:"asc"
Default:"asc"
Allowed values:"asc""desc"
search_frominteger

Starting index for pagination

search_tointeger

Ending index for pagination

Default:100
REQUEST
{ "request_data": { "assessment_profile_revision": "343554605578776831", "last_evaluation_time": 1758816221000, "filters": [ { "field": "SEVERITY", "operator": "eq", "value": "high" } ], "sort": { "field": "asset_name", "keyword": "asc" }, "search_from": 0, "search_to": 0 } }
Responses

Successfully retrieved compliance assets

Body
application/json
replyobject
total_countinteger

Total number of assets available

Example:134
result_countinteger

Number of assets matching the applied filters + paging

Example:29
filter_countinteger

Number of assets matching the applied filters

Example:29
assetsarray

Array of compliance assets

[
ASSET_IDstring

Identifier for the asset

Example:"a4d9b7b4e7c88cecaf24a063d86cb0069ed659f8bc66c4c1572c90e716291e3d"
ASSET_NAMEstring

Name of the asset

Example:"mock-gcloud-storage-buckets-list-3d0a69ff21184406aa1cbd07b29f6f1f"
ASSET_TYPEstring

Type of the asset

Example:"GOOGLE_CLOUD_STORAGE_BUCKET"
STATUSstring (Enum)

Compliance status of the asset

Example:"PASSED"
Allowed values:"FAILED""PASSED""NOT_ASSESSED"
RULE_NAMEstring

Name of the compliance rule

Example:"Sensitive public object in private storage"
CONTROLstring

Associated compliance control

Example:"Safeguard 3.2 : Establish and Maintain a Data Inventory"
RULE_REVISION_IDstring

Identifier for the compliance rule

Example:"DSPM_1006"
CONTROL_REVISION_IDintegerint64

Identifier for the associated compliance control

Example:-7177800670050593000
SOURCEstring

Asset source

Example:"No Finding or Issue"
SEVERITYstring (Enum)

Severity level of the compliance issue

Example:"high"
Allowed values:"low""medium""high""critical"
RULE_TYPEstring

Type of the compliance rule

Example:"Data"
PROVIDERstring

Cloud provider

Example:"GCP"
REGIONstring

Geographic region

Example:"us"
REALMstring

Realm identifier

Example:"gcp-c0844a50-dd0f-47ec-9d14-c7af5f5325aa"
TAGSobject

Asset tags

Additional propertiesstring
ORGANIZATIONstring

Organization identifier

ASSET_STRONG_IDstring

Strong identifier for the asset

Example:"mock-gcloud-storage-buckets-list-3d0a69ff21184406aa1cbd07b29f6f1f"
]
RESPONSE
{ "reply": { "total_count": 134, "result_count": 29, "filter_count": 29, "assets": [ { "ASSET_ID": "a4d9b7b4e7c88cecaf24a063d86cb0069ed659f8bc66c4c1572c90e716291e3d", "ASSET_NAME": "mock-gcloud-storage-buckets-list-3d0a69ff21184406aa1cbd07b29f6f1f", "ASSET_TYPE": "GOOGLE_CLOUD_STORAGE_BUCKET", "STATUS": "PASSED", "RULE_NAME": "Sensitive public object in private storage", "CONTROL": "Safeguard 3.2 : Establish and Maintain a Data Inventory", "RULE_REVISION_ID": "DSPM_1006", "CONTROL_REVISION_ID": -7177800670050593000, "SOURCE": "No Finding or Issue", "SEVERITY": "high", "RULE_TYPE": "Data", "PROVIDER": "GCP", "REGION": "us", "REALM": "gcp-c0844a50-dd0f-47ec-9d14-c7af5f5325aa", "TAGS": { "Name": "mock-gcloud-storage-buckets-list-3d0a69ff21184406aa1cbd07b29f6f1f" }, "ORGANIZATION": null, "ASSET_STRONG_ID": "mock-gcloud-storage-buckets-list-3d0a69ff21184406aa1cbd07b29f6f1f" } ] } }

Bad request - invalid input parameters

Body
application/json
replyobject
err_codeinteger

Error code

err_msgstring

Error message

err_extraobject

Additional error details

RESPONSE
{ "reply": { "err_code": 400, "err_msg": "Invalid filter field. Allowed fields: name, category, subcategory, is_custom, creation_time, created_by, modified_by, modification_time, id, description", "err_extra": {} } }
{ "reply": { "err_code": 400, "err_msg": "Invalid operator 'range' for field 'name'. Allowed operators: eq, neq, contains, not_contains", "err_extra": {} } }
{ "reply": { "err_code": 400, "err_msg": "Missing required parameter: control_name", "err_extra": {} } }
{ "reply": { "err_code": 400, "err_msg": "Invalid value for is_custom field. Allowed values: yes, no", "err_extra": {} } }

Authentication required

Body
application/json
replyobject
err_codeintegerrequired

Error code

err_msgstringrequired

Error message describing what went wrong

err_extraobject

Additional error details

RESPONSE
{ "reply": { "err_code": 401, "err_msg": "Authentication credentials were not provided or are invalid", "err_extra": {} } }

Access denied - insufficient permissions

Body
application/json
replyobject
err_codeintegerrequired

Error code

err_msgstringrequired

Error message describing what went wrong

err_extraobject

Additional error details

RESPONSE
{ "reply": { "err_code": 403, "err_msg": "You do not have permission to access assessment results", "err_extra": {} } }

Internal server error

Body
application/json
replyobject
err_codeinteger

Error code

err_msgstring

Error message

err_extraobject

Additional error details

RESPONSE
{ "reply": { "err_code": 500, "err_msg": "Failed to retrieve controls", "err_extra": {} } }