Two different products, two different promises

The free QR generator runs entirely in your browser. Nothing you type there is sent anywhere, there is no account, and there is nothing for us to store. That has not changed and will not.

Dynamic codes are different, and they have to be. A code whose destination you can change after printing works by pointing at a short link on this domain, which means this server sees every scan. That is the trade: editability in exchange for a server in the middle.

What a scan records

When someone scans one of your dynamic codes we store:

  • which code was scanned
  • the date and time
  • the country, when the server can determine it

We do not store:

  • IP addresses
  • device or browser details
  • the page the scan came from
  • anything that identifies the person scanning

Scan records are deleted after 24 months. Your all-time scan total is a separate counter and is not affected.

To stop abuse, the server briefly counts requests per address using a one-way hash. Those rows are deleted within the hour and are never connected to your scan statistics.

Your account

We store your email address, a hash of your password (never the password itself), and the codes you create with their destinations. That is all an account is.

A dynamic code depends on this service

Every printed dynamic code needs this server to be running and this domain to be ours. If either lapses, all of them stop working at once — that is true of every dynamic QR provider, not just this one.

A static code from the free generator has no such dependency. It encodes your destination directly and will still scan in ten years with no server anywhere.

Keep a copy of your destinations somewhere off this service — there is a CSV export on your account page. Then losing the service costs you the redirect, not the information.