Trackable QR codes with editable destinations.
Same QR pattern your phone already knows how to scan — but the URL inside it is a short link on a domain we operate (or yours). Change the destination after the code is printed. Watch every scan land in a dashboard. Route by country, device, or time of day.
Because the redirect runs on our servers, we need an account to associate each short code with you. The free, zero-knowledge generator at /products/qr-code stays available — use that when you need a QR with no backend in the loop.
A tracked QR is a static QR with a short URL inside it.
The QR pattern itself is the same standard ISO/IEC 18004 image. What changes is what string the code carries — and therefore what happens when somebody scans it.
The QR encodes the full URL directly. Once printed, the destination is set — there is no server in the loop. Nobody knows when, where, or how often it was scanned, including you.
- Zero infrastructure
- No account needed
- Works offline forever
- Privacy-preserving by default
- Cannot edit after print
- No scan analytics
- No A/B routing
- A typo means a reprint
The QR encodes a short link on a domain we operate (or yours). Each scan hits our redirect server, is logged, and then forwards to whichever destination you have set right now. The destination can change anytime without reprinting.
- Edit destination anytime
- Per-scan analytics
- A/B and geo routing
- Schedule destination changes
- Account required
- Scans flow through our servers
- Depends on our (or your) domain being up
- Subscription cost
Four steps from sign-up to printable QR.
No code to deploy, no DNS work on day one (custom domain comes later if you want). The default short domain works out of the box; everything else is just filling in fields.
- Create a code
Pick a destination URL, name the campaign.
Inside the dashboard, "New code" opens a form: paste the destination, give it a name (e.g. "Spring 2026 poster"), pick an error-correction level. The short URL is generated server-side and the QR is rendered in the browser using the same engine as the free static tool.
- Print or share
Download PNG / SVG and put it in the world.
Posters, packaging, table tents, emails, business cards, slide decks — anywhere the static QR would have gone. The image is yours; we never need to see the printed material itself.
- Every scan is logged
Phone camera → our redirect → destination.
When somebody scans, their phone opens the short URL on our domain. Our server records the scan (timestamp, country, device class and user-agent, referrer if any, and a date-keyed hash of the IP address), then issues a 302 redirect to whatever destination you have currently set. One hop, no interstitial page — on top of the DNS and TLS your phone does anyway.
- Edit, route, analyze
Same QR, new behavior — no reprint.
Change the destination from the dashboard and the next scan goes there. Add routing rules — "Germany → de-site, US → en-site". Schedule a destination swap for midnight on launch day. Watch the scan curve in real time. Revision history is kept so you can roll back.
What the QR actually encodes.
A tracked QR needs a short URL pointing at a domain that runs the redirect. You can use ours by default, or bring your own — both options are first-class and switching takes one DNS record.
Every tracked code gets a short URL on `nnqr.net` — our shared neutral domain. Four-character codes by default (≈ 1.6 million combinations per short prefix, plenty for any single account). No setup, no DNS, no waiting for propagation.
Planned, not yet available. The intent: map a subdomain like `qr.yourbrand.com` to our redirect service, so your brand stays in the URL, scanner apps show it to users before opening, and you can move providers later by retargeting the CNAME. Until it ships, every code uses the default short domain above.
When it ships, setup is intended to be a single CNAME record, verified in the dashboard. We are not quoting a turnaround time until the edge that serves it is built.
Modern phone cameras show the URL before opening it. A branded short domain looks legitimate at a glance; a generic shortener looks like spam and can trigger phishing warnings.
A shorter URL means fewer modules in the QR, which means a less dense image and a more forgiving scan at distance. `nnqr.net/k7g3` is 13 characters; a typical UTM-tagged campaign URL is 80+.
This is what a domain you control buys: codes that encode `qr.yourbrand.com/…`, so if you ever leave us you point the CNAME elsewhere and your printed QRs still resolve. The redirect provider would be replaceable; the domain you printed is not.
The dashboard you see after the first scan.
Each tracked code has its own dashboard. Headline KPIs, a 30-day scan curve, geography and device breakdown, and a live tail of recent scans you can filter by anything in the row.
- DEGermany38%
- USUnited States24%
- GBUnited Kingdom11%
- NLNetherlands7%
- FRFrance5%
- ATAustria4%
- CHSwitzerland3%
- iOS58%
- Android38%
- Desktop4%
| When | Country | Device | Source |
|---|---|---|---|
| 2 min ago | Germany | iOS 17 · Safari | (direct) |
| 4 min ago | United States | Android 14 · Chrome | (direct) |
| 7 min ago | Germany | iOS 17 · Safari | twitter.com |
| 12 min ago | United Kingdom | iOS 16 · Safari | (direct) |
| 19 min ago | Netherlands | Android 14 · Chrome | (direct) |
Illustrative snapshot — sample data shown. Real dashboards update within seconds of each scan.
Same printed QR. Different landing page.
Every tracked code keeps a revision history of the destinations it has pointed at. Roll back if you mistype, schedule a swap for a campaign launch, or rotate destinations on a timer.
- Mar 14 · 09:22/spring-2026-launch/spring-2026-launch/sold-out
- Feb 02 · 14:08/coming-soon/spring-2026-launch
- Jan 11 · 16:41(initial)/coming-soon
Core features ship with every plan, nice-to-haves unlock as you grow.
Everything you need to run a real campaign is in the cheapest paid tier. The higher tiers add the things that matter once you have a portfolio of codes — geo routing, team access, the API.
Change where the QR points after print. Revision history so you can roll back. The reason most people pay for dynamic QR in the first place.
Scan count, unique count, time series, geography, devices. Filter by date range, drill into recent scans.
Codes ship on `nnqr.net/xxxx` out of the box. No DNS work to start tracking. Pages load via 302 redirect — same flow scanners already expect.
ISO/IEC 18004 conformant — the same engine as our free static generator. Works with every phone camera, scanner app, and POS terminal.
Same export options as the static tool: PNG at 256–4096 px for prints, SVG for vector workflows. Logo overlay with auto error-correction bump.
Not yet available. The intent is to map `qr.yourbrand.com` to our redirect service via CNAME, giving branded URLs in every scan preview and portability if you ever leave. Every code uses the default short domain today.
Send US scans to one page, EU to another, fallback to a default. Useful for multi-language sites, regional pricing, compliance content.
Split scans across two destinations by weight. Compare conversion on the receiving end. Stop the experiment in one click.
Set up the destination change in advance. Launch-day URL goes live at 00:00 local time on the day of, without anybody having to be awake.
Cap a code at N scans, or set an expiry date after which it stops redirecting (or redirects to a fallback). Useful for time-limited offers and event tickets.
Optional gate before the redirect. Scanner sees a short password prompt; you can post the password separately. Cheap layer of access control for internal QRs.
Upload a CSV of destination URLs and get back a tracked QR code for each, as a zip of PNGs and SVGs. Up to your plan’s active-code limit: 100 on Pro, 1,000 on Scale. On Custom, up to 1,000 URLs per file. Each gets its own short URL and dashboard.
REST API for create / edit / list / delete. Webhook POSTs on every scan if you want raw events into your own data warehouse. Same auth as the rest of the platform.
Multiple users on one account, with role-based access (admin / editor / viewer). Audit log of who edited what destination when.
Most QR codes should be static. These ones should not.
Print 50 posters with 50 different tracked codes pointing at the same URL. Two months later, you know exactly which locations earned which scans — without needing UTM hygiene or a print-tracking vendor.
The packaging shipped with a typo in the URL. With a static QR you reprint 100,000 boxes; with a tracked one you change the destination and the wrong URL never reaches a scanner. The QR pattern itself is unchanged.
A scan from Munich opens the German page, a scan from Lyon opens French. Same QR, no language picker, no IP detection JS on the destination. Geo routing handles the branch at the redirect.
Same QR on the registration page, on the badge, in the post-event email. Schedule the destination to swap at the event start time and again when it ends — pre-reg form → live agenda → recap page. Nobody has to push a button at 9 AM.
A/B routing splits scans between two destinations by weight. Print one QR, measure both pages on the receiving end. Useful when the campaign budget for the print run is bigger than the budget for the A/B test setup.
Set an expiry date on a promo QR. After the date, the code redirects to a fallback page ("This offer has ended — see current promotions"). The printed coupon is still a valid QR; it just stops being a useful one.
Pricing that scales with the number of codes.
Codes, scans, retention, and feature gates. No per-seat fees on the lower tiers. Every plan except Custom includes a monthly scan allowance. We email you at 80%; at 100% your codes stop redirecting until you upgrade or your allowance resets on the 1st.
For one campaign or a small portfolio.
- Up to 10 active codes
- 5,000 scans / month
- Default short domain
- 30-day scan history
- Edit + revision history
- CSV scan export
For agencies and active marketing teams.
- Up to 100 active codes
- 50,000 scans / month
- 1-year scan history
- Geo routing + A/B + scheduled swaps
- Bulk CSV import
- REST API
For high-volume campaigns and team accounts.
- Up to 1,000 active codes
- 500,000 scans / month
- Unlimited scan history
- Webhooks + team workspaces
- Priority support
For agencies, retailers, regulated industries.
- Unlimited codes and scans
- SLA + signed DPA
- SSO (SAML / OIDC)
- Dedicated success engineer
- Custom contract terms
All plans include unlimited PNG/SVG exports, ISO/IEC 18004 standard codes, and revision history. Prices in USD, billed monthly or annually (annual saves 20%).
What we log, what we do not,
This product runs through our servers — that is the whole point. We try to be precise about what that means in practice, because the line between "useful analytics" and "creepy tracking" is exactly where this kind of product can go wrong.
- Timestamp of each scan, in UTC.
- Location: country only, from the country header our CDN adds to the request. The scan log never holds the IP address itself, only a SHA-256 hash of it combined with the day’s date, which we use to count unique scans.
- Device class and OS family (for example iPhone and iOS, or desktop and Windows), worked out from the user-agent string, and the full user-agent string itself.
- Referrer header if any (mostly empty for camera scans, sometimes set for in-app scanners).
- The short code that was scanned and the destination it resolved to at the time.
- The IP address itself in the scan log, which keeps only the date-keyed hash described above.
- Anything about the *destination* page: we do not run JS on it, we do not see the URL of where the user goes after the redirect, we do not set cookies on your destination.
- Cookies on the scanner’s device: the redirect sets none, so there is no super-cookie. The IP hash changes at midnight UTC, so the same scanner gets a different hash each day.
- Names, email addresses or phone numbers: the redirect step asks for none of them.
If you need a QR code where nothing is logged anywhere, ever — use the free static generator instead. It runs entirely in your browser, makes no network calls, and never tells us what you encoded.
Free static QR generator →Tracked QR codes, the plain answers.
Track your first code with us.
Tell us about the campaign and we will get you set up. Print it, share it, watch the scans land in the dashboard. Cancel anytime — your codes stop redirecting, but you keep the export of your scan data.