You can create up to 20 QR codes at once for free by pasting one text or URL per line into a browser-based Bulk QR Code Generator, choosing a PNG size and an error-correction level, and then downloading each symbol individually without ever uploading your data. The whole operation runs in the current browser tab using the same JavaScript QR encoder the project already ships with for single-code generation, so there is no server job, no account, and no archive to unzip at the end. Each line is trimmed, blanks are removed, and exact duplicates collapse to the first occurrence, which keeps the batch honest when you copy a list of marketing URLs from a spreadsheet. The generator then renders up to 20 distinct PNGs, each with its own deterministic filename and an individual download link, and it deliberately avoids triggering 20 automatic downloads so you can decide which symbols to keep. Because everything happens locally, your URLs, contact cards, Wi-Fi strings, or short notes never leave the page.

how to create multiple qr codes at once for free
how to create multiple qr codes at once for free

What a Browser-Based Bulk QR Generator Does

When the question becomes how to create multiple QR codes at once for free, the answer is a small batch tool rather than twenty separate runs of a single-code page. The Bulk QR Code Generator accepts plain line-separated text, so a list copied from a spreadsheet, a CSV column, or a markdown file drops in without reformatting. The output is a stack of preview tiles, each containing its own QR image, an indexed filename, and a per-tile download link. The page never combines those files into a ZIP because adding an archive dependency would expand the project's surface area, and the design intentionally keeps the batch tool aligned with the single QR Code Generator so two QR implementations cannot drift apart.

A practical batch typically comes from three sources: a marketing team that needs a separate code for each landing page, an event organizer who wants individual codes per session or per table, or a small business printing labels for inventory shelves. In each case, the goal is the same — keep the generation step under your control, finish in a single sitting, and walk away with verified PNG files. If your batch needs to land inside a design file rather than a folder of PNGs, the project also publishes a separate walkthrough for creating bulk QR codes in Canva that solves the same problem through a different path.

The Input Rules the Tool Enforces

Before you start pasting, it helps to know exactly what the parser accepts and what it silently drops. The bulk tool is deliberately bounded so it stays responsive on phones and ordinary laptops.

The input parser trims surrounding whitespace from every line, removes empty lines entirely, and deduplicates exact repeated values while preserving the first occurrence. The batch limit is 20 unique lines, and each line is capped at 2,000 JavaScript characters. Together, that gives a maximum total input budget of 20 × 2,000 = 40,000 characters across the textarea, although most realistic batches sit far below that ceiling. If a single row exceeds 2,000 characters, the batch shows an error instead of presenting a partial set as complete.

These limits are not arbitrary: they bound CPU, memory, and layout work in the browser, and they prevent accidental multi-download volume on the client side. Changing any input or option invalidates the previous batch, and an asynchronous job identifier prevents an older generation result from overwriting newer settings.

Creating Multiple QR Codes in One Pass

Open the Bulk QR Code Generator, paste one text or URL per line, choose a PNG size and error-correction level, generate the batch, and download each verified PNG individually.

  1. Paste one text or URL per line, with no more than 20 unique lines. Put each value on its own line in the textarea. URLs, plain text, Wi-Fi strings, contact cards, and short notes all work as long as the line is under 2,000 characters.
  2. Choose PNG size and error-correction level, then select Generate QR codes. Pick 128, 256, or 512 pixels for the canvas and choose L, M, Q, or H for error correction. Level M is the practical default for ordinary clean display conditions.
  3. Scan each preview with the target device, download the verified PNGs individually, and preserve their quiet zones. Point the phone or scanner you actually plan to use at each preview, confirm the decoded payload character for character, and only then click the download link beneath the tile. Keep a clear quiet zone around the image and avoid stretching, recoloring, cropping, or covering finder patterns after download.

Choosing Pixel Size and Error Correction Level

Pixel size and error correction are independent choices, but they interact through QR capacity — the number of data codewords the symbol can carry. Understanding that interaction prevents the common mistake of raising one slider when the other is the actual bottleneck.

