Skip to main content
GET
/
api
/
admin
/
security
/
threats
List Praxis Shield threat incidents for the caller's managed institutions
curl --request GET \
  --url https://pria.praxislxp.com/api/admin/security/threats \
  --header 'x-access-token: <api-key>'
import requests

url = "https://pria.praxislxp.com/api/admin/security/threats"

headers = {"x-access-token": "<api-key>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {'x-access-token': '<api-key>'}};

fetch('https://pria.praxislxp.com/api/admin/security/threats', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://pria.praxislxp.com/api/admin/security/threats",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-access-token: <api-key>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://pria.praxislxp.com/api/admin/security/threats"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("x-access-token", "<api-key>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://pria.praxislxp.com/api/admin/security/threats")
.header("x-access-token", "<api-key>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://pria.praxislxp.com/api/admin/security/threats")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["x-access-token"] = '<api-key>'

response = http.request(request)
puts response.read_body
{
  "success": true,
  "total": 123,
  "page": 123,
  "limit": 123,
  "incidents": [
    {
      "_id": "<string>",
      "severity": 2,
      "categories": [
        "<string>"
      ],
      "title": "<string>",
      "summary": "<string>",
      "user": "<string>",
      "userEmail": "<string>",
      "userFname": "<string>",
      "userLname": "<string>",
      "institutionIds": [
        "<string>"
      ],
      "institutions": [
        {
          "_id": "<string>",
          "name": "<string>"
        }
      ],
      "firstSeenAt": "2023-11-07T05:31:56Z",
      "lastSeenAt": "2023-11-07T05:31:56Z"
    }
  ]
}

Authorizations

x-access-token
string
header
required

JWT token passed in x-access-token header

Query Parameters

accountId
string

Filter incidents to the institutions belonging to this account. For non-super callers the account's institutions are intersected with the caller's managed (RAP-scoped) set — no overlap returns 403. For super callers the account's institutions are used directly (no overlap → empty result, not 403).

institutionId
string

Narrow to one institution (must be one the caller manages, else 403). When combined with accountId, the institution must belong to that account (else 403).

status
enum<string>

Filter by incident status. all shows everything (incl. terminal statuses); a specific status matches exactly; omitted hides terminal statuses (resolved, false_positive) by default.

Available options:
all,
open,
reviewing,
resolved,
false_positive,
escalated
severityMin
integer

Minimum severity (0-4)

Required range: 0 <= x <= 4
page
integer
default:0
limit
integer
default:50
Required range: 1 <= x <= 200

Response

Paginated incident list

success
boolean
total
integer
page
integer
limit
integer
incidents
object[]