How do I export scan data to CSV?
Updated September 14, 2026 · 3 min read · Every paid plan and the free trial
Use the Export CSV button. On the Analytics page it downloads account-wide totals for the date range on screen — scans per day plus device, operating system, browser and, where your plan includes them, country, city and referrer breakdowns. On a single code's page it downloads one row per scan, with the time, device, operating system, browser, country, city, IP address and referrer. Both exports cover only the range you have selected, which can be at most 365 days.
Export account-wide totals
- Open Analytics in the sidebar.
- Choose the source and the date range you want — the export matches exactly what is on screen.
- Click Export CSV next to the date dropdown.
The file arrives as qrcodestack-analytics-30d.csv or similar, named after the range you chose. It is written from the data already loaded in the page, so it downloads instantly with no waiting.
Inside, the blocks are stacked with a blank line between them:
- Date and a count, one row per day
- Device Type and a count
- Operating System and a count
- Browser and a count
- Country, City and Referrer blocks, each only when there is something to report
Export a row per scan for one code
- Open the code from My QR Codes.
- Set the date range on its analytics section.
- Click Export CSV. The button reads Exporting... while it collects the rows.
Columns: Scan Time, Device, OS, Browser, Country, City, IP Address, Referrer. Scan Time is in UTC. Up to 10,000 scans are collected for the selected range, so split a very busy code into shorter ranges if you need everything.
This is the export to take before you delete a code — deleting is permanent and takes the scan history with it. Archiving instead keeps the data.
What the file does and does not include
| Question | Answer |
|---|---|
| Which scans are in it? | Only scans that passed the People filter — bots, link previews and repeats within seconds are left out. |
| How far back? | Whatever range is on screen, up to 365 days at a time. It is not a full-history export. |
| Country and city? | Filled only on plans that include location analytics. Otherwise the columns come back empty. |
| Campaign parameters? | Not in either CSV. Read them on the Campaigns card, or pull them from the API. |
| Personal details? | None. Scans are anonymous; the closest thing to an identifier is the IP address on the per-code export. |
Pulling full history with the API
For history beyond one range, or to load scans into your own warehouse on a schedule, use the API instead of the buttons:
GET /api/v1/qr-codes/{id}/analytics— totals and breakdowns, with optionalfromandtodates.GET /api/v1/qr-codes/{id}/scans— the raw scan list, cursor-paginated, up to 100 rows per page.
Both default to the same People filter; pass traffic=all to include machine traffic. API access needs a Pro or Business plan and a key with the analytics:read scope — see getting started with the API.
Common problems
The button reads "Export CSV (Pro)"
The account is on the free plan or the subscription has lapsed. Any active paid plan, and the free trial, can export.
There is no button at all
It only appears once there is at least one scan in the selected range. Widen the range.
Country and City columns are blank
Location detail is included on the Business plan and during the free trial. Starter and Pro get everything else.
The file will not open properly in a spreadsheet
It is UTF-8 CSV. If accents look wrong, import it rather than double-clicking, and choose UTF-8 as the encoding.
I need every scan ever recorded
Export in 365-day slices, use the API, or take a full account export from Settings → Profile → Privacy & Data, which includes scan analytics as JSON.
Frequently asked questions
Does the export include short-link clicks?
The Analytics export follows the source filter on screen, so set it to Links or All sources first. The Links list has its own CSV export.
Can I schedule an export?
No. Use the API on your own schedule, or turn on the scan report email for a regular summary.
Is there a row limit?
The per-code export collects up to 10,000 scans for the selected range. The account export is a set of totals, so it stays small.
Does exporting change anything?
No. It only reads data already on screen or already recorded.
Related articles
How do I read my QR code scan analytics?
Open Analytics in the sidebar, pick a date range, and read Total Scans, Unique Visitors, Avg Scans/Day and Active Devices. Only dynamic codes report scans.
How do I get started with the QRCodeStack API?
Create a key under Settings → Developer settings → API, send it as Authorization: Bearer qrs_…, and call GET /api/v1/me. Pro and Business only.
How do I delete a QR code, and what happens to its scan data?
Open the ⋮ menu, choose Delete and confirm. Deletion is permanent, the scan history goes with the code, and printed copies show a QR Code Unavailable page.
How do I export my data (GDPR / CCPA)?
Settings → Profile → Privacy and Data → Export. One JSON file with your account, QR codes, scan analytics and subscription history, downloaded instantly.
Which plans include city and map scan analytics?
The Scan Locations map, countries, regions, cities and pincodes plus Busiest Times are on the free trial and Business. Starter and Pro do not have them.
Still stuck?
Email support@qrcodestack.com with the email on your account and, if it is about one code, its name or short link. A person replies within one business day, usually sooner.