IT
OmnvertImage • Document • Network

Bulk QR Code Generator

Paste a list or upload a CSV. Generate hundreds of QR codes at once and download them as a single ZIP — entirely in your browser.
Image tools →
Input
One value per line, or "filename,text" / "filename<TAB>text" for custom names. Up to 500 rows.
Preview (first row)
qr-001
https://omnvert.com
4 row(s) detected
100% client-side: rows never leave your browser.
About this tool

There is a particular workflow that no online QR generator handles well: making a hundred QR codes at once. Marketing teams running a campaign with one QR per landing page, hotels printing one QR per room, schools issuing one QR per student locker, conferences printing one QR per attendee badge, retailers labelling one QR per product variant — all of these need bulk output, and the only options have historically been a paid SaaS subscription or a small custom script. This tool fills that gap with a one-page bulk generator that runs entirely in your browser, accepts a list or a CSV, and packages the output as a single ZIP.

The input is intentionally forgiving. Paste one value per line and each becomes a QR with an auto-numbered filename (qr-001, qr-002, etc.). For custom filenames, use `name,text` per line — comma or tab separator, optional quotes — and each row becomes a QR named after the first column with the second column as the encoded value. The two formats can mix: rows with a comma get custom names, rows without it get auto-numbered names. The upload accepts .csv, .tsv and .txt files; for everything else, paste directly into the textarea. The maximum is 500 rows per batch — generous enough for most marketing or signage use cases, low enough to keep memory and time bounded.

Output is a ZIP containing all QRs and an `index.csv` mapping each filename to its source text. PNG is the right choice when the recipients will print directly (most cases). SVG is the right choice for vector-quality prints at large sizes (conference banners, billboard art). 'Both' produces both formats — useful when you do not know in advance which medium the QRs will end up on. The index.csv is the audit trail: it lets you (or whoever owns the print run) verify at any point that filename A really encodes URL B, which catches the kind of CSV-row-shift bug that is hard to spot once the QRs are already on a printer.

Generation runs serially in your browser because the QR encoder is fast and parallelism would add complexity without benefit at this scale. A 500-row batch at 512px PNG completes in under a minute on a modern laptop and produces a ~5–10 MB ZIP depending on QR density. The progress counter ('123 / 500') updates in real time so you can see the run advancing. Larger QR sizes scale linearly: 1024px PNGs take roughly 4× longer to encode than 512px and produce ~3× larger ZIPs. SVG output is essentially free regardless of size because SVG is a text format.

Privacy is the headline benefit relative to paid bulk QR services. The CSV / list never leaves your browser. There is no upload to a backend, no API call, no telemetry on the contents of your batch. The Network tab will show zero outbound requests during generation. For agencies handling client URLs, marketing teams running unannounced campaigns under embargo, or anyone with a list that includes promotional codes or referral identifiers, this matters: most online bulk QR generators upload the entire CSV to their server, which is the wrong shape for material under NDA or commercial confidence.

There are a few practical patterns worth committing to muscle memory. First, give every row a meaningful filename — `landing-spring-promo-en` is much easier to track than `qr-074` six weeks later when you are auditing the print run. Second, decide PNG vs SVG up front: print houses generally accept either, but a single format keeps the ZIP smaller and easier to QA. Third, run a sample of the QRs through the QR Code Reader & Scanner before going to mass print — pick five random rows, scan each, and verify the decoded URL matches what you intended. Fourth, keep the source CSV in version control or a shared drive so the print run can be reproduced months later if needed.

Common workflows: a marketing manager generates one QR per landing-page variant for an A/B test (50 rows), a hotel manager generates one QR per room with a unique check-in URL (250 rows), a conference organiser generates one QR per attendee badge (300 rows), a retailer generates one QR per product SKU pointing at the product detail page (500 rows). In every case the win is the same: a single CSV, a single click, a single ZIP, instead of fifty browser tabs and fifty manual downloads. The time savings compound: a workflow that used to take a half-day collapses to under five minutes, and the audit trail (index.csv) means the next person to run a similar batch starts from a working template.

This tool pairs naturally with the rest of Omnvert's QR utilities. The QR Code Generator handles the single-QR case when you only need one. The QR Code Reader & Scanner is the inverse — drop a sample of your generated QRs to verify the decoded value before going to print. The WiFi QR Generator and vCard QR Generator handle the structured-payload cases (one network, one contact). All run in the browser with the same privacy guarantees, so the entire bulk-QR workflow happens in a single tab without any byte going to a server.

Use cases
  • Generate one QR per A/B-test landing-page variant for a marketing campaign.
  • Print one unique QR per hotel room or rental unit with a custom check-in URL.
  • Issue one QR per conference attendee badge linking to their profile.
  • Label one QR per product SKU pointing at the product detail page.
  • Print one QR per classroom with a homework or feedback URL.
  • Make one QR per parking spot with a payment URL.
  • Generate per-store QRs for a retail chain with an in-store survey link.
How it works
  1. 1Paste your list (one value per line) or upload a CSV / TSV / TXT file.
  2. 2Optionally use 'name,text' on each line to set custom filenames.
  3. 3Pick size, error-correction level, and output format (PNG / SVG / both).
  4. 4Click Generate ZIP — the run is serial with a live progress counter.
  5. 5Save the ZIP. It contains all QRs and an index.csv audit trail.
FAQ
Is my list uploaded anywhere?
No. Generation runs entirely in your browser using a built-in QR encoder. Zero outbound requests during generation. You can verify in DevTools and the page works offline after the first load.
What's the maximum batch size?
500 rows per batch. The limit keeps memory and runtime bounded; for larger batches, split into multiple ZIPs (1–500, 501–1000, etc.).
What does index.csv contain?
A two-column file: filename, text. It maps every generated QR back to its source value, which is the audit trail you want when going to print.
Why are some filenames auto-numbered?
Rows without a comma / tab separator are encoded directly with auto-generated names (qr-001, qr-002, …). To set custom filenames, use the 'name,text' format on each line.
Which format should I pick?
PNG for direct printing (the universal choice). SVG for vector-quality large prints (banners, billboards, laser engravings). 'Both' when you are not sure of the destination medium.
Why does generation take time?
Each QR encodes serially. A 500-row batch at 512px PNG completes in under a minute on a modern laptop. Larger sizes (1024px+) take proportionally longer because the canvas-to-PNG step scales with pixel count.
What happens if a row fails?
Failed rows are written into a `_errors/` folder inside the ZIP with the failure message and the original input text. The rest of the batch continues, so a single bad row does not lose a 500-row run.