Use case
Make a Trackable QR Code for Free
Shorten your link on zip1.io and download the QR code from the result page. Every scan counts as a click on the link's stats page, by day, country, browser and operating system. It's free and needs no account.
- Count every scan
- Download as PNG
- No signup
- Free
You can make a trackable QR code in three steps.
A QR code on its own can't tell you how many people scanned it. If the code holds a zip1 short link instead of your full web address, every scan opens that link first, and zip1 counts it.
- On the zip1.io homepage, paste the address you want people to land on and click Shorten. To pick a readable name, open Advanced Options first and type the ending you choose (the part after zip1.io/), such as zip1.io/cafe-menu.
- The result page shows a QR code for your new link. Click it to download it as a PNG picture.
- Put the picture on your flyer, menu, poster or packaging, and print.
If you want a logo or brand colours on the code, a design tool such as Canva can add them.
Every scan shows up on your stats page.
Click View Analytics on the result page, or go to zip1.io/stats and type the ending of your link. Each scan counts as a click, together with any taps on the link itself. You'll see clicks by day, total and unique clicks, and which countries, browsers and operating systems they came from. You can also download the numbers for your own reports.
Most scanner apps don't say where the visitor came from, so scans usually don't appear in the referrer chart. Clicks from link-preview bots are labelled as bots. They still count in the total.
Anyone with the short link can see its stats page. Password-protected links also need the password. Visitor IP addresses are stored to count unique visitors. They are never shown on the stats page or included in the export.
Fix the destination before you print.
Once the short link is made, it can't be pointed at a different address. Check the page you're sending people to, and finish it, before the code goes to the printer.
- Make one short link for each place you print, such as each flyer, shop window or event stand. Each link has its own stats page, so you can see which one brought the most people.
- Print zip1.io/ and your ending under the code, so anyone whose camera won't scan it can type it in.
You can stop a code on your own terms.
In Advanced Options you can set a click limit or an end date when you make the link. After that many clicks, or after that date, the link stops working, and so does every printed copy of the code. Link previews in chat apps count toward a click limit too, unless the link has a password, so set the limit a little higher than the number of people you expect. You can also add a password, which visitors type before they reach your page. The password also protects the link's stats page and download.
It costs nothing, and there's no account to make.
There's no account, no plan and no fee per scan. Bitly's free plan, for comparison, includes only 1 or 2 QR codes a month (Bitly is testing both), and custom domains start on Bitly's Growth plan, $29 a month billed annually ($35 monthly) (Bitly pricing page, checked 11 Oct 2026). Bitly's help pages say its links and QR Codes don't expire unless you set an expiry date, which some paid plans offer, or delete the link (Bitly support, checked 11 Oct 2026). zip1 links keep working unless you set an end date or a click limit.
FAQ
-
How do I make a QR code I can track?
Shorten your link on zip1.io. The result page shows a QR code for the short link. Click it to download a PNG, then print it. Every scan counts as a click on the link's stats page.
-
What does the stats page show for scans?
Clicks by day, total and unique clicks, and which countries, browsers and operating systems they came from. Scans and taps on the link are counted together. Anyone with the short link can see its stats page. Password-protected links also need the password. Visitor IP addresses are stored to count unique visitors. They are never shown on the stats page or included in the export.
-
Why don't my scans show a referrer?
Most scanner apps don't say where the visitor came from, so scans usually don't appear in the referrer chart. They still count in the total.
-
Can I change where a printed QR code points?
No. The destination is fixed when you make the short link. Finish the page you're sending people to before you print.
-
How do I compare two flyers or locations?
Make one short link for each flyer or location, and print each one's own QR code. Each link has its own stats page.
-
Is there a limit on scans?
There's no monthly cap on scans. If you want the code to stop, set a click limit or an end date in Advanced Options when you make the link.
For developers:
You can create the short link from a script with no API key, then draw the QR with any QR library. Optional max-clicks and expiration-time set the click limit and end date. See the URL shortener API.
import requests, qrcode
ENDING = "your-ending" # replace with your own ending, 12 characters or fewer
r = requests.post("https://zip1.io/api/create",
json={"url": "https://example.com/your-page", "alias": ENDING})
if r.status_code == 409:
raise SystemExit("That ending is already taken. Pick another one.")
if r.status_code == 403:
raise SystemExit("zip1 refused this address. Check the link you are shortening.")
if r.status_code == 429:
raise SystemExit("Too many links made for now. Wait a while and try again.")
if r.status_code != 200:
raise SystemExit(f"Something went wrong (status {r.status_code}).")
short_url = r.json()["short_url"]
qrcode.make(short_url).save(f"{ENDING}.png")