Admin analytics overview
Analytics
Admin analytics overview
Live platform-wide counters (users, listings, matches, chats, MRR/ARR) computed against the current collections and cached for 60 seconds.
GET
Admin analytics overview
Overview
The “front-page” tile of the admin dashboard. Returns live platform-wide counters computed against the current Mongo collections — total users, active listings, mutual matches, recently-active chats, and the monthly + annual recurring revenue in pence. Unlike the cohorts and locations surfaces, this endpoint does not read from the nightlyanalytics_daily rollup; it recomputes on demand so the dashboard reflects the current moment.
To keep a burst of admin page-loads from hammering Mongo, the snapshot is cached for 60 seconds. A cache hit returns the cached object untouched; a miss recomputes, populates the cache, and returns the fresh snapshot.
See Analytics and rollups for the full split between live + rollup paths.
Available to any admin role — SUPER, MODERATOR, and FINANCE all read this surface (mirrors the reports feed and audit-log read paths).
Authentication
Bearer <accessToken> with scope: 'admin' required (requireAdmin).
Path parameters
None.Query parameters
None.Request body
None.Response — 200 OK
| Field | Type | Notes | Example |
|---|---|---|---|
totalUsers | integer | Count of all users rows. Not filtered by ban/delete status — raw row count. | 1842 |
totalActiveListings | integer | Count of current_homes rows with status: 'LIVE' AND ownerTenancyApproved: true. | 412 |
totalMatches | integer | Count of matches rows where both savedByA and savedByB are non-null (mutual matches). | 87 |
activeChats | integer | Count of conversations with a lastMessageAt in the trailing 7 days. | 54 |
mrr | integer | Monthly Recurring Revenue in pence. With the single GBP-monthly tier this is count(ACTIVE subscriptions) × monthlyPence. | 89700 |
arr | integer | Annual Recurring Revenue in pence. Convenience field — always mrr × 12. | 1076400 |
computedAt | string | ISO 8601 UTC timestamp of when this snapshot was computed. On a cache hit this is the original compute time (up to 60s old). | 2026-05-23T09:14:08.412Z |
MVP limitations
Error responses
| Status | Code | Meaning |
|---|---|---|
| 401 | UNAUTHENTICATED | Missing, malformed, expired, or non-admin-scope token. |
See also
- Analytics and rollups — the split between live (this endpoint) and rollup (cohorts/locations).
- Admin analytics cohorts — per-day rollup metrics.
- Admin analytics locations — top boroughs from the latest rollup.
curl
Postman
Seedocs/postman/swappr.postman_collection.json → Admin Analytics → Overview.