How to Generate Bulk QR Codes from a List or CSV
Need 50, 200, or 1,000 QR codes? Doing them one by one is a waste of a day. Here's how to generate them all in one click — free, with labels, ready to print.
⚡ Try it now
Skip the reading — open the Bulk QR Code Generator, paste your list, and download your codes in under a minute.
Why generate QR codes in bulk?
Single QR generators are fine for one link. But real-world projects need batches: a warehouse labeling 300 shelves, an event organizer printing 150 attendee badges, a restaurant putting a QR menu on 40 tables, or a manufacturer tagging every product with a unique serial link. Creating these one at a time — downloading, renaming, organizing — turns a 5-minute job into an afternoon.
A bulk QR generator flips the workflow: you prepare one simple list, and every line becomes a finished, labeled, downloadable QR code in seconds.
Step 1: Prepare your list
You have two options, and both take seconds:
Option A — Paste a list (fastest)
Put one item per line in any text editor or spreadsheet, then copy-paste. Each line can be:
- Just a URL:
https://example.com/product-42 - Label + URL:
Aisle 5 | https://example.com/aisle-5— the label prints under the code - Any text: serial numbers, Wi-Fi passwords, plain instructions
Option B — Upload a CSV
Export two columns from Excel or Google Sheets: column 1 = label, column 2 = QR content. Upload the file and you're done. This is the best route for inventory systems that already export SKU lists.
💡 Pro tip: naming
Use short, scannable labels ("TBL-12", "SKU-88412-A"). They become the PNG filenames too, so your downloads stay organized automatically.
Step 2: Generate and review
Paste or upload, choose your size (512px is the sweet spot for printing; 1024px for large signage), and hit Generate. You'll see a live grid preview — every code with its label. Scan one with your phone to verify before downloading the batch.
Error correction matters if codes will be printed small or on rough surfaces: Medium (15%) is the default and right for most uses. Choose High (30%) for tiny labels or outdoor use.
Step 3: Download or print
- Download All (ZIP): one PNG per code, named after its label (e.g.
upnixtools-qr-aisle-5.png). No watermark, ever. - Print Sheet: opens a clean print layout — a grid of codes with labels, ready to cut into stickers or badges.
- Individual PNG: download any single code from its card.
Common use cases
- Inventory & warehousing: shelf labels, bin locations, asset tags with serial links
- Events: attendee badges, table numbers, session feedback links
- Retail & packaging: product QR codes linking to manuals, warranties, or reorder pages
- Education: classroom station codes, library book links, assignment handouts
- Real estate: one code per listing linking to the virtual tour
Bulk QR best practices
- Keep URLs short. Shorter content = simpler code = scans faster and prints smaller. Use your own short links if possible.
- Test at print size. Print one page first and scan it in real lighting before running 500 copies.
- Leave quiet zone. Don't crowd the code's white border — scanners need that margin.
- Dark on light. High contrast (black on white) scans most reliably; avoid inverted colors for critical labels.
CSV formatting: the details
If you're coming from a spreadsheet, keep these rules in mind and your import will work first try:
- Two columns: label first, QR content second. A header row is fine — just delete it or leave it; one extra code is easy to spot and skip.
- Quotes: if a label contains a comma (e.g.
"Smith, John"), wrap it in quotes so the comma isn't treated as a column break. - Encoding: save as UTF-8 so accented characters and symbols survive the trip.
- Empty rows: blank lines are skipped automatically — no need to clean them up.
Google Sheets users: File → Download → Comma-separated values gives you a ready-to-upload file in two clicks.
Troubleshooting
- A code won't scan: the content is probably too long. Shorten the URL and regenerate — or bump error correction to High.
- Labels look wrong: check for stray
|or,characters inside your labels; quote them in CSV. - Browser slows down: lists over ~1,000 codes are heavy for one page. Split into batches of a few hundred.
- Printed codes blurry: regenerate at 1024px and make sure your printer isn't set to "draft" or "economy" mode.