01 — QR codes that do something
Turn every scan into an event
your systems can act on.
Someone scans your code and, in the same second, your tools hear about it — where it happened, on what device, from which campaign. Seat a table, log a lead, mark a check-in. And when the link needs to change, you change it. No reprinting.
- Free for your first 5 codes
- No app for people to install
- Change where a code points, anytime
You hear about a scan
instantly
while they're still on the page
If your system is down
we retry
three times, automatically
Kinds of QR code
28
all free
Times you'll reprint
0
just edit the destination
02 — How it works
What happens in the second after a scan
Your code points at us first, then at wherever you want. That tiny detour is the whole trick: we send the person on their way, write down what happened, and pass the news along to whatever you've connected — a spreadsheet, Slack, your own software.
Someone points their camera
Their phone opens a short link of ours. Nothing to download, no account, no app — it works the same on any phone made in the last decade.
We look up where to send them
We check where that code points right now — which may not be where it pointed last week. At the same time we note the city, the kind of phone, and which campaign brought them, and whether they've scanned before.
They land on your page
Fast enough that nobody notices the detour. Bots and link previews get filtered out, so they never show up in your numbers or set anything off.
Your tools find out
While they're still reading your page, we've already told everything you've connected to that code. If one of them doesn't answer, we keep trying.
X-QR-Signature: 9f2c… # HMAC-SHA256 of the body
X-QR-Timestamp: 1767283928411{
"event": "qr.scanned",
"qrCode": { "name": "Table 12", "shortCode": "x9k2" },
"scan": {
"city": "Lisbon", "country": "PT",
"deviceType": "mobile", "os": "iOS",
"utmCampaign": "spring-menu",
"isUniqueVisitor": true,
"scannedAt": "2026-05-06T14:22:08Z"
}
}You can prove it came from us
Every message we send is signed, so your side can check it's genuine and ignore anything that isn't. Same approach Stripe and GitHub use.
Nothing gets dropped
If your system is busy or offline, we try again — up to three times, spacing out the attempts. It catches up on its own once you're back.
You can see what happened
Every attempt is listed: sent, waiting, retrying, or failed. Something went wrong? Send it again from the dashboard with one click.
03 — Live demo
Create a QR code in 10 seconds
Paste a URL, customize the style, and download. See how easy it is before you commit.
URL data
Enter the URL to link to
The URL users will be redirected to when they scan
Add content to
see preview
Opens a website
Scanners land directly on the URL. Use tracking for analytics.
Save your work
Keep the code you just made.
Create an account to save it and start seeing who scans it.
04 — Connecting your tools
It fits the tools you already use
Most products make you build a translator in the middle. Here you decide exactly what a scan looks like when it arrives, so your CRM, your till system, or your Slack channel understands it straight away — nothing sitting in between.
Tell several tools at once
One scan can reach your CRM, your Slack channel, and your reporting tool together. Each one is set up on its own — if one has a bad day, the others still get the message.
Decide what gets sent
Keep the standard details, or pick and name the ones you want — the code's name, the city, the time. Whatever the other side expects to see.
Works with locked-down systems
Add access tokens or any other details your tool asks for, and choose how the message is sent. If it accepts requests, we can talk to it.
Try it before you print anything
Send a pretend scan from the dashboard and watch what comes back. Confirm the whole thing works while the design is still on your screen.
- Endpoint
- https://acme.com/hooks/qr
- Method
- GETPOSTPUTPATCHDELETE
- Headers
Authorization: Bearer ••••••••
X-Tenant-Id: acme-eu
- Body template
{ "table": "{{qrCode.name}}", "city": "{{scan.city}}", "device": "{{scan.deviceType}}", "at": "{{scan.scannedAt}}" }- Secret
- whsec_••••••••••••• — signs every request
05 — For your developers
If you have engineers, hand them this
Everything in the dashboard is available to your own software too — creating codes in bulk, pulling scan numbers into a report, wiring up the rest of your stack. You don't need this section to get value out of QRHooks. It's here when you want it.
Full CRUD over QR codes
Create, read, update, and delete codes from your stack. Bulk-create thousands at a time. Sort, filter, paginate.
Scoped API keys
Generate per-environment keys with usage tracking and instant revocation. Audit log per token.
Read scan analytics
Pull aggregated scan data — geography, device, time series — into your warehouse or BI tools via simple GET requests.
Manage webhooks
Configure webhook endpoints, rotate signing secrets, and replay failed deliveries — all over HTTP.
curl -X POST https://api.qrhooks.dev/v1/qr-codes \
-H "Authorization: Bearer $QRHOOKS_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Q4 Billboard",
"type": "url",
"destination": "https://acme.com/launch"
}'{
"id": "qr_2k4j8x9p",
"shortCode": "x9k2",
"destination": "https://acme.com/launch",
"scanUrl": "https://qrhk.co/x9k2",
"scans": 0,
"createdAt": "2026-05-06T14:22:08Z"
}06 — The full platform
More than a QR code generator
Charts of who's scanning, a live map, AI-designed codes, a running history of everything that's happened — all in one place, all included.
Interactive scan map
See all your QR codes on a live map with color-coded markers by type. Watch scan activity in real-time, filter by location, and export data.
Scan analytics dashboard
How scans are trending, which phones people use, where in the world they are — for one code or all of them. Download it as a spreadsheet whenever you like.
AI QR code design
Generate custom QR code artwork with AI. Choose from preset styles like Cyberpunk, Watercolor, or Abstract — or write your own prompt.
Custom styling & branding
Set brand colors, upload logos, pick module shapes (dots, rounded, classy), add frame text, and choose from preset color schemes.
Activity log
One running feed of every scan, every message sent, and every change anyone on your team made. Search it, filter it, scroll back as far as you want.
Access for your own software
Hand your developers a key and they can create codes, pull numbers, and plug QRHooks into whatever you already run.
Scan notifications
Get an email or an in-app nudge when your codes get scanned. Set a threshold, pick how often you want to hear about it, or send it to Slack.
Labels & organization
Create custom colored labels to organize QR codes by campaign, location, team, or anything else. Filter and search by label instantly.
Proof it arrived
Every message we send your tools is listed with what happened to it — sent, waiting, retrying, or failed. Send it again with one click.
07 — Static vs dynamic
Why ours can change
An ordinary QR code has the link baked into the pattern — print it and it's set forever. Ours points at us first, so you can send it somewhere new whenever you want.
08 — Code types
One code for everything
All 28 types included free — no upsell, no watermark.
URL
Links you can change anytime
WiFi
Guests connect in one tap
vCard
Share contact info instantly
Calendar
Events added with one scan
Pre-filled message drafts
Phone
Tap to call directly
SMS
Text with preset content
Location
Open in Maps instantly
Crypto
Receive BTC/ETH payments
App Store
Smart iOS/Android routing
Social
All profiles in one link
Text
Plain text messages
09 — Why people pick QRHooks
Three things people tell us
Never reprint again
Printed 10,000 flyers with the wrong URL? Update the destination from your dashboard. The QR code image stays identical — your content changes instantly.
Know what's working
See where, when, and how people scan. Compare one campaign against another, and take the numbers with you as a spreadsheet whenever you need them.
Built for real businesses
Restaurant menus, event check-ins, packaging, signs. Tag your codes to keep them straight, and let them do the boring bits for you.
10 — Industries
One idea, twelve kinds of business
A scan tells you someone was in a particular place, at a particular moment. What you do with that is where it gets interesting. Here's what people set up in their first week.
Restaurants & hospitality
A code on each table opens the order screen the moment a guest sits down — right server, right table, timer running. Change the menu mid-service without printing anything.
Marketing & advertising
A different code on every billboard, flyer, and booth. Each scan arrives with a city and a campaign name attached, so the posters finally get credit next to your online ads.
Retail & consumer goods
A code on the box registers the warranty the first time it's scanned and sends the welcome email. You find out where products are actually being opened, not just where they sold.
Events & conferences
Badges and room codes check people in as they arrive. Live headcount per room, a warning when one fills up, and a follow-up email to everyone who came to a given talk.
Field service & facilities
Stickers on equipment. A technician scans on arrival and you know who was there, when, and where — the job opens and the clock starts, with no extra app to install.
Logistics & supply chain
Codes on pallets and boxes. Every scan along the way updates where it is, which turns the phone already in everyone's pocket into a tracking scanner.
Education
Codes on rooms and courses mark attendance automatically. Course material stays current all term because you can change where the code points, and quiet sessions show up the same week.
Healthcare & clinics
A code in the waiting room tells reception a patient has arrived and shows them the right form. No personal details need to travel — the scan itself is the message.
Nonprofits & fundraising
Donation codes on posters and collection tins. Each scan tells you which one it came from, so you learn which street or venue actually works before the campaign ends.
Real estate
A code on the sign pings the agent in Slack the second someone scans it, with the neighbourhood attached. Point the same sign at a new listing whenever you like.
Transit & venues
Codes at stops, gates, and seats show you footfall by hour and place. Use it to plan staffing, or get an alert when somewhere gets busier than usual.
SaaS & hardware
Put a code in the box or in the manual. Scanning sets the device up, links it to the right account, and tells you the customer has actually started using it.
Don't see yours? It'll still work. Point a scan at Zapier, Make, n8n, Slack, or whatever you already run.
11 — FAQ
Common questions
12 — Pricing
Simple, transparent pricing
Start free with 5 dynamic QR codes. Upgrade when you need unlimited codes and larger file uploads.
Free
For individuals and small projects
- 5 dynamic QR codes
- All 28 QR code types
- Full scan analytics
- No watermarks or expiration
- Webhooks & API access
- 25MB file uploads
Pro
For teams and growing businesses
- Unlimited QR codes
- All 28 QR code types
- Full scan analytics & CSV exports
- Webhook integrations
- Full API access
- 25MB file uploads (5MB on Free)
Trusted infrastructure
Give it a go
Stop reprinting. Start tracking.
Your first code takes about a minute. Five of them are free forever, and we won't ask for a card.