Skip to content

Analytics

Endpoints:

  • GET /api/v1/analytics/overview
  • GET /api/v1/analytics/time-series

Required scope: analytics:read

Query parameters

Parameter Type Description
qrCodeId UUID, optional Restrict the result to one QR campaign.
fromUtc ISO 8601 UTC, optional Start of the reporting window. Defaults to 30 days before toUtc.
toUtc ISO 8601 UTC, optional End of the reporting window. Defaults to now.
granularity Auto, Hour, or Day Time-series endpoint only. Auto uses hourly buckets for up to seven days and daily buckets for longer ranges.

The maximum reporting window is 366 days, and the end date cannot be in the future.

The response includes total scans, privacy-preserving unique scans, daily time-series points, and breakdowns for countries, cities, devices, operating systems, browsers, and traffic sources. Unique scans are estimates based on privacy-preserving visitor signals—not permanent visitor identities.

The time-series endpoint reads pre-aggregated workspace or per-campaign buckets. Explicit hourly requests are limited to 31 days and daily requests to five years. The response reports isEventuallyConsistent: true because durable scan events are projected asynchronously through RabbitMQ. A Static QR response reports isTracked: false and contains no points; Static QR pixels do not route through QRalto, so a scan count would be misleading.