Bulk barcode generator: 500 barcodes in one batch
Paste a list of values or upload a CSV, pick a symbology, and you get a ZIP of PNG barcodes back. The page supports Code 128, Code 39, EAN-13, EAN-8, UPC-A, ITF-14, MSI and Pharmacode. Everything renders in your browser, so your SKUs, ticket IDs and product codes stay on your machine.
Generate barcodes
Up to 500 per batch. Type a single value, paste a list, or upload a CSV.
Format: Data or Data | Label (one per line, max 500)
CSV format: data,label (header optional, max 500 rows)
Preview
Click "Preview" to see your barcodes here
Generation Statistics
Supported Formats
- • Code 128: Most versatile, alphanumeric
- • Code 39: Classic format, alphanumeric
- • EAN-13: European standard, 13 digits
- • EAN-8: Short EAN format, 8 digits
- • UPC-A: US standard, 12 digits
- • ITF-14: Shipping containers, 14 digits
- • MSI: Inventory tracking, numeric only
- • Pharmacode: Pharmaceutical, numeric
Tips from running real batches
- • If you do not know which format to pick, choose Code 128. It accepts letters and numbers and scans on almost everything.
- • EAN-13 needs exactly 12 digits in your file. The tool calculates the 13th check digit for you.
- • Set bar height to at least 100 px before printing on a thermal label printer. Lower values can drop reads on Zebra and Dymo units.
- • Keep the human-readable text on for warehouse and retail use. Operators read it when a scanner fails.
- • Print a single test barcode and scan it with your actual scanner before you commit to 500.
- • Keep a copy of your CSV. The tool does not store anything, so the only record of which code maps to which item is on your machine.
How to use the bulk barcode generator
A 500-barcode batch usually takes under two minutes from open to ZIP. Six steps:
-
1. Choose an input mode
Single barcode for a quick test, Bulk Generation to paste a list, or CSV Import to upload a spreadsheet from Excel, Google Sheets or an ERP export.
-
2. Pick a barcode format
Code 128 covers most alphanumeric SKUs. EAN-13 or UPC-A for retail products at checkout. ITF-14 for outer cartons. Code 39, MSI or Pharmacode for legacy systems that ask for them by name.
-
3. Enter your data
Paste one value per line, up to 500. To set a custom label, use
data | label. CSV users upload adata,labelfile. There is a template button next to the upload field. -
4. Set the size
Bar width runs from Narrow to Extra Wide. Height accepts 50 to 200 pixels. Turn on "Show text below barcode" if operators will read the digits when a scan fails.
-
5. Preview and check the rejects
Click Preview. Rows that fail the digit count or allowed characters for the chosen symbology are flagged in red. Fix or remove them before you generate.
-
6. Generate and download
Click Generate & Download. The valid rows are rendered as PNG files and packaged into
barcodes_{format}_{date}.zip.
Who actually uses a bulk barcode generator
Most of the email we get about this tool falls into six buckets. If you are labelling more than a handful of items, you are probably in one of them.
Retail and ecommerce
EAN-13 or UPC-A for products that go through a point-of-sale scanner. Amazon FBA sellers usually want Code 128 for FNSKU labels.
Warehouse and inventory
Code 128 or MSI for bin locations, pallets and asset tags. ITF-14 lives on the outer carton.
Event tickets
A few thousand unique ticket barcodes for check-in scanners. No API key, no per-event fee.
Healthcare and pharmacy
Pharmacode for packaging-line verification. Code 128 for wristbands and specimen labels.
Libraries and schools
Code 39 for books, equipment checkout and student ID cards. Older library systems still default to it.
Manufacturing and shipping
ITF-14 case codes for cartons, Code 128 serial numbers for production-line items and outbound shipments.
Barcode formats this tool supports
Eight symbologies, available in single, bulk and CSV modes. Pick based on where the barcode will be scanned, not which one looks nicest.
| Format | Data type | Length | Best for |
|---|---|---|---|
| Code 128 | Alphanumeric + symbols | 1–80 chars | SKUs, shipping, Amazon FNSKU, most versatile |
| Code 39 | A–Z, 0–9, few symbols | Up to 43 chars | Legacy industrial, libraries, government |
| EAN-13 | Numeric only | 13 digits | European retail products at point-of-sale |
| EAN-8 | Numeric only | 8 digits | Small retail packages where EAN-13 won't fit |
| UPC-A | Numeric only | 12 digits | US and Canada retail (Walmart, Target, etc.) |
| ITF-14 | Numeric only | 14 digits | Shipping containers, master cartons, pallets |
| MSI | Numeric only | Variable | Warehouse shelving and inventory tags |
| Pharmacode | Numeric (3–131070) | Variable | Pharmaceutical packaging line verification |
Why we built this the way we did
A lot of bulk barcode generators on the web run on a server: you upload your data, they render PNGs on their end, and you trust them with whatever is in your file. We did not want to build that. Internal SKUs, ticket IDs and product codes are sometimes confidential, and once a list of them sits on someone else's logs, you do not get it back.
So this tool runs entirely in the browser. The rendering library is JsBarcode 3.11.5, the same open-source library used by a number of paid barcode apps. The ZIP is built with JSZip client-side. There is no upload step, no API key and no account. If you load the page once and lose internet, the generation still works.
On a current laptop, a 500-row batch takes about 4 to 8 seconds end to end, including ZIP packaging. We capped the page at 500 because beyond that, browsers start to lock up on lower-end machines and the user experience drops. If you need 5,000, run ten batches.
How we tested the output
Before we shipped this page, and again before each release, we run the same scan checks against real hardware. The barcodes you generate here are tested against:
- A Zebra DS2208 handheld scanner over USB, the model used in many warehouses and retail counters
- A Honeywell Voyager 1250g linear scanner
- iPhone 14 and Pixel 7 cameras using the default camera app and the Google Lens app
- Direct thermal print from a Zebra ZD220 at 203 dpi for label-printer realism
Default settings (Medium width, 100 px height) scanned on the first try at every distance from 4 inches to 18 inches in our last round of checks. Pharmacode and MSI are the two formats we re-verify most often, because they are the ones people use rarely and tend to mistype.
For retail use of EAN-13 and UPC-A, this tool produces a valid, scannable barcode, but it does not assign GS1 numbers. If you sell at a major retailer, you still need to register your product prefix with GS1. The barcode is the visual encoding; GS1 owns the numbers behind it.
Standards and references
Each symbology in this tool follows a published specification. If you want to verify what the rendered barcode is doing, the underlying standards are public:
- Code 128: ISO/IEC 15417
- Code 39: ISO/IEC 16388
- EAN-13, EAN-8, UPC-A: ISO/IEC 15420 and GS1 EAN/UPC
- ITF-14: GS1 ITF-14 (ISO/IEC 16390)
- Rendering library: JsBarcode 3.11.5 source
Bulk barcode generator: questions we get
What is a bulk barcode generator?
A bulk barcode generator turns a list of values into a matching set of barcode images in a single run. You paste a list, or upload a CSV, pick a symbology like Code 128 or EAN-13, and you get back a ZIP of PNG files instead of clicking through one barcode at a time.
How do I generate barcodes in bulk for free?
Switch the input mode to Bulk Generation or CSV Import, drop in up to 500 values, pick the format, click Preview, and click Generate & Download. There is no signup. The page itself is the whole tool.
How many barcodes can I generate at once?
Up to 500 per batch. The cap is there because the rendering happens in your browser, and beyond 500 the page starts to feel slow on lower-end machines. For larger jobs, run the page two or three times.
Can I generate barcodes from a CSV or Excel file?
Switch to CSV Import and upload a file with a data column and an optional label column. Excel users can save as CSV from the File menu. There is a template button next to the upload field if you want the exact column layout.
Which barcode format should I choose?
Code 128 is the safe default for SKUs, shipping labels and anything with letters in it. EAN-13 or UPC-A for retail products that go through a checkout. ITF-14 for outer cartons. Code 39 if a legacy system specifically asks for it. Pharmacode for pharmaceutical packaging lines.
Are the barcodes scannable and safe to use commercially?
The output is a standards-compliant PNG produced by JsBarcode 3.11.5 and tested against the scanners listed in the methodology block above. For retail EAN-13 or UPC-A, the barcode itself is fine, but you still need a GS1-issued prefix to sell at large retailers. This tool draws the barcode; GS1 owns the numbers.
Is my data uploaded anywhere?
No. CSV parsing, barcode rendering and ZIP assembly all happen in your browser. There is no upload, no logging and no analytics tied to the values you paste in.
Can I print these barcodes on label sheets?
Unzip the file and drop the PNGs into Avery, Word, Google Docs or a label-design app. For thermal label printers like Zebra, Dymo and Brother, use Medium or Wide bar width and at least 100 px height. Anything thinner tends to drop reads at low DPI.
Does the tool work offline?
After the page has loaded once, generation works offline because it runs client-side. The first load needs an internet connection so the browser can fetch the rendering library.
Found a bug or missing a format?
If a symbology you rely on is not in the list, a row failed validation that should have passed, or you would use this differently than how it works today, write to us. We read every message. Suggestions for SVG and PDF output, QR and Data Matrix, and a scriptable API have all come up before.
support@issuebadge.com