Profile memory
curl --request GET \
--url https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory \
--header 'Authorization: Bearer <token>'import requests
url = "https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory', 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://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"profile_id": "0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e01",
"audience": "human",
"policy_version": "pol-14",
"facts": [
{
"id": "fct_01",
"predicate": "plan",
"value": "Family plan",
"category": "contract",
"confidence": 0.97,
"sensitivity": "normal",
"status": "active",
"times_seen": 6,
"valid_at": "2021-04-06T13:20:00Z",
"last_confirmed_at": "2026-09-22T17:02:11Z",
"invalid_at": null,
"about_handle_id": null,
"object": null,
"evidence_event_ids": [
"0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01"
],
"origin": {
"event_id": "0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01",
"source_id": "src_whatsapp",
"channel": "whatsapp",
"kind": "message",
"speaker": "customer",
"conversation_id": "wa-8812",
"task_id": null,
"at": "2026-09-22T17:02:11Z"
},
"masked": false
}
],
"open_items": [
{
"id": "oi_01J8ZK",
"description": "Technician visit promised for this morning did not happen",
"owner": "company",
"promise": true,
"status": "overdue",
"due_at": "2026-09-22T15:00:00Z",
"expected_operation": "reschedule",
"object": null,
"closed_at": null,
"closed_by_action_id": null,
"created_at": "2026-09-22T17:03:10Z",
"origin": {
"event_id": "0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01",
"source_id": "src_whatsapp",
"channel": "whatsapp",
"kind": "message",
"speaker": "customer",
"conversation_id": "wa-8812",
"task_id": null,
"at": "2026-09-22T17:02:11Z"
},
"masked": false
}
],
"timeline": [
{
"id": "ep_01J8ZL",
"session_id": "ses_01J8ZL",
"intent": "complaint",
"category": "technician visit",
"normalized_category": "technician_visit",
"outcome": "escalated",
"resolution": null,
"summary": "Technician did not show up; customer is calling.",
"sentiment": -0.6,
"started_at": "2026-09-22T17:02:11Z",
"ended_at": "2026-09-22T17:03:00Z",
"version": 1,
"origin": {
"event_id": "0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01",
"source_id": "src_whatsapp",
"channel": "whatsapp",
"kind": "message",
"speaker": "customer",
"conversation_id": "wa-8812",
"task_id": null,
"at": "2026-09-22T17:02:11Z"
},
"masked": false
}
],
"traits": [
{
"id": "trt_01",
"name": "recurring_complaint",
"value": "technician_visit · 2 in 365 days",
"layer": "volatile",
"confidence": 1,
"active": true,
"rule_version": "recurring_complaint@3",
"first_seen": "2026-09-22T17:03:30Z",
"last_evidence_at": "2026-09-22T17:03:00Z",
"expires_at": "2027-03-12T14:20:00Z",
"retracted_at": null,
"evidence": [
{
"id": "ep_01J2",
"kind": "episode",
"origin": null
}
],
"masked": false
}
],
"withheld": {
"verification": 1
}
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"detail": "<string>",
"request_id": "<string>",
"type": "about:blank"
}Identity and profiles
Profile memory
Facts, episodes, open items, actions and patterns, each with its origin and evidence.
GET
/
v1
/
profiles
/
{profile_id}
/
memory
Profile memory
curl --request GET \
--url https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory \
--header 'Authorization: Bearer <token>'import requests
url = "https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory', 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://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{space}.{region}.api.niadra.com/v1/profiles/{profile_id}/memory")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"profile_id": "0192f7a1-5b10-7c3a-8e21-4d2f8a4c0e01",
"audience": "human",
"policy_version": "pol-14",
"facts": [
{
"id": "fct_01",
"predicate": "plan",
"value": "Family plan",
"category": "contract",
"confidence": 0.97,
"sensitivity": "normal",
"status": "active",
"times_seen": 6,
"valid_at": "2021-04-06T13:20:00Z",
"last_confirmed_at": "2026-09-22T17:02:11Z",
"invalid_at": null,
"about_handle_id": null,
"object": null,
"evidence_event_ids": [
"0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01"
],
"origin": {
"event_id": "0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01",
"source_id": "src_whatsapp",
"channel": "whatsapp",
"kind": "message",
"speaker": "customer",
"conversation_id": "wa-8812",
"task_id": null,
"at": "2026-09-22T17:02:11Z"
},
"masked": false
}
],
"open_items": [
{
"id": "oi_01J8ZK",
"description": "Technician visit promised for this morning did not happen",
"owner": "company",
"promise": true,
"status": "overdue",
"due_at": "2026-09-22T15:00:00Z",
"expected_operation": "reschedule",
"object": null,
"closed_at": null,
"closed_by_action_id": null,
"created_at": "2026-09-22T17:03:10Z",
"origin": {
"event_id": "0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01",
"source_id": "src_whatsapp",
"channel": "whatsapp",
"kind": "message",
"speaker": "customer",
"conversation_id": "wa-8812",
"task_id": null,
"at": "2026-09-22T17:02:11Z"
},
"masked": false
}
],
"timeline": [
{
"id": "ep_01J8ZL",
"session_id": "ses_01J8ZL",
"intent": "complaint",
"category": "technician visit",
"normalized_category": "technician_visit",
"outcome": "escalated",
"resolution": null,
"summary": "Technician did not show up; customer is calling.",
"sentiment": -0.6,
"started_at": "2026-09-22T17:02:11Z",
"ended_at": "2026-09-22T17:03:00Z",
"version": 1,
"origin": {
"event_id": "0192f7a1-6a2b-7d11-9c3e-1a2b3c4d5e01",
"source_id": "src_whatsapp",
"channel": "whatsapp",
"kind": "message",
"speaker": "customer",
"conversation_id": "wa-8812",
"task_id": null,
"at": "2026-09-22T17:02:11Z"
},
"masked": false
}
],
"traits": [
{
"id": "trt_01",
"name": "recurring_complaint",
"value": "technician_visit · 2 in 365 days",
"layer": "volatile",
"confidence": 1,
"active": true,
"rule_version": "recurring_complaint@3",
"first_seen": "2026-09-22T17:03:30Z",
"last_evidence_at": "2026-09-22T17:03:00Z",
"expires_at": "2027-03-12T14:20:00Z",
"retracted_at": null,
"evidence": [
{
"id": "ep_01J2",
"kind": "episode",
"origin": null
}
],
"masked": false
}
],
"withheld": {
"verification": 1
}
}{
"code": "<string>",
"status": 123,
"title": "<string>",
"detail": "<string>",
"request_id": "<string>",
"type": "about:blank"
}Authorizations
sourceKeypersonToken
nia_sk_...
Path Parameters
Response
The memory of the profile.
The audience class the reader's role reads as.
Available options:
customer_agent, internal_agent, human, reviewer, analyst, trigger_target, export Show child attributes
Show child attributes
Show child attributes
Show child attributes
Episodes, newest first.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Items left out, by reason.
Show child attributes
Show child attributes

