Free Bulk QR Code Generator - CSV to QR Codes
A free bulk QR code generator that turns a CSV, an Excel export, or a pasted list into hundreds of QR codes at once. Preview in the browser, download a ZIP of PNG or SVG files. No signup.
Downloads qr-codes.zip with one file per row and manifest.csv. Everything is rendered in your browser; nothing is uploaded.
Preview
Paste a list or upload a CSV to preview the first codes here.
Quick Answer
A bulk QR code generator creates many QR codes in one run from a list of values instead of one at a time. Paste one value per line or upload a CSV, map the content and filename columns, pick size, format, colours, and error correction, and download every code as a ZIP with a manifest. The U2L Bulk QR Code Generator processes up to 1,000 rows in your browser. Free, no signup.
Quick Facts
- Generates up to 1,000 QR codes per batch from a pasted list or a CSV file, all in the browser - nothing is uploaded.
- Reads RFC 4180 CSV: quoted fields, embedded commas, doubled quotes, and CRLF line endings, with automatic header detection.
- Exports PNG at 256, 512, or 1,024 px, or resolution-independent SVG, with your foreground and background colours and margin.
- Error correction L, M, Q, or H - recovering roughly 7%, 15%, 25%, or 30% of a damaged code (ISO/IEC 18004).
- Optional label under each code, drawn from your filename or label column, for asset tags, table numbers, and badges.
- The ZIP includes manifest.csv listing row number, content, and filename so you can match files back to your spreadsheet.
- Static codes: the content is baked into the image, so a printed code can never be changed - use dynamic codes for anything you may need to edit.
How to generate multiple QR codes at once from a CSV or list
Paste or upload, map, preview, download.
- 1
Add your data
Paste one value per line - URLs, serial numbers, WiFi strings, anything - or upload a CSV exported from Excel or Google Sheets. Empty rows are dropped and duplicates are counted.
- 2
Map the columns
For a CSV, choose which column holds the QR content and, optionally, which column supplies the filename or label. The header row is detected automatically.
- 3
Set size, format, and colours
Pick 256, 512, or 1,024 px PNG or SVG, the error-correction level, foreground and background colours, margin, and whether to print a label under each code. The first 12 codes preview live.
- 4
Generate and download the ZIP
Click Generate all. Codes are rendered in chunks with a progress bar, packed into qr-codes.zip with manifest.csv, and downloaded - all without leaving your browser.
What is a Bulk QR Code Generator?
Bulk QR Code Generator is a tool that creates many QR codes in a single run from a spreadsheet or a pasted list, instead of generating them one by one. Each row becomes its own image, named from your data, and the whole set is delivered as a ZIP so you can drop it straight into a label template, a print layout, or a product database.
One-at-a-time generators work fine for a poster. They fall apart when you need a code for each of 400 product SKUs, 250 event badges, 60 restaurant tables, or 1,200 asset tags. Copying each value into a form, downloading, and renaming the file takes about a minute per code, so a batch of 500 is a full working day. A bulk QR code generator does the same job in under a minute and, more importantly, names every file predictably so it can be matched back to the row it came from.
The input is usually a CSV exported from Excel, Google Sheets, Airtable, or an inventory system. One column holds the content to encode - a URL, an ID, a serial number, a WiFi string, a vCard - and another holds a human-readable label. The generator reads the CSV, renders a QR code for every row using the same size, colours, and error-correction settings, and writes the files into an archive. A manifest records the mapping.
This generator runs entirely in your browser: the CSV is parsed with JavaScript, each code is rendered by the qr-code-styling library onto a canvas or an SVG element, and the ZIP is assembled client-side with JSZip. That matters when the data is a customer list, an internal asset register, or unpublished product URLs - nothing leaves your machine.
How does a Bulk QR Code Generator work?
Parsing comes first. Pasted text is split on line breaks, trimmed, and stripped of empty lines. A CSV upload goes through an RFC 4180 parser: fields are separated by commas, a field wrapped in double quotes may contain commas and line breaks, a literal double quote inside a quoted field is written as two quotes, and rows end in CRLF or LF. The parser walks the text character by character so a URL containing a comma inside quotes stays intact. If the first row contains no URL-like or numeric-only cells while later rows do, it is treated as a header and used to name the column choices.
Each row's content is then checked. Blank cells are removed, exact duplicates are counted (and removed when the dedupe toggle is on), and anything longer than 2,000 characters is flagged: a QR code holds at most 2,953 bytes in byte mode at error-correction level L, and a code that long is version 40 with 177x177 modules, which is impractical to print or scan. Typical content is far smaller - a 40-character URL fits in version 3 (29x29 modules) at level M, which has 53 bytes of capacity.
Rendering uses qr-code-styling, the same library behind U2L's single-code generator. For PNG output a canvas instance is created per code at your chosen pixel size, the modules are drawn in the foreground colour on the background colour with the margin you set, and when the label option is on a second canvas adds a text band below the code in the same colours. For SVG output the library emits vector paths, so the file scales to any print size without pixelation and stays small - usually 2 to 6 KB per code.
Generation runs in chunks of ten rows with a yield to the browser between chunks, so the progress bar updates and the page stays responsive on a 1,000-row batch. Every file is added to a JSZip archive under a filename taken from your label column (sanitised to letters, digits, hyphens, and underscores) or, failing that, a zero-padded row number. A manifest.csv listing row, content, and filename goes in last, the archive is compressed, and the browser downloads qr-codes.zip.
Use Cases
How marketers, businesses, and developers use bulk qr code generator.
CSV to QR code for product labels
Export your catalogue with SKU and product-page URL columns, map the URL to content and the SKU to filename, and download a ZIP where SKU-1042.png is the code for SKU 1042. The names slot straight into a label-printer template or a print-on-demand packaging workflow.
Event badges and tickets
Generate a code per attendee that encodes a check-in URL or a unique ticket ID. Use the label option to print the attendee name under the code so staff can match badges without scanning, and keep error correction at Q or H because lanyards get scuffed.
Asset tags for IT and facilities
Encode the asset ID or a link into your inventory system for every laptop, monitor, projector, or tool. A 512 px PNG at 2.5 cm prints cleanly on a laminated sticker; the manifest.csv gives your asset register the exact filename for each ID.
Restaurant table codes
One code per table pointing at the ordering or menu URL with ?table=12 appended, labelled Table 12 below the code. Pair it with /tools/menu-qr-code-generator for the single-code design, then batch the table variants here.
Real-estate signs and brochures
Agents managing dozens of listings generate a code per property linking to the listing page or a virtual tour. Use 1,024 px PNG or SVG for yard signs that are scanned from a car window several metres away.
Batch QR codes for WiFi across rooms
Hotels and coworking spaces with a network per floor or room paste a list of WIFI:T:WPA;S:...;P:...;; strings and get a code for each. Build one string with /tools/wifi-qr-code-generator, then edit it per network in your spreadsheet.
Campaign links with UTM tags
Build tagged URLs with /tools/bulk-utm-builder - one row per channel, placement, or store - then paste the output here to get a code for each. For click analytics on every code, shorten the links in U2L first so scans are reported per campaign.
Serial numbers and warranty cards
Manufacturers encode a serial number or a warranty-registration URL with the serial as a parameter. Plain-text serials are compact (numeric mode packs 3.3 bits per digit), so even long serials produce small, easy-to-scan codes.
Developers bypassing a mass QR code generator API
When you need codes once rather than on every request, a browser batch beats writing a script against a QR image API. For programmatic generation inside your own app, see /tools/qr-code-api; for a one-off batch, this page is faster.
Bulk QR Code Generator vs Alternatives
Side-by-side feature and pricing comparison with the top alternatives.
| Feature | U2L | QR Code Monkey | bulkqrcodegenerator.com | QuickChart |
|---|---|---|---|---|
| Bulk generation is free | 50 rows free | |||
| CSV upload with column mapping | Varies | |||
| Rows per batch | 1,000 | Varies | 50 free / 1,000 paid | Varies |
| PNG and SVG output | Paid | Varies | ||
| Error-correction level choice | Varies | Varies | Varies | |
| Label printed under each code | Varies | Varies | Varies | |
| Processed in your browser | Varies | Varies | Varies | |
| manifest.csv in the ZIP | Varies | Varies | Varies |
Bulk QR Code Generator vs QR Code Monkey and paid bulk tools
QR Code Monkey's free generator is excellent for a single designed code with a logo and custom eyes, and its paid PRO tier adds bulk creation, editing, and scan tracking as part of a subscription. For a marketing team that wants dynamic codes with analytics on every batch, a paid platform is a reasonable choice.
For a static batch - asset tags, serials, table numbers - paying a monthly fee for a one-off job is hard to justify. This tool covers the batch itself for free; when you do want editable, trackable codes, U2L's dashboard generates them from short links with per-scan analytics.
Bulk QR Code Generator vs A spreadsheet formula calling a QR image API
Google Sheets users often use =IMAGE() with a QR API URL to render codes next to each row. It is quick to set up and needs no download. Excel has no equivalent without a script or add-in.
The result is a live preview, not a file: you cannot export 400 images from a sheet, the codes are rendered on someone else's server every time the sheet loads, and the API can change or rate-limit. A batch download gives you named files you own, generated locally.
Best Practices
Put a label column in your CSV
A filename like 0042.png tells you nothing on a print sheet. Add a column with the SKU, table number, or person's name and map it as the label. The tool sanitises it into a safe filename and, with the label toggle on, prints it under the code.
Size codes for the scanning distance
A reliable rule of thumb is a code at least one tenth of the distance it will be scanned from: 2.5 cm for a hand-held label, 10 cm for a poster read from a metre away, 50 cm for a sign scanned from across a room. Add the quiet zone on top.
Pick the error-correction level on purpose
L (7%) gives the smallest code and suits clean screens; M (15%) is the default for most print; Q (25%) or H (30%) survive scuffed labels and let you overlay a logo. Higher levels add modules, so keep them for codes that will be handled.
Use SVG for anything going to a printer
A PNG has a fixed pixel size and blurs when scaled up. SVG is resolution-independent and 2 to 6 KB per code. Choose PNG when the destination is a label printer or a web page that needs a raster image.
Keep the quiet zone at four modules
The margin setting adds blank modules around each code. The standard asks for four; cutting it to save space is the most common reason a printed batch scans poorly. Leave the default unless your layout already provides white space.
Keep contrast high and the dark colour dark
Scanners expect dark modules on a light background. Navy on white and black on cream work; yellow on white and light grey on white do not. If you brand the colour, test the first code with /tools/qr-code-scanner before generating the batch.
Shorten long URLs before encoding
A 120-character URL with UTM tags needs a dense version-7 code; a 22-character short link fits version 2. Shorter content means bigger modules at the same print size and faster scans. Batch-shorten in U2L, then paste the short links here.
Print a proof sheet first
Generate the batch, print the first page at final size on the final stock, and scan three codes with two different phones. Glossy paper, dark stock, and thermal label printers each change how a code reads; a proof costs a sheet, a reprint costs a day.
Common Mistakes to Avoid
Uploading an .xlsx file
Excel's native format is a zipped XML workbook, not text. Save As or Download as CSV (UTF-8) from Excel or Google Sheets first, then upload the CSV.
Leaving Excel's semicolon delimiter in place
Excel in many European locales exports CSV with semicolons. This parser expects commas, so a semicolon file arrives as one column. Change the list separator or export with comma delimiters.
Encoding editable content in static codes
A URL that will move, a menu that changes, or a promotion that ends belongs in a dynamic QR that points at a short link. Static codes printed on 500 boxes cannot be updated - only reprinted.
Picking 256 px for print
256 px is fine for a screen or a 2 cm label. At 300 DPI it is only 2.2 cm wide; scaled larger it softens. Use 1,024 px or SVG for posters and signage.
Ignoring the duplicate count
Duplicate rows produce duplicate files with suffixed names, which usually means a spreadsheet error upstream. Check the count before generating, or turn on dedupe if identical codes are intended.
Trusting the preview instead of a scan
A code can render perfectly and still fail on a phone because of low contrast or a cramped quiet zone. Download one, print it, and scan it before committing to the full batch.
Technical Specifications
| Input | Pasted list (one per line) or CSV file (RFC 4180: quotes, escaped quotes, CRLF) |
| Batch cap | 1,000 rows per run; split larger sets into several CSVs |
| Content limit | Rows over 2,000 characters are flagged; QR byte-mode maximum is 2,953 bytes (version 40-L) |
| Output | PNG at 256 / 512 / 1,024 px or SVG; foreground and background colour; margin in modules |
| Error correction | L 7%, M 15%, Q 25%, H 30% (ISO/IEC 18004) |
| Label | Optional text band below the code (PNG), from the label column or the content |
| Archive | qr-codes.zip with one file per row plus manifest.csv (row, content, filename) |
| Libraries | qr-code-styling for rendering, JSZip for the archive, both loaded on demand |
| Privacy | Parsed, rendered, and zipped in your browser. No data sent to U2L. |
Industry-Specific Use Cases
Retail and e-commerce
Product tags, shelf labels, and packaging inserts get a code per SKU linking to the product page, a how-to video, or a reorder form. Map SKU to the filename so the print vendor can place codes by name.
Events and conferences
Badges, tickets, and session posters each carry a unique code. Encode a check-in URL with the attendee ID as a parameter and print the name under the code; use level Q so scuffed badges still scan.
Facilities and logistics
Asset registers, maintenance checklists, and pallet labels rely on codes that encode an ID or a link into the tracking system. Numeric IDs produce compact codes that scan quickly from a handheld reader.
Hospitality
Table ordering, room WiFi, and in-room service menus each need a code per table or room. Generate the set from one spreadsheet with the table or room number as the label.
Frequently Asked Questions
What is a bulk QR code generator?
How do I generate multiple QR codes at once from a CSV?
Is the bulk QR code generator free?
Is my CSV uploaded to a server?
Can I make QR codes from an Excel file?
How do I name the files?
What is the maximum number of QR codes per batch?
Why does a row show as too long?
Why did my CSV come through as one column?
Why do some generated codes fail to scan?
Are the QR codes static or dynamic?
Can I add a logo to every code in the batch?
What does the error-correction setting change?
PNG or SVG - which should I choose for bulk QR codes?
How is this different from a QR code API?
Can I generate QR codes for WiFi, vCards, or plain text in bulk?
What is in manifest.csv?
How do I check the codes before printing?
Related Free Tools
WiFi QR Code Generator
Generate a WiFi QR code that lets guests connect without typing a password. Supports WPA/WPA2/WEP and hidden networks.
vCard QR Code Generator
Turn your contact details into a scannable vCard QR code. Add to business cards so people save your info with one scan.
Instagram QR Code Generator
Generate a scannable QR code that opens your Instagram profile. Perfect for flyers, business cards, and packaging.
Menu QR Code Generator
Generate a QR code that opens your restaurant menu PDF or web page. Contactless dining, zero printing reorders.
Google Review QR Code
Take customers straight to your Google review form. Print on receipts and table tents to boost local SEO and ratings.
PDF QR Code Generator
Generate a QR code that opens any PDF document. Brochures, manuals, real estate listings, and course materials.
Key Terms
- CSV
- Comma-separated values: a plain-text table where each line is a row and commas separate cells. RFC 4180 defines quoting for cells that contain commas, quotes, or line breaks.
- Static QR code
- A code whose content is encoded directly in the image. It works forever and needs no server, but cannot be edited after printing.
- Dynamic QR code
- A code that encodes a short redirect link. The destination can be changed later and each scan can be counted, at the cost of depending on the redirect service.
- Module
- One black or white square in a QR grid. Version 1 has 21x21 modules; each higher version adds four per side up to 177x177 at version 40.
- Quiet zone
- The blank margin around a QR code, four modules wide by the standard, that lets a scanner separate the code from its surroundings.
- Error correction level
- The share of a QR code reserved for Reed-Solomon recovery data: L 7%, M 15%, Q 25%, H 30%. Higher levels survive more damage but need more modules.
Need codes you can edit after printing?
Static batches are perfect for IDs and serials. For campaign links, menus, and anything that might change, U2L dynamic QR codes point at short links you can redirect any time and report every scan by date, country, and device.
Sign up free