Activity dashboard data bundle
VIEWER+. Three SQL queries in parallel — histogram, page distribution, KPI aggregates — in a rolling window picked from `?range=` (default `24h`). `Cache-Control: no-store` because the histogram advances with each ingest batch.
/api/tracked-users/{userId}/activityVIEWER+. Three SQL queries in parallel — histogram, page distribution, KPI aggregates — in a rolling window picked from ?range= (default 24h). Cache-Control: no-store because the histogram advances with each ingest batch.
Path Parameters
TrackedUser id (cuid)
Query Parameters
"6h" | "24h" | "7d"1 <= value <= 9007199254740991Response Body
application/json
curl -X GET "https://loading/api/tracked-users/string/activity"{
"range": "24h",
"from": "2026-04-25T10:30:00.000Z",
"to": "2026-04-26T10:30:00.000Z",
"bucketMs": 3600000,
"buckets": [
{
"t": "2026-04-26T09:00:00.000Z",
"total": 412,
"byPage": [
{
"pathname": "/checkout",
"count": 280
},
{
"pathname": "/checkout/payment",
"count": 132
}
]
},
{
"t": "2026-04-26T10:00:00.000Z",
"total": 835,
"byPage": [
{
"pathname": "/checkout/payment",
"count": 503
},
{
"pathname": "/checkout",
"count": 332
}
]
}
],
"pageDistribution": [
{
"pathname": "/checkout/payment",
"duration": 105900,
"share": 0.575,
"visits": 5
},
{
"pathname": "/checkout",
"duration": 78420,
"share": 0.425,
"visits": 3
}
],
"summary": {
"sessionCount": 3,
"totalActiveTime": 184320,
"avgSessionDuration": 61440,
"totalEvents": 1247,
"uniquePages": 2,
"topPage": "/checkout/payment",
"firstEventAt": "2026-04-26T08:12:00.000Z",
"lastEventAt": "2026-04-26T10:33:04.320Z"
}
}Update display-name overrides PATCH
ADMIN+. Body fields `customName` and `traitKey` are independently optional; omitted fields stay unchanged, `null` clears the field (falls back through resolver chain), `string` sets the override (trimmed + validated). Implements steps 1–2 of the 4-step resolver chain.
Sessions for one tracked user, cursor-paginated GET
VIEWER+. Slim shape — no event payload, no trait JSON. Detail fields hydrate per-row via the session detail endpoint on demand. `userDisplayName` is `null` here on purpose (the user-detail page already surfaces the identity above the table).