Skip to content

Bulk QR code generator

Upload a CSV and get every QR code back in one ZIP — up to 500 at a time, with your colors and logo on every one. Your list is read in the browser and never uploaded.

  • No account
  • No expiry
  • No watermark
  • Nothing uploaded

This decides which columns your CSV needs.

Your CSV needs these columns

url, filename

Only the required ones need values. Add an optional filename column to name each file; otherwise they are numbered. Column names are matched loosely, so “Network Name” and ssid both work.

Drop your CSV here, or

How it works

  1. Choose what you are encoding. That determines which columns your file needs — a batch of links needs one column, a batch of Wi-Fi QR codes needs the network name and password.
  2. Download the template to see the exact header row, then fill it in from a spreadsheet and export as CSV.
  3. Upload it. You get a count of how many QR codes are ready and a list of any rows that couldn’t be built, with the reason for each.
  4. Set the colors, shapes and logo if you want them. Whatever you choose applies to every QR code in the batch.
  5. Download the ZIP.

Header names are matched loosely — case, spaces, hyphens and underscores are ignored, so Network Name, network_name and ssid all resolve to the same field. Add a filename column to control what each file is called; without it they are numbered in order.

Apply one design to the whole batch

Set colors, dot and corner shapes, error correction, border, size and a logo once. The same settings are applied to every QR code in the batch — all 500 of them.

The preview checks the densest QR code in the batch, because longer content leaves less margin for aggressive styling than a short one. If that code cannot be decoded with the selected settings, the ZIP button stays disabled until the design is adjusted.

Where a batch beats doing it one at a time

  • Event badges. A contact card per attendee, generated from the registration export.
  • Hotel and rental rooms. A Wi-Fi QR code per room, or one per property.
  • Asset and inventory tags. A QR code per serial number, named after the asset so it drops straight into a label template.
  • Table and seat markers. A distinct link per table for ordering or feedback.
  • Print runs with variable data. Named files feed directly into most variable-data printing workflows.

Your list stays on your computer

This is the part worth being explicit about, because a bulk upload is usually the most sensitive thing anyone puts into a QR tool. A customer list, a staff directory, a set of room passwords — that is exactly the data you should hesitate to paste into a free website.

Your CSV is read by your browser using the File API, parsed on your device, and turned into images on your device. No request is made and nothing is transmitted. You can verify that: open your browser’s developer tools, switch to the Network tab, and run a batch. You will see no upload, because there is nowhere for it to go — this site has no server that accepts data.

Practical notes

  • 500 rows per batch. The work happens on your machine, and this keeps the tab responsive. Larger jobs split cleanly into several files.
  • Choose SVG for print. Vector files stay sharp at any size and are far smaller in a ZIP. PNG suits screens and systems that need a raster.
  • Duplicate filenames are made unique. Two rows named the same would otherwise silently overwrite each other inside the ZIP, so the second gets its row number appended.
  • Bad rows are skipped, not fatal. One malformed address doesn’t stop the batch — you get everything that worked, plus a list of what didn’t and why.
  • Spot-check the output. Scan a few from the ZIP before committing to a print run, and check the printed size for the labels they are going on.