Gap
The JSON API exposes only 4 read endpoints (routes/analytics.ts:545-595), and they are unauthenticated (see the security issue). Most dimensions (countries, devices, browsers, OS, UTM, entry/exit, channels, goals, events) exist only as inline SQL in dashboard.stx — no programmatic access.
Proposed
A documented, authenticated Stats API covering every dashboard dimension + the filter engine, with a scoped read token. This also unblocks BI connectors and embeds.
Priority: P1.
From the 2026-07-20 privacy-first competitive audit (vs. Plausible / Fathom / Simple Analytics / Umami).