post
/public_api/v1/endpoints/scan
Run a scan on selected endpoints.
- Response is concatenated using AND condition (OR is not supported).
- Offset is the zero-based number of incidents from the start of the result set.
Required license: Cortex XDR Prevent, Cortex XDR Pro per Endpoint, or Cortex XDR Pro per GB
Request headers
Authorization
String
required
{api_key}
{api_key}
Example:
authorization_example
x-xdr-auth-id
String
required
{api_key_id}
{api_key_id}
Example:
xXdrAuthId_example
CLIENT REQUEST
curl -X 'POST'
-H
'Accept: application/json'
-H
'Content-Type: application/json'
-H
'Authorization: authorization_example'
-H
'x-xdr-auth-id: xXdrAuthId_example'
'https://api-yourfqdn/public_api/v1/endpoints/scan'
-d
''
import http.client
conn = http.client.HTTPSConnection("api-yourfqdn")
payload = "{\"request_data\":{\"filters\":{\"property1\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]},\"property2\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]}},\"incident_id\":\"string\"}}"
headers = {
'Authorization': "SOME_STRING_VALUE",
'x-xdr-auth-id': "SOME_STRING_VALUE",
'content-type': "application/json"
}
conn.request("POST", "/public_api/v1/endpoints/scan", 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/endpoints/scan")
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["Authorization"] = 'SOME_STRING_VALUE'
request["x-xdr-auth-id"] = 'SOME_STRING_VALUE'
request["content-type"] = 'application/json'
request.body = "{\"request_data\":{\"filters\":{\"property1\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]},\"property2\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]}},\"incident_id\":\"string\"}}"
response = http.request(request)
puts response.read_bodyconst data = JSON.stringify({
"request_data": {
"filters": {
"property1": {
"field": "endpoint_id_list",
"operator": "in",
"value": [
"string"
]
},
"property2": {
"field": "endpoint_id_list",
"operator": "in",
"value": [
"string"
]
}
},
"incident_id": "string"
}
});
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/endpoints/scan");
xhr.setRequestHeader("Authorization", "SOME_STRING_VALUE");
xhr.setRequestHeader("x-xdr-auth-id", "SOME_STRING_VALUE");
xhr.setRequestHeader("content-type", "application/json");
xhr.send(data);HttpResponse<String> response = Unirest.post("https://api-yourfqdn/public_api/v1/endpoints/scan")
.header("Authorization", "SOME_STRING_VALUE")
.header("x-xdr-auth-id", "SOME_STRING_VALUE")
.header("content-type", "application/json")
.body("{\"request_data\":{\"filters\":{\"property1\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]},\"property2\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]}},\"incident_id\":\"string\"}}")
.asString();import Foundation
let headers = [
"Authorization": "SOME_STRING_VALUE",
"x-xdr-auth-id": "SOME_STRING_VALUE",
"content-type": "application/json"
]
let parameters = ["request_data": [
"filters": [
"property1": [
"field": "endpoint_id_list",
"operator": "in",
"value": ["string"]
],
"property2": [
"field": "endpoint_id_list",
"operator": "in",
"value": ["string"]
]
],
"incident_id": "string"
]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://api-yourfqdn/public_api/v1/endpoints/scan")! 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/endpoints/scan",
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\":{\"filters\":{\"property1\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]},\"property2\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]}},\"incident_id\":\"string\"}}",
CURLOPT_HTTPHEADER => [
"Authorization: SOME_STRING_VALUE",
"content-type: application/json",
"x-xdr-auth-id: SOME_STRING_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/endpoints/scan");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: SOME_STRING_VALUE");
headers = curl_slist_append(headers, "x-xdr-auth-id: SOME_STRING_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\":{\"filters\":{\"property1\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]},\"property2\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]}},\"incident_id\":\"string\"}}");
CURLcode ret = curl_easy_perform(hnd);var client = new RestClient("https://api-yourfqdn/public_api/v1/endpoints/scan");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "SOME_STRING_VALUE");
request.AddHeader("x-xdr-auth-id", "SOME_STRING_VALUE");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"request_data\":{\"filters\":{\"property1\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]},\"property2\":{\"field\":\"endpoint_id_list\",\"operator\":\"in\",\"value\":[\"string\"]}},\"incident_id\":\"string\"}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);Body parameters
application/json
request_dataobjectrequiredA dictionary containing the API request fields.
A dictionary containing the API request fields.
filtersobjectAn array of filter fields. To scan all endpoints, use the value all.
An array of filter fields. To scan all endpoints, use the value all.
Additional propertiesobjectrequired
fieldobject (Enum)String that identifies a list the filters match. Filters are based on the following keywords:
endpoint_id_list: List of endpoint IDs.
dist_name: Name of the distribution list.
first_seen: When an endpoint was first seen.
last_seen: When an endpoint was last seen.
ip_list: List of IP addresses.
group_name: Name of endpoint group.
platform: Type of operating system.
alias: Endpoint alias name.
isolate: If an endpoint has been isolated.
hostname: Name of host.
String that identifies a list the filters match. Filters are based on the following keywords:
endpoint_id_list: List of endpoint IDs.dist_name: Name of the distribution list.first_seen: When an endpoint was first seen.last_seen: When an endpoint was last seen.ip_list: List of IP addresses.group_name: Name of endpoint group.platform: Type of operating system.alias: Endpoint alias name.isolate: If an endpoint has been isolated.hostname: Name of host.
Allowed values:"endpoint_id_list""dist_name""first_seen""last_seen""ip_list""group_name""platform""alias""isolate""hostname"
operatorstring (Enum)String that identifies the comparison operator you want to use for this filter. Valid keywords and values are:
in
endpoint_id_list, dist_name, group_name, alias, hostname, username: List of strings
ip_list: List of strings, for example 192.168.5.12
platform: Permitted values are windows, linux, macos, android
isolate: Permitted values are isolated or unisolated
scan_status: Permitted values are none, pending, in_progress, canceled, aborted, pending_cancellation, success, or error
gte / lte
first_seen and last_seen: Integer in timestamp epoch milliseconds.
String that identifies the comparison operator you want to use for this filter. Valid keywords and values are:
in
endpoint_id_list,dist_name,group_name,alias,hostname,username: List of stringsip_list: List of strings, for example 192.168.5.12platform: Permitted values arewindows,linux,macos,androidisolate: Permitted values areisolatedorunisolatedscan_status: Permitted values arenone,pending,in_progress,canceled,aborted,pending_cancellation,success, orerrorgte/ltefirst_seenandlast_seen: Integer in timestamp epoch milliseconds.
Allowed values:"in""gte""lte"
valuestring or integer or array[string]Value that this filter must match. Valid keywords:
first_seen, last_seen: Integer representing the number of milliseconds after the Unix epoch, UTC timezone.
endpoint_id_list, dist_name, hostname, alias, group_name: List of strings
ip_list: Must contain an IP address string
isolate: Must be isolated or unisolated.
platform: Must be either windows, linux, macos, or android.
Value that this filter must match. Valid keywords:
first_seen,last_seen: Integer representing the number of milliseconds after the Unix epoch, UTC timezone.endpoint_id_list,dist_name,hostname,alias,group_name: List of stringsip_list: Must contain an IP address stringisolate: Must beisolatedorunisolated.platform: Must be eitherwindows,linux,macos, orandroid.
incident_idstringIncident ID.
When included in the request, the Scan Endpoints action will appear in the Cortex XDR Incident View Timeline tab.
Incident ID. When included in the request, the Scan Endpoints action will appear in the Cortex XDR Incident View Timeline tab.
REQUEST
{
"request_data": {
"filters": "all"
}
}{
"request_data": {
"filters": [
{
"field": "endpoint_id_list",
"operator": "in",
"value": [
"<endpoint ID>"
]
},
{
"field": "dist_name",
"operator": "in",
"value": [
"WinInstaller"
]
},
{
"field": "group_name",
"operator": "in",
"value": [
"test\""
]
},
{
"field": "scan_status",
"operator": "in",
"value": [
"none",
"pending",
"in_progress",
"pending_cancellation",
"aborted",
"success"
]
},
{
"field": "group_name",
"operator": "in",
"value": [
"test"
]
}
]
}
}Responses