Barcode Scanner
Choose a photo, paste a screenshot or start your camera, and this scanner reads Code 128, EAN-13, UPC-A, Data Matrix and QR codes, plus EAN-8, UPC-E, Code 39, ITF, Codabar, DataBar, PDF417 and Aztec. It shows each payload exactly as encoded with its format, outlines the code's four corners on the picture, and for retail codes works out the check digit from the GS1 rule. A link inside a code is shown as text and never opened, the picture is decoded in your browser and never uploaded, and your scans are listed only while the page is open.
Drop an image here, paste a screenshot, or use the buttons below. The camera stays off until you press Start camera.
corners none yet source none yet camera off until you press Start camera
Nothing read yet. The payload appears here as text, and a link inside a code is never opened.
No scans yet. They are kept only while this page is open.
Choose an image, drop or paste one here, or start the camera. Nothing is uploaded.
Try it without a barcode
Each example is drawn in this page and read by the same reader as your photos, so you can see a result before you point the camera at anything.
- Code 128, ABC123, byte for byte
- all 13 digits, leading 4 and check digit 1 kept
- Data Matrix, ABC123, a 12 x 12 symbol
- the address as text, never opened
- no result stated, nothing guessed
Test a handheld scanner
A USB or Bluetooth scanner in keyboard mode types what it reads. Select the box, scan a code, and the Enter or Tab the scanner sends at the end shows what arrived. Press Show if your scanner sends neither. What it types stays on this page.
Nothing scanned into the box yet.
Formats it reads
| Format | Usually found on | What this page shows |
|---|---|---|
| EAN-13, UPC-A | Retail products and books | Every printed digit, with the check digit worked out from the GS1 rule. |
| EAN-8, UPC-E | Small packs | The printed digits, and a UPC-E expanded to its UPC-A form. |
| Code 128 | Shipping labels and asset tags | The text byte for byte, and GS1 data with its bracketed identifiers. |
| Code 39, ITF, Codabar, DataBar | Older labels, cartons and fresh food | The text or digits as encoded. |
| Data Matrix | Small parts and medicine packs | The text, the symbol size, and GS1 data with its bracketed identifiers. |
| QR Code | Links, Wi-Fi details and contact cards | The text and what it looks like. A link is shown, never opened. |
| PDF417, Aztec | Boarding passes and tickets | The text as encoded. |
Codes are decoded in this tab by ZXing-C++ (Apache License 2.0), compiled to WebAssembly by zxing-wasm 3.1.4 (MIT). The reader file is served from this site at that pinned version, and its SHA-256 is checked against the pinned value before each release. License texts: zxing-wasm MIT license and ZXing-C++ Apache License 2.0.
Common questions
- Can I scan a barcode from a picture instead of the camera?
- Yes. Choose an image, drop one on the scanner or paste a screenshot, which is also the way to read a barcode shown on your own screen. It is read by the same decoder the camera uses, so a photo from your gallery works when the camera is refused, busy or missing.
- Does it work on an iPhone, iPad or Android phone?
- Yes. Open this page in Safari, Chrome or another current browser, press Start camera and allow the camera. It asks for the back camera, and Switch camera appears when the device has more than one. On a laptop or desktop it uses the webcam. There is no app to install and no account, and scanning costs nothing.
- Does this barcode scanner tell me what the product is or what it costs?
- No. It shows the data the barcode holds. For a retail code that is the product number (GTIN) and its check digit. The number is not looked up anywhere, so the page says nothing about the product, its price, whether it is genuine or whether it is safe.
- Can it make a barcode too?
- No, this page only reads codes. To make one, use the Barcode Generator on this site, which draws Code 128, Code 39, EAN-13 or UPC-A, then choose its downloaded PNG here to check that it reads back.
- Which barcode types can it read?
- Code 128, EAN-13, UPC-A, Data Matrix and QR codes, plus EAN-8, UPC-E, Code 39, ITF, Codabar, DataBar, PDF417 and Aztec. Set Look for to 1D only or 2D only to ignore the other kind.
- Will scanning a QR code or barcode open a website?
- No. A link inside any code is shown as text, labelled as a web address, and this page never opens it. Copy it only if you trust where the code came from.
- Why does it say no barcode found?
- The reader returns a code only when it decodes cleanly and passes the code's own checks, so a blurred, cut-off, glare-covered or damaged code is reported as not found instead of guessed. Try a sharper photo taken straight on, with the whole code in the frame and even light.
- Is my photo uploaded anywhere?
- No. The picture is decoded in your browser and never sent anywhere. The only extra download is the reader itself, whose main file is 0.95 MB and comes from this site at a pinned version, not from a third party.
- Can it read several barcodes at once?
- Yes. A photo with several codes shows each one outlined, with a button to switch between them, and all of them join the session list. With the camera, choose Keep scanning to read one code after another; a code held in view is recorded once. Copy history copies that list, newest first, with each format and payload separated by a tab, so it pastes into two columns of Google Sheets or Excel.
- Can I test a USB or handheld barcode scanner here?
- Yes. A handheld scanner in keyboard mode types what it reads into whatever box has focus. Select the box under Test a handheld scanner and scan a code: the page shows every character typed into the box, marks any that print nothing, and for 8, 12, 13 or 14 digits checks the GTIN check digit, reading 8 digits that start with 0 or 1 as an EAN-8 or a UPC-E. The Enter or Tab a scanner adds at the end finishes the read and is not counted, and a separator sent as a Ctrl key combination never reaches the box. Changing the scanner's own settings is done with its maker's setup codes, not here.
A decode shows exactly the data the code holds: it identifies what is encoded, not the product, its authenticity, its price or whether it is safe. A damaged or blurry code is reported as not found rather than guessed, and if the camera is unavailable or refused, an image file is read the same way.