QR codes that tell you who scanned them

Most QR generators hand you a static image and forget you exist. Here's how to make one you can re-point after printing, with scan analytics attached — plus the print rules that stop it failing in the wild.

The slim.to team · · 3 min read

A QR code is a picture of a URL. That's the whole idea, and it's also the whole problem: once the URL is encoded into the pattern and the pattern is printed on five thousand flyers, it is permanent. Wrong link? Reprint. Campaign moved to a new landing page? Reprint. Want to know how many people scanned it? You can't — the code is a picture, and pictures don't report back.

Both problems have the same fix: don't encode the destination. Encode a link you control, and let the link do the work.

Static versus dynamic, briefly

Static QR encodes the final URL directly. Free everywhere, works forever, tells you nothing, can never be changed.

Dynamic QR encodes a short link that redirects. The pattern never changes; where it points can. And because every scan is a request to that link, every scan is measurable.

Everything below is about the second kind.

Making one

The free QR generator needs no account. Paste a URL, style it, download the PNG.

You get:

For a QR you can re-point later and get analytics from, generate it against a link in your dashboard instead. Every link has a QR code — the pattern encodes slim.to/<slug> (or your own domain), so changing the link's destination changes where the code goes, with no reprint.

From the API, that's:

curl -s https://slim.to/api/v1/links/<link_id>/qr \
  -H "X-API-Key: $SLIMTO_API_KEY" -o qr.png

What a scan tells you

A scan is an open, so it carries everything a normal link open does: time, country and city, device and browser, and referrer. Practically that means you can answer:

One caveat worth knowing: some camera apps and scanning tools pre-fetch a URL to show a preview before the user taps through. Those show up as opens with no dwell time. As always, time on page is the honest metric.

Printing rules that stop it failing

Most QR failures in the wild are print problems, not encoding problems.

Where to go next

Keep reading