A higher error-correction level is not automatically better. It improves the symbol's ability to restore damaged or obscured modules, but it reduces the available data capacity and can force a denser symbol with smaller modules. DENSO WAVE, the original QR Code inventor, describes approximate restoration rates of 7% for L, 15% for M, 25% for Q, and 30% for H (per the DENSO WAVE QR Code error correction reference). For most clean display conditions, level M offers a balanced trade-off. Reserve H for symbols that will be printed on curved surfaces, scratched inventory labels, or merchandise that will be handled repeatedly.

LevelApproximate restoration ratePractical use
L~7%Clean digital displays, short URLs, capacity-sensitive payloads
M~15%General-purpose web and print, default choice
Q~25%Outdoor signage, lightly handled print, packaging inserts
H~30%Curved or scratched surfaces, long-life labels, industrial scans

Pixel dimensions change the rendered PNG size, not the data capacity of the QR symbol. A 128-pixel canvas produces a small image suitable for icons or inline buttons, a 256-pixel canvas is comfortable for general web and print use, and a 512-pixel canvas keeps the symbol sharp when it is displayed or printed larger. Increasing pixels does not let you encode more text; it simply renders the same symbol at a larger size with finer module edges.

Scanning, Verifying, and Saving Each PNG

A generated image is not proof that every scanner will read the intended content. Long UTF-8 text, emojis, print size, contrast, camera focus, display glare, physical damage, and reader behavior all affect success, and the underlying library notes that full ECI support is not implemented. Treat every preview as a draft until a real device has decoded it.

Scan each preview with the phone, tablet, or dedicated scanner you actually plan to use, and check the decoded payload character for character. If you encoded a URL, confirm the path, query parameters, and fragment all match what you typed. If you encoded a Wi-Fi string or contact card, open the decoded result in the relevant app and confirm it parses correctly. Only after that verification should you download the PNG. Do not use an unchecked QR code for payments, authentication secrets, safety instructions, or irreversible actions.

Generated filenames start with a two-digit batch position and a short ASCII stem derived from the content. A URL such as https://example.com becomes 01-example-com.png. If a line contains no ASCII letters or numbers, the fallback stem is qr-code. Filenames are convenience labels only and never alter the encoded payload, so renaming a file does not change what it links to. When you save the PNGs, preserve their quiet zones — the blank margin around the symbol — and avoid stretching, recoloring, cropping, or covering the three finder patterns in the corners.

What Happens When a Line Won't Fit

QR symbols encode data into fixed-size grids, and each combination of version and error-correction level has a maximum payload capacity. If a line exceeds what the chosen size and level can hold, the batch shows an error rather than presenting a partial set as complete. That behavior matters because a partial batch would otherwise look finished and risk being used as if it were complete.

When you hit that error, the simplest response is to shorten the line: abbreviate the URL with a short-link service, drop optional query parameters, or split a long message across two codes. Raising pixel size does not help — pixel size controls the rendered PNG dimensions, not the symbol's data capacity. To gain capacity, lower the error-correction level, since higher levels reduce available data capacity. For most lists of marketing URLs, though, capacity is rarely the binding constraint.

Privacy and Browser-Side Processing

Because QR encoding and PNG rendering happen entirely in the current browser tab, none of your inputs or generated images are uploaded, shortened, tracked, or recorded. The page does not call a server job, does not require an account, and does not leave a copy of your payloads anywhere outside the open tab. This is the same privacy posture as the single QR Code Generator on the project, and the batch tool deliberately reuses the same qrcode 1.5.4 library to keep the two implementations aligned.

The page also avoids triggering 20 automatic downloads in a row. Browser policies may require a click per file or prompt for download permission, and forcing twenty downloads at once would be both surprising and hard to cancel. Instead, every preview tile carries its own explicit download link, so you decide which symbols to keep and which to discard. Closing the tab clears all generated data URLs from memory, and reloading the page starts the batch from an empty textarea.

Related reading: Get Multiple URL Parameters in JavaScript (and Build Them).