curl --request GET \
--url 'https://api.scanova.io/forms/F8a9b0c1d2e3f4g5h/analytics/?from=2026-08-01&to=2026-08-31' \
--header 'Authorization: YOUR_API_KEY'
{
"entries_count": {
"total": 42,
"form_entries": 40,
"legacy_entries": 2,
"responses": {
"total": 38,
"elevation": { "percent": 15, "previous": 33, "type": "+", "period": { "start": "2026-08-01", "end": "2026-08-31" } }
},
"skips": { "total": 4, "elevation": null }
},
"responses": [["2026-09-01", 5], ["2026-09-02", 3]],
"skips": [["2026-09-01", 1]],
"responses_by_source": [["Direct", 10], ["docs-v2-first-qr-code", 28]]
}
Leads & Forms
Get form analytics
GET /forms//analytics/
GET
/
forms
/
{form_id}
/
analytics
/
curl --request GET \
--url 'https://api.scanova.io/forms/F8a9b0c1d2e3f4g5h/analytics/?from=2026-08-01&to=2026-08-31' \
--header 'Authorization: YOUR_API_KEY'
{
"entries_count": {
"total": 42,
"form_entries": 40,
"legacy_entries": 2,
"responses": {
"total": 38,
"elevation": { "percent": 15, "previous": 33, "type": "+", "period": { "start": "2026-08-01", "end": "2026-08-31" } }
},
"skips": { "total": 4, "elevation": null }
},
"responses": [["2026-09-01", 5], ["2026-09-02", 3]],
"skips": [["2026-09-01", 1]],
"responses_by_source": [["Direct", 10], ["docs-v2-first-qr-code", 28]]
}
Returns aggregated analytics for a form — response/skip counts over time and a breakdown by traffic source.
Requires a Management API key with
MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) quota, and the LEAD_GENERATION_ANALYTICS_CAN_VIEW permission, sent as the raw Authorization header value — see the Management API overview.string
required
The form’s
form_id.string
Start date (
YYYY-MM-DD). Required together with to to compute elevation (percent-change vs. an equal-length prior period).string
End date (
YYYY-MM-DD).curl --request GET \
--url 'https://api.scanova.io/forms/F8a9b0c1d2e3f4g5h/analytics/?from=2026-08-01&to=2026-08-31' \
--header 'Authorization: YOUR_API_KEY'
{
"entries_count": {
"total": 42,
"form_entries": 40,
"legacy_entries": 2,
"responses": {
"total": 38,
"elevation": { "percent": 15, "previous": 33, "type": "+", "period": { "start": "2026-08-01", "end": "2026-08-31" } }
},
"skips": { "total": 4, "elevation": null }
},
"responses": [["2026-09-01", 5], ["2026-09-02", 3]],
"skips": [["2026-09-01", 1]],
"responses_by_source": [["Direct", 10], ["docs-v2-first-qr-code", 28]]
}
elevation is null on both responses and skips under entries_count unless both from and to are supplied. legacy_entries counts submissions carried over from a lead list this form was converted from, if any. responses_by_source always includes a "Direct" bucket (submissions with no QR Code attached) even when it’s 0.
Related
- List form responses — the individual submissions behind these numbers.
- Export form responses — download the underlying data.
- 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
200
Aggregated analytics for the form.
Was this page helpful?