View stats
Owner-only view counts, unique visitors, and time on page, rolled up daily by the render worker.
Every claimed artifact tracks who's viewing it. Stats are for the owner only, never shown to guests.
GET /api/v1/artifacts/{artifactId}/stats{
"totalViews": 128,
"totalUniqueViewers": 31,
"avgViewSeconds": 74,
"versions": [
{
"versionNumber": 2,
"views": 96,
"uniqueViewers": 24,
"embeddedViews": 80,
"directViews": 16,
"avgViewSeconds": 74
}
],
"daily": [
{ "day": "2026-07-08", "views": 42, "uniqueViewers": 12, "avgViewSeconds": 61 }
]
}What counts as a view
A GET of a version's entry document on the render origin. Assets, secondary pages, and HEAD requests don't count, and a password-locked artifact counts nothing until unlocked. Views split into embeddedViews (loaded inside the review shell's iframe) and directViews (everything else).
Unique viewers
Distinct hashed IPs, exact per day, version, and artifact, not distinct people: a shared office collapses to one entry, a roaming phone splits into several. Phase 1 has no bot filtering, so treat totalUniqueViewers as "distinct networks," not "people."
Time on page
avgViewSeconds is mean visible time per view. The review helper accumulates Page Visibility time (a hidden tab doesn't count) and beacons it to the render origin as the page hides or unloads, capped at 30 minutes per view. Clients that never run the helper (curl, bots) sit in the average with zero seconds, so read avgViewSeconds as a floor, not a ceiling.
Where to see it
Claimed owners get a stats panel in the review shell: totals, a 14-day sparkline, and a per-version breakdown. There's no CLI command yet; use the API directly if you need it scripted.