curl --request POST \
--url 'https://management.scanova.io/analytics/qr/?from=2026-07-01&to=2026-08-16&type=qr' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"q": ["Q07afe81aa0034c01"],
"filter_by": "qrid"
}'
{
"qr": [],
"qr_meta": {
"docs-v2-first-qr-code": {
"qrid": "Q07afe81aa0034c01",
"category": "Website URL",
"category_slug": "url"
}
}
}
QR analytics
POST /analytics/qr/
curl --request POST \
--url 'https://management.scanova.io/analytics/qr/?from=2026-07-01&to=2026-08-16&type=qr' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"q": ["Q07afe81aa0034c01"],
"filter_by": "qrid"
}'
{
"qr": [],
"qr_meta": {
"docs-v2-first-qr-code": {
"qrid": "Q07afe81aa0034c01",
"category": "Website URL",
"category_slug": "url"
}
}
}
GET request returns 405 Method Not Allowed. The query parameters (from, to, type) select the date range and metrics; the request body selects which QR codes to include.MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) quota — see the Management API overview — plus the account’s own QR_ANALYTICS_BASIC quota. Requesting anything beyond the count metric additionally requires QR_ANALYTICS_ADVANCED; without it, every request is silently downgraded to count regardless of the type you asked for.Request
curl --request POST \
--url 'https://management.scanova.io/analytics/qr/?from=2026-07-01&to=2026-08-16&type=qr' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"q": ["Q07afe81aa0034c01"],
"filter_by": "qrid"
}'
{
"qr": [],
"qr_meta": {
"docs-v2-first-qr-code": {
"qrid": "Q07afe81aa0034c01",
"category": "Website URL",
"category_slug": "url"
}
}
}
qr array here reflects a QR code with zero scans in the requested window, not an error. qr_meta is an extra name -> {qrid, category, category_slug} map, added only when qr is among the requested types, so a caller can deep-link from a name-keyed row back to its qrid. It’s additive: the shape callers already parse under each metric key is unchanged.Query parameters
YYYY-MM-DD), inclusive.YYYY-MM-DD), inclusive.qr,device,geography. Common values: count, qr, date, day, time, utm, device, os, browser, handset, geography, geo_location, age. Requires the account’s QR_ANALYTICS_ADVANCED quota for anything beyond count.date, week, month.true for dashboard-overview-style calls — bypasses the QR-count/date-range volume limit described below, and doesn’t count toward the account’s “analytics fetched” activity signal.Request body
filter_by.qrid (QR code IDs), id (internal numeric IDs), tags (tag names), or folder (folder IDs).Response
The response is an object keyed by each requested metrictype, plus qr_meta when applicable (see above). Shape varies per metric type — count returns scan totals, device/os/browser/geography return breakdowns by that dimension, and time-series types (date/day/time) return a series bucketed by group.
400 under q: "High Volume of data. Either select lower than {N} QR Codes/{N} days time period or generate Analytics Export instead." In practice, both Export analytics and Export raw analytics enforce the exact same limit — all three endpoints share the same request-validation code path — so the actual fix for this error is narrowing q or the date range, not switching endpoints.Related
- Export analytics — download the same kind of aggregated metrics as a file instead of a JSON response.
- Export raw analytics — download row-level scan records instead of aggregated breakdowns.
- Management API overview — the auth scheme and quota architecture this endpoint is part of.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. management.scanova.io) — the same key sent to the regular API host will not authenticate.
Query Parameters
Comma-separated metric types, e.g. qr.
Grouping for time-series metric types, e.g. date/week/month.
Bypasses the volume cap; used by dashboard overview widgets.
Body
Response
Analytics data, grouped by the requested type(s). A qr_meta name->{qrid, category, category_slug} map is attached whenever qr is among the requested types.
Was this page helpful?