curl --request POST \
--url 'https://api.scanova.io/analytics/report/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"filter_type": "qrcode",
"filter_data": "[\"Q07afe81aa0034c01\"]",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"report_type": "both",
"analytics_format": "xlsx",
"scan_format": "csv"
}'
{
"id": 59,
"filter_type": "qrcode",
"filter_data": "[\"Q07afe81aa0034c01\"]",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"report_type": "both",
"analytics_format": "xlsx",
"scan_format": "csv",
"status": "new",
"report_file": null,
"completed_on": null,
"is_saved": false,
"saved_name": null,
"created": "2026-09-08T10:20:00Z",
"requested_by_name": "Docs"
}
Analytics & Plans
Generate an analytics report
POST /analytics/report/
POST
/
analytics
/
report
/
curl --request POST \
--url 'https://api.scanova.io/analytics/report/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"filter_type": "qrcode",
"filter_data": "[\"Q07afe81aa0034c01\"]",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"report_type": "both",
"analytics_format": "xlsx",
"scan_format": "csv"
}'
{
"id": 59,
"filter_type": "qrcode",
"filter_data": "[\"Q07afe81aa0034c01\"]",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"report_type": "both",
"analytics_format": "xlsx",
"scan_format": "csv",
"status": "new",
"report_file": null,
"completed_on": null,
"is_saved": false,
"saved_name": null,
"created": "2026-09-08T10:20:00Z",
"requested_by_name": "Docs"
}
Queues an asynchronous job that generates a scan-data and/or analytics report spanning a set of QR Codes, a tag, or a folder.
The call returns
Requires a Management API key with
MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) quota — see the Management API overview — plus the account’s own EXPORT_ANALYTICS_REPORT quota and ANALYTICS_CAN_EXPORT_REPORT permission.string
required
What
filter_data identifies: qrcode, tag, or folder.string
required
A JSON-encoded string identifying the target(s) — e.g. a JSON array of
qrids when filter_type is qrcode.string
required
Start date (
YYYY-MM-DD).string
required
End date (
YYYY-MM-DD).string
default:"both"
scan_data, analytics, or both.string
default:"csv"
File format for the analytics portion:
csv, xls, xlsx, png, jpeg, or pdf.string
default:"csv"
File format for the scan-data portion: same options as
analytics_format.object
Optional additional JSON filter payload, layered on top of
filter_type/filter_data.boolean
default:"false"
Excludes scans identified as bot traffic from the report.
boolean
default:"false"
Whether to keep this report as a reusable saved preset — see Update a saved analytics report.
string
A name for the saved preset, required if
is_saved is true. Must be unique per account — a duplicate returns 400.curl --request POST \
--url 'https://api.scanova.io/analytics/report/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"filter_type": "qrcode",
"filter_data": "[\"Q07afe81aa0034c01\"]",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"report_type": "both",
"analytics_format": "xlsx",
"scan_format": "csv"
}'
{
"id": 59,
"filter_type": "qrcode",
"filter_data": "[\"Q07afe81aa0034c01\"]",
"start_date": "2026-08-01",
"end_date": "2026-08-31",
"report_type": "both",
"analytics_format": "xlsx",
"scan_format": "csv",
"status": "new",
"report_file": null,
"completed_on": null,
"is_saved": false,
"saved_name": null,
"created": "2026-09-08T10:20:00Z",
"requested_by_name": "Docs"
}
201 immediately once the job is queued, with status: "new" — the report itself is generated in the background and the account is emailed on completion. Poll List analytics reports for status and report_file.
Related
- List analytics reports — poll job status.
- Update a saved analytics report — rename or manage a saved preset.
- 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. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
201 - application/json
Report job queued.
Was this page helpful?