100% free · no sign-up · no watermark
GS1-128 barcode generator
With Application Identifiers, e.g. (01)(17)(10).
Options
3×
12 mm
Generated inside your browser — your data never reaches our servers.
GS1-128
GS1-128 (formerly EAN-128) uses Code 128 with an agreed data structure: Application Identifiers in brackets declare what each data block means. (01) is the GTIN, (17) the expiry date and (10) the batch or lot number.
- Multiple data fields inside a single barcode
- Required by many retailers and across the food supply chain
- Use brackets in your input: (01)…(17)…(10)…
Frequently asked questions
All barcode types
EAN-13Enter 12 digits — we calculate the check digit for you.EAN-8Enter 7 digits, the check digit is added automatically.UPC-AEnter 11 digits for a valid 12-digit UPC-A.UPC-EEnter 7 or 8 digits — the compact form of UPC-A.ITF-14For cases, trays and trade units (14 digits).GS1-128With Application Identifiers, e.g. (01)(17)(10).ISBNEnter your ISBN with dashes, for example 978-90-274-3964.ISSNFormat XXXX-XXXX, for example 0317-8471.Code 128Letters, digits and symbols in one compact symbol.Code 39The classic symbology for legacy scanners and industry.Code 93More compact than Code 39, with double error checking.QR CodeFor links, text and more — no account, no expiry.Data MatrixThe smallest 2D code — for components and medical products.PDF417Lots of text in one symbol — for documents and tickets.
Continue with
Bulk barcode generatorUpload a CSV or Excel file or paste your rows, generate every barcode in one go and download them as a ZIP. All processing happens in your browser.BulkBarcode validatorPaste a barcode number to verify its check digit, detect the format and look up the GS1 prefix region.ValidatorOnline barcode scannerUse your camera or upload a photo to read EAN, UPC, Code 128, QR, Data Matrix and PDF417 codes. Nothing is uploaded.ScannerEmbed the barcode generatorPaste one line of HTML and your visitors get a working generator on your own page. Free to use commercially, no API key and no back link required.Embed