Get reports by statuses

Cortex XSIAM Platform APIs

post /public_api/v1/mth/child/get_reports_by_statuses

Retrieves MTH/MDR reports filtered by one or more status values.

Validation Rules:

  • The report_statuses parameter is required and must be a non-empty array of strings.
  • Each status must be one of the supported values: New, In Progress, On Hold, Resolved.
  • Invalid status values will result in a 400 error listing the supported statuses.

Note

  • Users with Instance Administrator privileges only can access this API.
Authentication: Authorization Api Key "Authorization"
Authentication: x-xdr-auth-id Api Key "x-xdr-auth-id"
Request headers
Authorization String required

{api_key}

Example: YOUR_API_KEY_HERE
x-xdr-auth-id String required

{api_key_id}

Example: 241
CLIENT REQUEST
curl -X 'POST'
-H "Authorization: [[apiKey]]" \
-H "x-xdr-auth-id: [[apiKey]]" \
-H 'Accept: application/json'
-H 'Content-Type: application/json'
-H 'Authorization: YOUR_API_KEY_HERE' -H 'x-xdr-auth-id: 241'
'https://api-yourfqdn/public_api/v1/mth/child/get_reports_by_statuses'
-d '{ "report_statuses" : [ "New", "New" ] }'
import http.client conn = http.client.HTTPSConnection("api-yourfqdn") payload = "{\"report_statuses\":[\"New\"]}" headers = { 'Authorization': "REPLACE_KEY_VALUE", 'x-xdr-auth-id': "241", 'content-type': "application/json" } conn.request("POST", "/public_api/v1/mth/child/get_reports_by_statuses", 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/mth/child/get_reports_by_statuses") 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"] = 'REPLACE_KEY_VALUE' request["x-xdr-auth-id"] = '241' request["content-type"] = 'application/json' request.body = "{\"report_statuses\":[\"New\"]}" response = http.request(request) puts response.read_body
const data = JSON.stringify({ "report_statuses": [ "New" ] }); 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/mth/child/get_reports_by_statuses"); xhr.setRequestHeader("Authorization", "REPLACE_KEY_VALUE"); xhr.setRequestHeader("x-xdr-auth-id", "241"); xhr.setRequestHeader("content-type", "application/json"); xhr.send(data);
HttpResponse<String> response = Unirest.post("https://api-yourfqdn/public_api/v1/mth/child/get_reports_by_statuses") .header("Authorization", "REPLACE_KEY_VALUE") .header("x-xdr-auth-id", "241") .header("content-type", "application/json") .body("{\"report_statuses\":[\"New\"]}") .asString();
import Foundation let headers = [ "Authorization": "REPLACE_KEY_VALUE", "x-xdr-auth-id": "241", "content-type": "application/json" ] let parameters = ["report_statuses": ["New"]] as [String : Any] let postData = JSONSerialization.data(withJSONObject: parameters, options: []) let request = NSMutableURLRequest(url: NSURL(string: "https://api-yourfqdn/public_api/v1/mth/child/get_reports_by_statuses")! 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/mth/child/get_reports_by_statuses", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => "{\"report_statuses\":[\"New\"]}", CURLOPT_HTTPHEADER => [ "Authorization: REPLACE_KEY_VALUE", "content-type: application/json", "x-xdr-auth-id: 241" ], ]); $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/mth/child/get_reports_by_statuses"); struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: REPLACE_KEY_VALUE"); headers = curl_slist_append(headers, "x-xdr-auth-id: 241"); headers = curl_slist_append(headers, "content-type: application/json"); curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"report_statuses\":[\"New\"]}"); CURLcode ret = curl_easy_perform(hnd);
var client = new RestClient("https://api-yourfqdn/public_api/v1/mth/child/get_reports_by_statuses"); var request = new RestRequest(Method.POST); request.AddHeader("Authorization", "REPLACE_KEY_VALUE"); request.AddHeader("x-xdr-auth-id", "241"); request.AddHeader("content-type", "application/json"); request.AddParameter("application/json", "{\"report_statuses\":[\"New\"]}", ParameterType.RequestBody); IRestResponse response = client.Execute(request);
Body parameters
required
application/json
report_statusesarray[string]required

List of report statuses to filter by. At least one status must be provided. Each value must be one of the supported status values.

REQUEST
{ "report_statuses": [ "New" ] }
{ "report_statuses": [ "New", "In Progress", "On Hold" ] }
Responses

Successful Response

Body
application/json
replyobject
DATAarray

Array of report objects matching the query

[
xsoar_source_idstring

Unique identifier of the report

report_typestring

Type of the report

insert_timeintegerint64

Creation timestamp in milliseconds (epoch)

namestring

Name/title of the report

descriptionstring

Detailed description of the report

incident_idinteger

Associated incident ID

update_timeintegerint64

Last update timestamp in milliseconds (epoch)

created_bystring

Creator of the report

severitystring

Severity level of the report

attachmentsstring

JSON-formatted string containing attachment information

classificationstring

Classification of the report (MTH or MDR)

assigned_userstring

Email of the assigned user

report_statusstring

Current status of the report

assigned_user_prettystring

Display name of the assigned user

]
COUNTinteger

Number of reports matching the applied filters

RESPONSE
{ "reply": { "DATA": [ { "xsoar_source_id": "777771", "report_type": "Threat Report Update", "insert_time": 1763468832000, "name": "Updated Report 5", "description": "Updated description", "incident_id": 1, "update_time": 1765983782000, "created_by": "iavron@example.com", "severity": "SEV_040_HIGH", "attachments": "{\"update_report/1764864986901--f2ada4b9-d7f2-43cb-978c-91cc2eb4c97d\": {\"attachment_name\": \"\", \"attachment_size\": 0}}", "classification": "MTH", "assigned_user": "iavron@example.com", "report_status": "IN_PROGRESS", "assigned_user_pretty": "iavron iavron" }, { "xsoar_source_id": "777772", "report_type": "Monthly Status Report", "insert_time": 1763468615000, "name": "Royi test 2025-11-18 14:23:40.937528", "description": "Royi", "incident_id": null, "update_time": 1763468623000, "created_by": "Roei", "severity": "SEV_020_LOW", "attachments": "{\"update_report/1763468621971-sample.pdf-9b2feb72-0835-4ccf-b49c-e192550bf85f\": {\"attachment_name\": \"sample.pdf\", \"attachment_size\": 55483}}", "classification": "MTH", "assigned_user": null, "report_status": "NEW", "assigned_user_pretty": null } ], "COUNT": 2 } }

Bad Request - Invalid parameters or missing required fields

Body
application/json
replyobject
err_codestring

Error code

err_msgstring

Error message

err_extrastring

Extra information about the error

RESPONSE
{ "reply": { "err_code": "example", "err_msg": "example", "err_extra": "example" } }

Unauthorized - Invalid or missing API key

Body
application/json
replyobject
err_codestring

Error code

err_msgstring

Error message

err_extrastring

Extra information about the error

RESPONSE
{ "reply": { "err_code": "example", "err_msg": "example", "err_extra": "example" } }

Forbidden - Tenant not authorized for this endpoint

Body
application/json
replyobject
err_codestring

Error code

err_msgstring

Error message

err_extrastring

Extra information about the error

RESPONSE
{ "reply": { "err_code": "example", "err_msg": "example", "err_extra": "example" } }

Internal Server Error

Body
application/json
replyobject
err_codestring

Error code

err_msgstring

Error message

err_extrastring

Extra information about the error

RESPONSE
{ "reply": { "err_code": "example", "err_msg": "example", "err_extra": "example" } }