Use case
Create QR Codes Programmatically
Generate trackable QR codes for your short URLs. Bridge the gap between physical and digital with scannable, analyzable links.
- Track every scan
- Any QR library
- No signup
- Free forever
🔄 Simple Workflow
Create Short URL
Use our API to create a trackable short link
Generate QR Code
Convert the short URL to a QR code using any QR library
Track Scans
Monitor QR code scans with our detailed analytics
Analyze & Optimize
Export data and improve your campaigns
💻 Implementation Examples
Python Example
import requests
import qrcode
from PIL import Image
# Step 1: Create a short URL with zip1.io
response = requests.post('https://zip1.io/api/create',
json={
'url': 'https://your-event-page.com',
'alias': 'event2024',
'max-clicks': 1000 # Optional: limit scans
})
short_url = response.json()['short_url']
# Step 2: Generate QR Code
qr = qrcode.QRCode(
version=1,
box_size=10,
border=5
)
qr.add_data(short_url)
qr.make(fit=True)
# Create and save QR code image
img = qr.make_image(fill_color="black", back_color="white")
img.save("event_qr_code.png")
# Step 3: Check analytics
stats = requests.get(f'https://zip1.io/api/stats/event2024')
print(f"Total scans: {stats.json()['data']['total_clicks']}")
JavaScript/Node.js Example
const QRCode = require('qrcode');
const fetch = require('node-fetch');
async function createTrackableQR() {
// Step 1: Create short URL
const response = await fetch('https://zip1.io/api/create', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://your-product-page.com',
alias: 'product-qr-2024'
})
});
const data = await response.json();
const shortUrl = data.short_url;
// Step 2: Generate QR Code
const qrCodeDataUrl = await QRCode.toDataURL(shortUrl, {
width: 300,
margin: 2,
color: {
dark: '#000000',
light: '#FFFFFF'
}
});
// Use qrCodeDataUrl in your application
console.log('QR Code generated:', shortUrl);
// Step 3: Track scans via API
const stats = await fetch(`https://zip1.io/api/stats/product-qr-2024`);
const analytics = await stats.json();
console.log('Total scans:', analytics.data.total_clicks);
}
🎯 Perfect Use Cases
🎫 Event Management
Create QR codes for event tickets, track attendance, and understand participant engagement.
🍽️ Restaurant Menus
Digital menus with analytics. Know which items get viewed most and when.
📦 Product Packaging
Link physical products to digital experiences. Track customer engagement post-purchase.
🏪 Retail & Point of Sale
QR codes for promotions, loyalty programs, and customer feedback with full tracking.
📰 Print Advertising
Make print ads measurable. Track which placements drive the most engagement.
🏢 Business Cards
Smart business cards that track engagement and provide analytics on networking success.
✨ Why Use zip1.io for QR Codes?
📊 Full Analytics
Track every scan with location, device, time, and referrer data. Know your audience.
🔗 Readable Fallback
Print the short URL under the code. Anyone whose camera won't cooperate can type it instead.
🔒 Security Options
Add passwords or click limits to your QR codes. Control access to sensitive content.
📤 Data Export
Export scan data as CSV, JSON, or Excel. Integrate with your analytics tools.
🚀 High Performance
Fast redirects ensure smooth user experience. No delays when scanning.
💸 Completely Free
No limits on links or scans. Free forever for all your campaigns.
Try It Now!
Scan this QR code to shorten a link and get its scan analytics:
This QR code links to: https://zip1.io/
FAQ
-
Does zip1.io generate the QR image itself?
No. zip1.io gives you the short URL; you render the QR yourself with any library —
qrcodefor Python,qrcodefor Node, or whatever your design tool already has. There is no QR endpoint on the API. -
Can I change where a printed QR code points?
No. A zip1.io link's destination is fixed when you create it — there is no edit endpoint. Decide the destination before anything goes to print. If you need to repoint it later, aim the QR at a page you control and redirect from there.
-
How do I count print scans separately from web clicks?
Give the printed code its own slug. Every scan is a click on that slug and nothing else touches it, so that link's stats page is your scan count.
-
Do QR scans look different in the analytics?
They arrive as ordinary clicks with country, browser, and OS. Most scanner apps send no referrer, so scans usually show up as direct traffic rather than under a source.
-
Is there a limit on scans?
No monthly cap and no per-link fee. If you want a limit, set
max-clickswhen you create the link and the code stops working after that many scans.
Related
Start Creating Trackable QR Codes
No signup required. Unlimited links. Forever free.