curl --request GET \
--url https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail \
--header 'X-API-Key: <api-key>'import requests
url = "https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail', 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://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail",
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-API-Key: <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://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"tuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"generated_at": "2023-11-07T05:31:56Z",
"contract_version": 123,
"overview": {
"summary": "<string>",
"key_points": [
"<string>"
]
},
"identity": {
"name": "<string>",
"email": "<string>",
"title": "<string>",
"department": "<string>",
"manager": "<string>",
"admin_account": "<string>",
"account_created": "<string>",
"account_age": "<string>"
},
"role": {
"observed_role": "<string>",
"title_match": "<string>",
"confidence": 123
},
"workstreams": {
"summary": "<string>",
"items": [
{
"name": "<string>",
"description": "<string>",
"systems": [
"<string>"
],
"collaborators": [
"<string>"
]
}
]
},
"access": {
"summary": "<string>",
"directory_role_count": 123,
"privileged_entitlement_count": 123,
"privileged_classes": [
"<string>"
],
"application_count": 123,
"dormant_entitlement_count": 123,
"applications": [
"<string>"
],
"privileges": [
{
"name": "<string>",
"privilege_class": "<string>",
"source": "<string>"
}
],
"entitlements": [
{
"name": "<string>",
"type": "group",
"assignment": "birthright",
"assignment_source": "sourced",
"privileged": true,
"privileged_source": "sourced",
"access_domain": "<string>",
"first_seen": "<string>",
"last_used": "<string>",
"peer_prevalence": 123
}
]
},
"posture": {
"device_classes": [
"<string>"
],
"os_types": [
"<string>"
],
"signin_active_days": 123,
"signin_total_logons": 123,
"nhi": {
"service_account_count": 123,
"service_principal_count": 123,
"oauth_grant_count": 123,
"agent_count": 123,
"owns_secrets": true,
"can_create_agents": true
}
},
"risk_lens": {
"blast_radius": "<string>",
"reaches_control_plane": true,
"dormant_count": 123,
"credential_exposure": "<string>",
"anomaly_count": 123
},
"coverage": {}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"resource": "<string>",
"message": "<string>",
"details": "<string>",
"days_until_ready": 123,
"external_api_enabled_at_utc": "2023-11-07T05:31:56Z",
"now_utc": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}Get structured persona detail for a user
Structured projection of the user’s identity persona: declared identity, observed role, workstreams (with cited artifacts and collaborators), scanned access inventories (entitlements, applications, privileged grants), IAM/NHI posture, and a coarse risk lens.
The communication graph, item-level NHI detail, sign-in method/network patterns, and free-text risk narratives are never exposed on this endpoint.
curl --request GET \
--url https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail \
--header 'X-API-Key: <api-key>'import requests
url = "https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail', 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://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail",
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-API-Key: <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://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<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://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://eris.platform.total.truu.ai/api/v1/external/personas/{tuid}/detail")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"tuid": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"generated_at": "2023-11-07T05:31:56Z",
"contract_version": 123,
"overview": {
"summary": "<string>",
"key_points": [
"<string>"
]
},
"identity": {
"name": "<string>",
"email": "<string>",
"title": "<string>",
"department": "<string>",
"manager": "<string>",
"admin_account": "<string>",
"account_created": "<string>",
"account_age": "<string>"
},
"role": {
"observed_role": "<string>",
"title_match": "<string>",
"confidence": 123
},
"workstreams": {
"summary": "<string>",
"items": [
{
"name": "<string>",
"description": "<string>",
"systems": [
"<string>"
],
"collaborators": [
"<string>"
]
}
]
},
"access": {
"summary": "<string>",
"directory_role_count": 123,
"privileged_entitlement_count": 123,
"privileged_classes": [
"<string>"
],
"application_count": 123,
"dormant_entitlement_count": 123,
"applications": [
"<string>"
],
"privileges": [
{
"name": "<string>",
"privilege_class": "<string>",
"source": "<string>"
}
],
"entitlements": [
{
"name": "<string>",
"type": "group",
"assignment": "birthright",
"assignment_source": "sourced",
"privileged": true,
"privileged_source": "sourced",
"access_domain": "<string>",
"first_seen": "<string>",
"last_used": "<string>",
"peer_prevalence": 123
}
]
},
"posture": {
"device_classes": [
"<string>"
],
"os_types": [
"<string>"
],
"signin_active_days": 123,
"signin_total_logons": 123,
"nhi": {
"service_account_count": 123,
"service_principal_count": 123,
"oauth_grant_count": 123,
"agent_count": 123,
"owns_secrets": true,
"can_create_agents": true
}
},
"risk_lens": {
"blast_radius": "<string>",
"reaches_control_plane": true,
"dormant_count": 123,
"credential_exposure": "<string>",
"anomaly_count": 123
},
"coverage": {}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"resource": "<string>",
"message": "<string>",
"details": "<string>",
"days_until_ready": 123,
"external_api_enabled_at_utc": "2023-11-07T05:31:56Z",
"now_utc": "2023-11-07T05:31:56Z"
}{
"error": "<string>"
}Authorizations
Domain-scoped API key. Generate and manage keys from the API Keys page in Settings.
Accepted in two forms:
X-API-Key: <key>header (preferred)Authorization: Bearer <key>header (also accepted)
Path Parameters
Response
Persona detail or placeholder when none exists yet
- Option 1
- Option 2
Structured persona projection. Sections are null when the underlying data is unavailable; coverage reports per-section data sufficiency.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Per-section data-sufficiency verdicts.
Show child attributes
Show child attributes
Was this page helpful?

