Dynamic QR codes
A dynamic code encodes a short URL on a host we (or you) control · https://tap2u.link/summer-menu · and the destination behind it is yours to change forever. The printed artwork never changes; what it points at does.
The lifecycle
- Draft · exists, resolves nowhere, costs nothing to keep. Everything about a draft is freely editable, including its slug.
- Published (1 credit) · live at its short URL. The payload · slug and domain · is write-once from here: that string is on physical things now, so nothing you do in the product can un-print it. Destination, routing, label, folder and design all stay editable.
- Paused · stops resolving, keeps its address, one click to resume.
- Archived · what "delete" means for a published code. It keeps its address (scanners see an archived notice, never a 404) and is restorable. Only a draft is ever truly deleted, because only a draft was never printed.
Design edits are always safe on a printed code for the same reason: the QR encodes the URL and nothing else, so recoloring or reframing the artwork in the studio produces a new image to print next time without touching what existing prints resolve to.
The design studio
One renderer draws the studio preview, the export file, the served image and MCP's get_qr · what you see is byte-identical to what ships. The
vocabulary below is read from that renderer, not typed here:
- Solid, linear and radial fills, separate finder colors, transparent backgrounds, and a center logo with an enforced error-correction budget · with a logo the ECC default rises to H, and a logo that spends more correction than the symbol has is flagged, not silently shipped.
- A circular-dots style exists in the renderer but is deliberately not offered: it fails strict decoders, and a style that scans on your phone and dies at a till is not a style, it is a defect.
- A workspace brand kit holds your default design; "apply to all" updates future exports without touching what is already printed.
The safety check
Before you print, the studio predicts symbol contrast, inversion and logo budget (ISO 15415 terms), estimates the minimum physical size from the module count, then does something no prediction can: it rasterises your exact design and tries to decode it back at descending sizes, and reports the smallest size that actually scanned. If it will not decode, it says so.
Creating in bulk
- CSV import · paste or upload, dry-run preview with per-row problems, then creation in 100-row chunks with progress. If you hit the hourly creation cap mid-file it remembers the row and resumes without double-minting.
- Batch API ·
POST /api/v1/links/batch, 100 per call, per-row errors, failed rows not charged. Reference. - Bulk actions · multi-select in the dashboard to move, archive, or export as a ZIP of SVGs or a print sheet.
- Folders · two levels (projects and subfolders), free, with per-folder analytics filtering.
The free static studio
The studio on the landing page makes static codes · URL, WiFi, vCard, SMS, phone · entirely in your browser, free, no account, and we never see the data. A static code's payload is the content itself, so it can never be re-pointed and never measured. That is the honest trade, and it is why the paid product exists: the moment a code goes on something you cannot reprint, you want the dynamic kind.