Speed Insights
Real-user Core Web Vitals (RUM) for an application — the p75 of LCP, CLS, INP, FCP, and TTFB, with a good / needs-improvement / poor rating for each. Metrics are measured in real visitors' browsers; there are no cookies and no identifiers.
Speed Insights is a paid feature (the speed_insights entitlement) and is enabled per app with the speed_insights_enabled setting (see below). With it off there are no samples to return.
Query parameters
24h, 7d, 30d, or 90d. Default 24h.Response (200 OK)
lcp, cls, inp, fcp, ttfb): the p75 value, a rating of good / needs-improvement / poor, and the good / needs_improvement / poor sample counts.Enabling collection
Turn Speed Insights on for an app by sending speed_insights_enabled: true to PUT /v1/applications/{uuid}. Enabling requires the speed_insights entitlement (a 403 otherwise); disabling is always allowed.
Once enabled, the edge serves the collector at GET /_ngris/speed-insights/script.js on the app's own domain and accepts the browser beacon at POST /_ngris/vitals. It auto-injects the collector into served HTML for static apps and fullstack static front-ends — nothing to add by hand. For backend-rendered (dynamic managed-backend) HTML, the edge does not rewrite the response body, so add the one line yourself before </body>:
<script src="/_ngris/speed-insights/script.js" defer></script>
Errors
speed_insights entitlement (on read, or when enabling the setting).