Free tool

Free barcode generator

This free barcode generator turns any value into a scannable barcode as you type — Code 128 for arbitrary text, EAN-13 and UPC-A for retail products (check digits calculated automatically), EAN-8, Code 39, and ITF-14 for cartons. Adjust the size and margins live, download the result as a print-perfect SVG or a high-resolution PNG, or paste a whole list and download every barcode in one .zip. Everything runs in your browser — codes are never uploaded.

Barcode generator

Type a value and get a scannable barcode instantly — Code 128, EAN-13, UPC-A and more, with SVG and PNG downloads or a bulk .zip.

Free & unlimitedNo sign-up100% private — runs in your browser
1Choose a format & enter your datathe barcode renders as you type

Letters, numbers and symbols — the safe default for SKUs, assets, tickets and logistics.

Looks good — ready to download below.

2Style itapplies live — and to every barcode in bulk mode
3DownloadSVG scales forever · PNG for docs

Barcodes are generated entirely in this browser tab with the open-source JsBarcode library — your product codes and SKUs are never uploaded anywhere.

How to generate a barcode online

  1. Pick a format. Code 128 is the safe default for internal use — it encodes letters, numbers, and symbols. Choose EAN-13, EAN-8, or UPC-A for retail product codes, Code 39 for legacy industrial systems, or ITF-14 for shipping cartons.
  2. Type your value. The barcode renders live with every keystroke. If the value does not fit the format — wrong length, a stray letter in a digits-only code, a failed checksum — a plain-English hint explains exactly what to fix.
  3. Style it. Set the bar width, height, and margin (the quiet zone scanners need), and choose whether the human-readable value prints under the bars. Changes apply instantly, in bulk mode too.
  4. Download. Grab an SVG (infinitely scalable — best for labels and print) or a 3× PNG (drops into docs and design tools). In bulk mode, one click zips every generated PNG into a single download.

Barcode formats explained: which one do you need?

FormatAcceptsTypical use
Code 128Any text — letters, digits, symbolsSKUs, asset tags, tickets, shipping, internal logistics
EAN-1312 digits + auto check digitRetail products worldwide (the code under most price tags)
EAN-87 digits + auto check digitSmall packaging where an EAN-13 will not fit
UPC-A11 digits + auto check digitRetail products in the US and Canada
Code 39A–Z, 0–9, space, - . $ / + %Older industrial, automotive, defense, and ID systems
ITF-1413 digits + auto check digitOuter cartons and pallets in logistics (GTIN-14)

A rule of thumb: if the barcode is for your own system — inventory shelves, event tickets, asset labels, internal paperwork — use Code 128 and encode whatever value your system expects. If the barcode is for a retail product that stores will scan at a till, you need an EAN or UPC built from a GS1 company prefix; this tool renders those codes correctly, but the underlying numbers must be assigned to your company by GS1, not invented.

Code 128: the workhorse for everything internal

A Code 128 generator covers the vast majority of real-world barcode needs because the format encodes the full printable ASCII set — uppercase, lowercase, digits, and punctuation — at high density. That makes it the standard pick for warehouse bin labels, membership cards, work orders, sample tracking in labs, and any value like SKU-2049-BLUE that mixes letters and numbers. It also includes a built-in check character, so misreads are caught by the scanner itself.

Keep values reasonably short: every extra character makes the printed code physically wider, and very long codes need a wider label or a smaller bar width to fit. Under 30 characters scans comfortably; the tool allows up to 80 but will happily warn you before things get silly.

EAN-13 barcodes and check digits, demystified

An EAN-13 barcode generator has one job people rarely see: the thirteenth digit of every EAN-13 is not part of your product number at all — it is a check digit computed from the first twelve using the GS1 mod-10 algorithm (alternating weights of 1 and 3). Scanners recompute it on every read to catch misprints and smudges. This tool does that math for you: enter the 12 digits you were assigned and the correct check digit is appended automatically, with a note showing the final code.

If you paste a full 13-digit code instead, the checksum is verified — and when the last digit is wrong, the error message tells you what it should be, which is the fastest way to catch a typo somewhere earlier in the number. The same auto-complete-or-verify logic applies to EAN-8 (7+1 digits), UPC-A (11+1), and ITF-14 (13+1), so you can paste codes from a supplier spreadsheet in either form and always get a valid, scannable barcode.

UPC-A vs EAN-13: which retail code do you need?

UPC-A and EAN-13 are siblings from the same GS1 family — in fact, a UPC-A code is exactly an EAN-13 whose first digit is zero. If you sell primarily in the United States or Canada, retailers conventionally expect UPC-A (12 digits). Everywhere else — Europe, Asia, Latin America, Oceania — EAN-13 is the norm, and modern point-of-sale scanners read both interchangeably. Practically: use whichever format your retailer or marketplace listing asks for, and generate it here from the digits GS1 assigned to you.

Bulk barcode generator: a whole spreadsheet column at once

Need fifty shelf labels, not one? Switch to Bulk mode and paste a list — one value per line, exactly what you get when you copy a column from Excel or Google Sheets. Every line renders as its own barcode in a grid, each labeled with its value, and invalid lines are flagged individually with the same friendly per-format hints instead of silently disappearing. Your styling choices — bar width, height, margin, text — apply to the entire batch.

The Download all button packages every valid barcode as a high-resolution PNG into a single .zip, with files numbered in order and named after their values (001-SKU_1001.png, 002-SKU_1002.png, …) so they sort correctly and drop straight into a label-printing template, a product information system, or a designer's handoff folder. Up to 100 barcodes per batch, zipped entirely in your browser.

