Paste a list of URLs or text — one per line — and generate a QR code for each. Everything is drawn locally on canvas; nothing is uploaded to a server, and no account is required.
Up to 100 items per batch — this keeps rendering fast and the tab responsive.
Each QR code is generated locally using canvas-based QR encoding — the same technique any QR generator uses, just running entirely on your device instead of a server. You can confirm nothing is uploaded by checking your browser's Network tab while a batch runs.
Up to 100 items per batch. Rendering a QR code is fast per-item, but a browser tab doing hundreds of canvas draws plus building a ZIP can start to feel sluggish — 100 keeps this comfortably fast on ordinary hardware.
Higher error correction lets a QR code still scan correctly even if part of it is damaged, dirty, or partially obscured — at the cost of a denser, more complex-looking code. For QR codes printed small or displayed on a screen, M (the default) is a reasonable balance. For codes printed on physical materials that might get scuffed, stickered over, or exposed to weather, use Q or H.
No. These are static QR codes — the data is encoded directly into the pattern itself, not looked up from a server. They'll scan correctly indefinitely, for as long as the destination URL itself still works. (This is different from "dynamic" QR codes some services offer, which redirect through their own server and can be edited after printing — this tool doesn't do that.)
None, technically — a QR code just encodes whatever string you give it. Enter a URL to get a scannable link, or plain text (a WiFi password, a short note) to get a QR code that displays that text directly when scanned.
QR code density scales with how much data is encoded — a long URL with tracking parameters produces a visibly denser code than a short one. If you control the destination, a shorter URL (or a redirect/shortener) produces a cleaner, easier-to-scan code.