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"
}
]
}List Praxis Shield threat incidents for the caller's managed institutions
Returns Security-Watcher incidents scoped to the institutions the caller administers (super sees all). Mounted under the admin gate (isAdmin) and additionally scoped per-institution inside the handler via the institutions.list entitlement (super bypasses) — so a Digital Twin admin (global accountType ‘admin’) sees only the institutions they manage. Heavy evidence/LLM payloads are omitted; returned text is attacker- influenced and MUST be rendered inert by the client.
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
JWT token passed in x-access-token header
Query Parameters
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).
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).
Filter by incident status. all shows everything (incl. terminal statuses); a specific status matches exactly; omitted hides terminal statuses (resolved, false_positive) by default.
all, open, reviewing, resolved, false_positive, escalated Minimum severity (0-4)
0 <= x <= 41 <= x <= 200Was this page helpful?