SVG or PNG: which download should you pick?

SVG is a vector format: the bars are stored as exact shapes, so the barcode stays perfectly crisp at any size — the right choice for professional label printing, packaging artwork, and anything going to a print shop or a designer working in Illustrator or Figma. PNG is a pixel image, exported here at 3× resolution so it stays sharp in the places PNGs go: Word documents, Google Docs, PDFs, slide decks, and web pages. If you are unsure, take both — they are generated from the identical barcode, so they will always match.

Printing and scanning tips that save reprints

  • Protect the quiet zone. The blank margin around the bars is not decoration — scanners need it to find the code's edges. Keep the margin setting at 10px or more, and never let other artwork crowd the barcode.
  • Black on white, always. This tool renders pure black bars on a white background because that is the maximum-contrast combination every scanner is calibrated for. Resist inverting or recoloring.
  • Do not stretch it. Resizing the image disproportionately changes bar-width ratios and can make a code unscannable. Need a bigger barcode? Increase the bar width or height here and re-download.
  • Test before the print run. Print one sample at final size and scan it with a phone camera app and, ideally, the actual scanner hardware that will read it in production.
  • Keep the text line on. The human-readable value under the bars is the fallback when a label gets scuffed — a person can still key the number in manually.

Barcode or QR code: which one do you need?

People often say "barcode" when they mean any scannable square or stripe, but the two families solve different problems. The one-dimensional barcodes this tool generates — stripes of bars — hold a short identifier (a SKU, a GTIN, a serial) and are read by the laser and imager scanners built into retail tills, warehouse guns, and logistics systems. That hardware ecosystem is the whole point: if a till, a courier, or an inventory system will scan it, a 1D barcode in the format that system expects is the only right answer.

A QR code, by contrast, is a two-dimensional matrix that holds far more data — a full URL, contact card, or Wi-Fi login — and is aimed at phone cameras rather than till scanners. Use a QR code for marketing, menus, and anything a human points a phone at; use Code 128 or an EAN/UPC for anything machines scan in an operational pipeline. Plenty of packaging carries both, doing two different jobs side by side.

Common barcode mistakes this tool catches for you

Most "my barcode will not scan" problems trace back to a handful of avoidable mistakes, and the validation here is designed to catch them before anything gets printed. Wrong length for the format? The message tells you exactly how many digits are missing. A letter in a digits-only EAN? Flagged immediately rather than silently dropped. A mistyped digit somewhere in the middle of a GTIN? The checksum fails and the error shows the check digit the number should end with — a strong hint that something upstream is off. Characters outside the Code 39 set, or non-ASCII characters pasted into a Code 128? Both get a specific message naming the offending rule instead of a generic failure.

The remaining mistakes are physical, which is what the styling controls are for: margins protect the quiet zone, the height slider keeps codes tall enough for angled scanning, and exporting at vector (SVG) or 3× (PNG) resolution prevents the blurry-reprint problem entirely.

Is this barcode generator private?

Yes. Barcodes are generated by the open-source JsBarcode library running as JavaScript inside this page — your values are turned into SVG shapes locally, and the PNG and .zip downloads are assembled on your device. Nothing you type is attached to a network request, logged, or stored by this tool. That matters more than it might seem: SKU lists, GTIN allocations, serial numbers, and asset registers are exactly the kind of operational data most companies would rather not paste into an unknown server-side generator. Here, they never leave the tab — and the tool keeps working offline once the page has loaded.

Who uses an online barcode generator?

  • E-commerce sellers generating EAN-13 or UPC-A images for marketplace listings and product packaging from their GS1-assigned numbers.
  • Warehouse and operations teams printing Code 128 labels for bins, shelves, totes, and asset tags.
  • Small manufacturers producing ITF-14 carton codes for distributors without buying label software.
  • Event organizers bulk-generating ticket or badge codes from a registration spreadsheet.
  • Developers and testers who need known-valid (and known-invalid) barcodes to exercise a scanning feature.

If the barcode ends up in a document rather than on a label, the SVG to PNG converter handles any other vector artwork the same way, and the invoice generator covers the paperwork the shipment travels with.

Frequently asked questions

Is this barcode generator really free?
Yes — free with no account, no watermark, and no limit on how many barcodes you generate. It runs entirely in your browser, so there's no server cost to meter.
Are my codes uploaded anywhere?
No. Barcodes are rendered locally by the JsBarcode library, and SVG, PNG, and .zip downloads are all generated on your device. Your SKUs and product codes never touch a server.
Does it calculate EAN and UPC check digits automatically?
Yes. Enter the first 12 digits of an EAN-13 (or 7 for EAN-8, 11 for UPC-A, 13 for ITF-14) and the check digit is computed and appended for you. Paste a full-length code and the checksum is verified instead — with the expected digit shown if it doesn't match.
Can I legally use these barcodes on retail products?
The images are yours to use freely. For products sold through retailers, the EAN/UPC numbers themselves must come from a GS1 company prefix registered to you — this tool renders any number correctly but doesn't assign numbers.
How do I generate many barcodes at once?
Switch to Bulk mode and paste one value per line — a column copied from Excel or Google Sheets works as-is. Up to 100 barcodes render in a grid, and Download all packages every valid one as a high-resolution PNG in a single .zip.
Should I download SVG or PNG?
SVG for anything printed — it's vector, so it stays sharp at any size on labels and packaging. PNG (exported at 3× resolution) for documents, slides, and web pages. Both come from the same barcode, so they match exactly.

Label the product, then shorten the link

fewly turns any URL into a short, branded, trackable link — free to start, no credit card.