Full session detail for the replay page
VIEWER+ of the owning org. Returns metadata + the full marker list (timeline anchors). Event stream is loaded separately via the `/events` sibling endpoint as gzip-compressed batches.
/api/sessions/{sessionId}VIEWER+ of the owning org. Returns metadata + the full marker list (timeline anchors). Event stream is loaded separately via the /events sibling endpoint as gzip-compressed batches.
Path Parameters
Session id (cuid)
Response Body
application/json
curl -X GET "https://loading/api/sessions/string"{
"id": "ses_p1q2r3s4",
"externalId": "9b2e1d4c-6a3f-4f8e-9b1d-2c8a4e6f7a90",
"projectId": "prj_x9y8z7w6",
"projectName": "Production",
"url": "https://your-app.com/checkout",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15",
"screenWidth": 1440,
"screenHeight": 900,
"language": "en-US",
"duration": 184320,
"eventCount": 1247,
"startedAt": "2026-04-26T10:30:00.000Z",
"endedAt": "2026-04-26T10:33:04.320Z",
"createdAt": "2026-04-26T10:30:00.000Z",
"trackedUserId": "tu_t5u6v7w8",
"userId": "usr_abc123",
"userTraits": {
"plan": "pro",
"email": "alex@your-app.com"
},
"markers": [
{
"timestamp": 1761480000000,
"kind": "url",
"data": {
"url": "https://your-app.com/checkout",
"pathname": "/checkout"
}
},
{
"timestamp": 1761480078420,
"kind": "url",
"data": {
"url": "https://your-app.com/checkout/payment",
"pathname": "/checkout/payment"
}
}
]
}List sessions, cursor-paginated GET
VIEWER+. Scoped to the caller's active org. Filters: `?search=` (matches `externalId`, case-insensitive), `?projectIds=id1,id2`, `?range=` preset (`today` / `7d` / `30d` / `all`), `?sort=date|duration`, `?sortDir=asc|desc`. Display name is resolved server-side via the 4-step chain.
Hard-delete a session DELETE
ADMIN+ (not OWNER) — QA / staging cleanup loops stay unblocked without an owner on call. Cascades event batches and markers.