RUM API routes

Embed
Preview of the card
<a href="https://watchtowerops.net/docs/rum-api"><img src="https://watchtowerops.net/docs/_api/public/orgs/aa5959cb-1a0b-4a9a-bc9a-913e7ac31cd9/spaces/b7aac181-9916-4805-b253-becc5fd2ca62/pages/6349c51c-55b9-4c24-9730-32bcadff8320/social-card.svg?v=3e7ae33eec8b" alt="RUM API routes" width="600" height="315"></a>

All under /v1/projects/{prj}/rum/, read with read_telemetry. The browser SDK sends to the edge with a publishable key; these routes read the result with an API key, PAT or session.

Route

Returns

Parameters

GET pages

Routes by views, errors and distinct sessions

range

GET vitals

p50, p75 (headline), p95 and good / needs-improvement / poor shares per bucket

metric (required), route, device_class, browser, release, country, flag (key:value), range (1h, 6h, 24h default, 7d, 30d), step_s (3600 to 604800)

GET vitals/by_screen

A vital's p50, p75, p95 per mobile screen

metric (required), device_class (default mobile), release, flag, range

GET frustration

Elements with rage, dead or error clicks

route, range

GET sessions, sessions/{id}

Sessions and one session

text, route, and more

GET/POST/DELETE keys

Publishable keys (wtp_) and their origin allowlists

Other routes under rum/: facets, live, long-tasks, resources, release-coverage, export, journeys, launches. See /openapi.json for each one's parameters.

vitals needs metric

metric is one of the Core Web Vitals lcp, inp, cls, fcp, ttfb, or a mobile vital (frozen_frames, slow_frames, app_hang, app_launch_cold, app_launch_warm, cpu_ticks_per_s, memory_mb). Without it, or with an unknown name, the route answers 422 (RFC 9457 problem) that lists the valid names.

curl -sS "$WT_API/v1/projects/$PRJ/rum/vitals?metric=lcp&range=7d&step_s=86400" -H "Authorization: Bearer $WT_API_KEY"

Views, navigations and vitals are grouped by the route pattern. With the Next.js adapter the first page load also reports the pattern (/gallery/:typeId), not the concrete path.

Updated