curl --request POST \
--url 'https://api.scanova.io/forms/export/?file_format=csv&from=2026-08-01&to=2026-08-31' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{ "form_id": "F8a9b0c1d2e3f4g5h" }' \
--output responses.csv
Leads & Forms
Export form responses
POST /forms/export/
POST
/
forms
/
export
/
curl --request POST \
--url 'https://api.scanova.io/forms/export/?file_format=csv&from=2026-08-01&to=2026-08-31' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{ "form_id": "F8a9b0c1d2e3f4g5h" }' \
--output responses.csv
Downloads form responses as a CSV or Excel file — either for one form, or across all forms linked to a set of QR Codes.
The response is a file download (
Requires a Management API key with
MANAGEMENT_API (or MANAGEMENT_API_SANDBOX) quota, and the LEAD_GENERATION_ENTRY_CAN_VIEW permission, sent as the raw Authorization header value — see the Management API overview.string
Export one form’s responses, with its own question schema as column headers. Mutually exclusive with
qr_ids.array
Export responses across every form (and converted lead list) linked to these QR
qrids — questions from multiple forms are merged into combined columns. Mutually exclusive with form_id.string
default:"xls"
csv, xls, or xlsx.string
Only responses created on or after this date (
YYYY-MM-DD).string
Only responses created on or before this date (
YYYY-MM-DD).curl --request POST \
--url 'https://api.scanova.io/forms/export/?file_format=csv&from=2026-08-01&to=2026-08-31' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{ "form_id": "F8a9b0c1d2e3f4g5h" }' \
--output responses.csv
Content-Type: text/csv, or the XLS/XLSX MIME type), not JSON, with Content-Disposition: attachment. Columns are Tracking ID, QR Code, Created, Skip, Source, one column per question, then eight tracking-tail columns: Scan Time, Scan Day, Device Type, City, Country Code, Country Name, Postal Code, Region.
400 if both or neither of form_id/qr_ids are given:
400
{ "detail": "form_id and qr_ids are mutually exclusive" }
400
{ "detail": "Either form_id or qr_ids is required" }
400 if file_format isn’t csv, xls, or xlsx:
400
{ "detail": "Unknown file format" }
Related
- List form responses — the JSON equivalent for a single form, with filters.
- Get form analytics — aggregated numbers instead of raw rows.
- 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
CSV or XLSX file download.
Was this page helpful?