post
/public_api/v1/bioc/delete
Delete BIOCs selected by filter.
You must have Instance Administrator permissions to run this endpoint.
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/bioc/delete'
-d
''
import http.client
conn = http.client.HTTPSConnection("api-yourfqdn")
payload = "{\"request_data\":{\"filters\":[{\"field\":\"name\",\"operator\":\"EQ\",\"value\":true}]}}"
headers = {
'Authorization': "SOME_STRING_VALUE",
'x-xdr-auth-id': "SOME_STRING_VALUE",
'content-type': "application/json"
}
conn.request("POST", "/public_api/v1/bioc/delete", 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/bioc/delete")
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\":[{\"field\":\"name\",\"operator\":\"EQ\",\"value\":true}]}}"
response = http.request(request)
puts response.read_bodyconst data = JSON.stringify({
"request_data": {
"filters": [
{
"field": "name",
"operator": "EQ",
"value": true
}
]
}
});
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/bioc/delete");
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/bioc/delete")
.header("Authorization", "SOME_STRING_VALUE")
.header("x-xdr-auth-id", "SOME_STRING_VALUE")
.header("content-type", "application/json")
.body("{\"request_data\":{\"filters\":[{\"field\":\"name\",\"operator\":\"EQ\",\"value\":true}]}}")
.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": [
[
"field": "name",
"operator": "EQ",
"value": true
]
]]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://api-yourfqdn/public_api/v1/bioc/delete")! 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/bioc/delete",
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\":[{\"field\":\"name\",\"operator\":\"EQ\",\"value\":true}]}}",
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/bioc/delete");
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\":[{\"field\":\"name\",\"operator\":\"EQ\",\"value\":true}]}}");
CURLcode ret = curl_easy_perform(hnd);var client = new RestClient("https://api-yourfqdn/public_api/v1/bioc/delete");
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\":[{\"field\":\"name\",\"operator\":\"EQ\",\"value\":true}]}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);Body parameters
application/json
request_dataobjectrequired
filtersarrayAn array of filter fields.
An array of filter fields.
[fieldstring (Enum)
operatorstring (Enum)
valueobject
boolean
string
]
fieldstring (Enum)Identifies the BIOC field the filter is matching. Filters are based on the following keywords:
name: BIOC name.
severity: BIOC severity level.
type: BIOC type.
is_xql: Whether or not the BIOC is XQL.
comment: Comment.
status: BIOC status.
indicator: Indicator.
mitre_technique_id_and_name: MITRE technique ID and name.
mitre_tactic_id_and_name: MITRE tactic ID and name.
Identifies the BIOC field the filter is matching. Filters are based on the following keywords:
name: BIOC name.severity: BIOC severity level.type: BIOC type.is_xql: Whether or not the BIOC is XQL.comment: Comment.status: BIOC status.indicator: Indicator.mitre_technique_id_and_name: MITRE technique ID and name.mitre_tactic_id_and_name: MITRE tactic ID and name.
Allowed values:"name""severity""type""is_xql""comment""status""indicator""mitre_technique_id_and_name""mitre_tactic_id_and_name"
operatorstring (Enum)Identifies the comparison operator you want to use for this filter. Valid keywords are:
EQ / NEQ
name: String
severity: String
type: String
is_xql: Boolean
comment: String
status: String
indicator: String
IN
mitre_technique_id_and_name: List of strings
mitre_tactic_id_and_name: List of strings
Identifies the comparison operator you want to use for this filter. Valid keywords are:
EQ / NEQ
name: Stringseverity: Stringtype: Stringis_xql: Booleancomment: Stringstatus: Stringindicator: StringINmitre_technique_id_and_name: List of stringsmitre_tactic_id_and_name: List of strings
Allowed values:"EQ""NEQ""IN""GTE""LTE"
valueobjectValue that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:
name, comment: String.
severity: String, can be one of the following: SEV_010_INFO, SEV_020_LOW, SEV_030_MEDIUM, SEV_040_HIGH
type: String, can be one of the following: other, persistence, evasion, tampering, file_type_obfuscation, privilege_escalation, credential_access, lateral_movement, execution, collection, exfiltration, infiltration, dropper, file_privilege_manipulation, reconnaissance, discovery.
is_xql: Boolean: true or false.
status: String, can be one of the following: enabled, disabled.
indicator: String or dictionary in the format you wrote it.
mitre_technique_id_and_name: List of strings.
mitre_tactic_id_and_name: List of strings.
Value that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:
name,comment: String.severity: String, can be one of the following:SEV_010_INFO,SEV_020_LOW,SEV_030_MEDIUM,SEV_040_HIGHtype: String, can be one of the following:other,persistence,evasion,tampering,file_type_obfuscation,privilege_escalation,credential_access,lateral_movement,execution,collection,exfiltration,infiltration,dropper,file_privilege_manipulation,reconnaissance,discovery.is_xql: Boolean:trueorfalse.status: String, can be one of the following:enabled,disabled.indicator: String or dictionary in the format you wrote it.mitre_technique_id_and_name: List of strings.mitre_tactic_id_and_name: List of strings.
booleanValue that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:
name, comment: String.
severity: String, can be one of the following: SEV_010_INFO, SEV_020_LOW, SEV_030_MEDIUM, SEV_040_HIGH
type: String, can be one of the following: other, persistence, evasion, tampering, file_type_obfuscation, privilege_escalation, credential_access, lateral_movement, execution, collection, exfiltration, infiltration, dropper, file_privilege_manipulation, reconnaissance, discovery.
is_xql: Boolean: true or false.
status: String, can be one of the following: enabled, disabled.
indicator: String or dictionary in the format you wrote it.
mitre_technique_id_and_name: List of strings.
mitre_tactic_id_and_name: List of strings.
Value that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:
name,comment: String.severity: String, can be one of the following:SEV_010_INFO,SEV_020_LOW,SEV_030_MEDIUM,SEV_040_HIGHtype: String, can be one of the following:other,persistence,evasion,tampering,file_type_obfuscation,privilege_escalation,credential_access,lateral_movement,execution,collection,exfiltration,infiltration,dropper,file_privilege_manipulation,reconnaissance,discovery.is_xql: Boolean:trueorfalse.status: String, can be one of the following:enabled,disabled.indicator: String or dictionary in the format you wrote it.mitre_technique_id_and_name: List of strings.mitre_tactic_id_and_name: List of strings.
stringValue that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:
name, comment: String.
severity: String, can be one of the following: SEV_010_INFO, SEV_020_LOW, SEV_030_MEDIUM, SEV_040_HIGH
type: String, can be one of the following: other, persistence, evasion, tampering, file_type_obfuscation, privilege_escalation, credential_access, lateral_movement, execution, collection, exfiltration, infiltration, dropper, file_privilege_manipulation, reconnaissance, discovery.
is_xql: Boolean: true or false.
status: String, can be one of the following: enabled, disabled.
indicator: String or dictionary in the format you wrote it.
mitre_technique_id_and_name: List of strings.
mitre_tactic_id_and_name: List of strings.
Value that this filter must match. The contents of this field will differ depending on the IOC field that you specified for this filter:
name,comment: String.severity: String, can be one of the following:SEV_010_INFO,SEV_020_LOW,SEV_030_MEDIUM,SEV_040_HIGHtype: String, can be one of the following:other,persistence,evasion,tampering,file_type_obfuscation,privilege_escalation,credential_access,lateral_movement,execution,collection,exfiltration,infiltration,dropper,file_privilege_manipulation,reconnaissance,discovery.is_xql: Boolean:trueorfalse.status: String, can be one of the following:enabled,disabled.indicator: String or dictionary in the format you wrote it.mitre_technique_id_and_name: List of strings.mitre_tactic_id_and_name: List of strings.
Array
REQUEST
{
"request_data": {
"extended_view": false,
"filters": [
{
"field": "severity",
"operator": "EQ",
"value": "SEV_020_LOW"
}
]
}
}Responses