Dynamic QR Codes
A dynamic QR code routes through QRlumo's redirect layer instead of encoding the destination directly. You can change the destination any time — the printed code stays the same.
How it works
Printed QR → https://qrlu.mo/r/abc → (QRlumo resolves) → https://your-destination.com
- The printed pattern always points to
qrlu.mo/r/{shortCode} - QRlumo resolves the short code to the current destination
- The scanner is redirected — in under 100ms
Static vs dynamic
| Static | Dynamic | |
|---|---|---|
| Destination changeable | ✗ | ✓ |
| Scan analytics | ✗ | ✓ |
| Expiry rules | ✗ | ✓ |
| Scan-count limits | ✗ | ✓ |
| Works offline (no network) | ✓ | ✗ |
| Best for | One-time, permanent URLs | Campaigns, packaging, menus |
Creating a dynamic code
Via dashboard
- Click New QR code
- Select Dynamic under code type
- Enter the destination URL
- Download and print
Via API
curl -X POST https://api.qrlumo.com/v1/workspaces/{id}/qrcodes \
-H "Authorization: Bearer qrl_live_..." \
-H "Content-Type: application/json" \
-d '{
"name": "menu_table_1",
"type": "dynamic",
"content": { "url": "https://restaurant.com/menu" }
}'
Updating the destination
Via dashboard
Open the code, click Edit destination, enter the new URL, and Save.
Via API
curl -X PATCH https://api.qrlumo.com/v1/workspaces/{id}/qrcodes/{qrId} \
-H "Authorization: Bearer qrl_live_..." \
-H "Content-Type: application/json" \
-d '{ "content": { "url": "https://restaurant.com/new-menu" } }'
The change takes effect immediately — no reprinting needed.
Advanced rules
Expiry
Set an expiry date or scan-count limit on a code:
- Date expiry — the code stops redirecting after the date
- Scan limit — the code stops redirecting after N scans
- On expiry action — redirect to a fallback URL, or show a "code expired" page
A/B routing
Split traffic between two destinations by percentage. Available on Team and Business plans.
Destination history
Every destination change is logged. Open a code and click History to see all past destinations with timestamps and the user who made the change.