ScanStack — QR Infrastructure API
QR codes
that think
SmartRoute adapts every scan by time, device, location, and visitor history. One QR code. Infinite contexts. Powered by a developer-first API.
Plans from $19/mo. 30-day money-back guarantee.
API requests/day on Pro plan
QR codes per bulk request
SmartRoute condition types
Webhook notifications
Built for developers
Conditional Redirects
Route scans by device, OS, country, or language. iOS → App Store. Android → Play Store. Desktop → fallback. Automatically.
curl -X POST https://api.scanstack.dev/v2/qr/:id/rules \
-H "x-api-key: qr_your_key" \
-d '{
"condition_type": "os",
"condition_value": "ios",
"target_url": "https://apps.apple.com"
}'
Self-Optimizing A/B Tests
Enable auto_optimize and traffic automatically shifts toward your best-performing variant using Thompson Sampling. Record conversions, watch it learn.
curl -X POST https://api.scanstack.dev/v2/qr/:id/ab-test \
-H "x-api-key: qr_your_key" \
-d '{
"auto_optimize": true,
"variants": [
{ "target_url": "/landing-a", "weight": 50 },
{ "target_url": "/landing-b", "weight": 50 }
]
}'
Bulk Generation
Generate up to 100 QR codes in a single request. Perfect for events, inventory, packaging, and print runs.
curl -X POST https://api.scanstack.dev/v2/bulk \
-H "x-api-key: qr_your_key" \
-d '{
"items": [
{ "type": "url", "label": "..." },
{ "type": "url", "label": "..." }
]
}'
Scan Automations
Trigger actions when scan milestones hit, visitors return, or scans come from specific cities. Auto-swap URLs, fire webhooks, or send alerts.
curl -X POST https://api.scanstack.dev/v2/qr/:id/automations \
-H "x-api-key: qr_your_key" \
-d '{
"name": "100-scan celebration",
"trigger_type": "scan_milestone",
"trigger_config": { "scan_count": 100 },
"action_type": "redirect_swap",
"action_config": { "target_url": "/promo/100" }
}'
SmartRoute
One QR code.
Infinite contexts.
SmartRoute turns every QR code into an intelligent endpoint. The same code adapts what it shows based on who scans it, when, where, and how often.
Time-aware routing
Lunch menu at noon, happy hour at 5pm, dinner at 7pm. Same QR code on the table.
Returning visitor detection
First scan → welcome page. Second scan → reorder with discount. Loyalty for regulars.
Geo-fencing
Route by city, state, or GPS radius. Food truck in Austin shows Austin menu, scanned in Houston shows Houston menu.
Compound conditions
Combine device + time + location + scan count in a single rule. Mobile users on weekends in NYC see a different page.
11am–3pm, Mon–Fri
/menu/lunch
5pm–10pm, Mon–Sat
/menu/dinner
Returning visitor (2+ scans)
/loyalty/dashboard
City = Austin, TX
/locations/austin
Within 10km of 30.27, -97.74
/promo/downtown-austin
POST /v2/qr/:id/rules
{
"conditions": [
{ "type": "city", "value": "Austin" },
{ "type": "time", "start": "11:00", "end": "15:00" }
],
"target_url": "https://truck.com/austin/lunch",
"priority": 10
}
Use cases
Event Apps
Ticketing, check-in, session tracking
Restaurants
Digital menus, table ordering
Logistics
Package tracking, inventory
Marketing
Campaigns, retargeting, attribution
Ready to build?
Plans start at $19/mo. Every plan includes a 30-day money-back guarantee.