Get per-user usage breakdown for a single product.
Returns a paginated, usage-descending list of users and their individual test counts for the specified product, date range, and user-type population.
Authentication: Same as /usage-report/summary — Basic Auth, admin-only.
Smart UI: When product=smartui the response shape changes — metadata.totalTests/totalDuration are replaced by metadata.totalScreenshots, and each user row exposes totalScreenshots instead of totalTestsRun/totalDuration.
Scoping note: metadata.totalTests (or totalScreenshots) is the org-wide total for the product across all users and both user types. metadata.totalUsers and the users list are scoped to the requested type. These values are intentionally independent.
Partial responses: If the data fetch fails the endpoint returns 200 with an empty users list and metadata.partial: true. Do not treat this as a real zero.
Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Query Parameters
User population to include. account-user for human accounts; service-user for service/API accounts.
Product to drill down into. Case-sensitive.
Range start as a wall-clock datetime: YYYY-MM-DD HH:MM:SS, interpreted in the timezone offset. Example: 2026-06-23 00:00:00.
Range end as a wall-clock datetime: YYYY-MM-DD HH:MM:SS, interpreted in the timezone offset. Must be after from. Maximum span from from is 90 days.
UTC offset for interpreting from and to. Two formats accepted:
- ISO offset ±HH:MM (e.g. +05:30, -08:00, +00:00).
- Raw minutes from JS Date.getTimezoneOffset() (e.g. -330
for IST, 300 for US Eastern) — sign-inverted vs ISO. The API
converts automatically.
Note: + must be percent-encoded as %2B in URLs. A leading space is also accepted and normalized to +.
Defaults to +00:00 (UTC) when omitted.
Page number (1-based). Defaults to 1.
Results per page. Default 10, maximum 100.
Response
application/jsonSuccessful operation. Returns per-user rows sorted descending by usage. When `product=smartui`, `metadata.totalScreenshots` replaces `totalTests`/`totalDuration` and each user row carries `totalScreenshots` instead of `totalTestsRun`/`totalDuration`.