← All tools

Barcode Generator

Free online barcode generator supporting EAN-13, UPC-A, Code 128, Code 39, ITF-14, DataMatrix, GS1-128 and more. Batch generate as a ZIP, print-ready A4/Avery sheet layout, high-res PNG/SVG/PDF export, no watermark, no signup — everything runs locally in your browser.

API Docs
Advanced Settings
Dimensions
Check Digit
Visual
Generating...

Format Guide

  • EAN-13 — retail product, 13 digits incl. check digit
  • UPC-A — North American retail, 12 digits
  • CODE128 — logistics/warehouse, alphanumeric
  • ITF-14 — case/carton label, 14 digits
  • DataMatrix — 2D matrix code, high-density encoding
  • GS1-128 — with AI identifiers, medical/food traceability

How to Use

  1. Choose the Single / Batch / Sheet Layout tab
  2. Enter barcode content and select a format
  3. Expand Advanced Settings to configure size, color, and check digit
  4. Download PNG / SVG / PDF, or print directly
  5. In Batch mode, generate by serial number or upload a CSV and download a ZIP

Data Privacy

All barcode generation happens locally in your browser — your data is never uploaded to any server. Settings are saved automatically to localStorage and restored on refresh, and you can share your current configuration via a link.

API Documentation (REST Interface Spec)

Below is the interface spec for the barcode generation API — a server can implement this protocol. All parameters map 1:1 to the form on this page.

cURL Example

curl -X POST https://api.paritylabel.com/v1/barcode \
  -H "Content-Type: application/json" \
  -d '{
    "text": "1234567890128",
    "format": "ean13",
    "width_mm": 50,
    "height_mm": 20,
    "dpi": 300,
    "fg": "#000000",
    "bg": "#ffffff",
    "output": "png"
  }' \
  --output barcode.png

JavaScript Fetch Example

const res = await fetch(
  'https://api.paritylabel.com/v1/barcode',
  {
    method: 'POST',
    headers: {'Content-Type':'application/json'},
    body: JSON.stringify({
      text: '1234567890128',
      format: 'ean13',
      width_mm: 50, height_mm: 20,
      dpi: 300, output: 'svg'
    })
  }
);
const svg = await res.text();
Response format: PNG returns image/png, SVG returns image/svg+xml, PDF returns application/pdf. The batch endpoint accepts a texts[] array and returns a ZIP archive.

Frequently Asked Questions

Which barcode formats are supported?
Common 1D formats are supported, including EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, ITF-14, and Codabar. For 2D codes (such as QR or DataMatrix), use the dedicated 2D options in the format dropdown.
What is the difference between EAN-13 and UPC-A?
UPC-A is 12 digits and used mainly in North America; EAN-13 is 13 digits and used worldwide. UPC-A can be treated as an EAN-13 with a leading zero, and modern scanners are typically compatible with both.
What is the minimum size or magnification for a barcode?
The standard EAN/UPC magnification range is 80% to 200% (nominal 100% is about 37.29×25.93 mm), and should generally not go below 80%. You must also keep quiet zones on both sides (at least 11 modules on the left and 7 on the right for EAN-13).
Can the generated barcodes be used commercially?
The barcode graphic itself can be used freely for commercial purposes. However, EAN/UPC product numbers (GTINs) used in retail distribution must be obtained from GS1 — self-assigned numbers cannot be used through official retail channels.
Why won't my barcode scan?
Common causes include missing quiet zones on either side, magnification that is too small, insufficient print resolution or low contrast (it should be black bars on a white background), an incorrect check digit, or using color/inverted colors that break recognition.

Need custom label manufacturing? Get a factory-direct quote.

This tool gets your parameters right — production goes straight to the factory. Pressure-sensitive labels, roll labels, GHS chemical labels, variable data printing. 10 years of printing experience, fast proofing, flexible minimums, worldwide shipping.

Get a Quote

Related Tools