99tools

QR & Barcode Scanner

runs in your browser

Scan QR codes and barcodes with the camera or from an image, on your device: links checked for tricks, Wi-Fi, contacts and products decoded, history kept.

Scan from
Using ZXing (about 1 MB, fetched from this site once).

Drop a file here, or .

A photo or screenshot of a QR code or barcode. Several codes in one picture are all read. Nothing is uploaded.

about this tool

Two decoders, both on your device

Where the browser has a built-in barcode detector — Chrome, Edge, Safari 17 and later, Android — the tool uses it: it is fast, hardware-assisted on phones, and needs nothing downloaded. Elsewhere, Firefox above all, it falls back to ZXing compiled to WebAssembly, about a megabyte fetched once from this site, never from a third-party CDN. The header says which is in use. Either way frames and images are read on your device and nothing is recorded, sent or stored; the history lives on the page and disappears when you leave.

Camera or image

The camera mode asks for the rear camera on a phone, lets you pick another where there are several, and reads a frame about three times a second while it is on. The image mode takes a photo or screenshot and reads up to four codes in it. The sample is a QR code drawn on the spot by this site's own QR generator, so the whole pipeline can be tried without a camera.

Making sense of what was read

A code's text is classified and shown with the actions that fit. Links get an open button and a list of what the tool can see about them: plain http, a bare IP address, a username in the address, punycode look-alike domains, link shorteners, very long addresses, stacks of subdomains — QR codes are a favourite place to hide a bad link, because you cannot see it before scanning. Wi-Fi codes give the network, security and password with a copy button. Contacts in MECARD or vCard form are laid out and offered as a .vcf to add to your address book. Email, phone, SMS and geo codes become mailto:, tel:, sms: and map links; calendar events are listed. Product numbers — EAN-13, EAN-8, UPC-A, GTIN-14 — have their check digit verified (a misread almost always fails it), the issuing GS1 organisation named from the prefix, and ISBN-13s converted to the ISBN-10 they replaced.

Repeated reads of the same code, as the camera lingers on it, fold into one history row with a count. The history can be copied row by row or downloaded as CSV.

Limits

The formats available depend on the decoder: the native detector's list varies by browser; ZXing reads everything listed. Product numbers are checked, not looked up — there is no database behind the page. Link warnings describe the address, not the site. Camera access needs https and a permission prompt; if it is refused, drop an image instead. Nothing is stored between visits.

To produce a code instead, use the barcode generator for retail symbologies or the QR code generator for links, Wi-Fi and contact cards.

questions

Does the scanner send my camera feed or images anywhere?
No. Frames are read in your browser — by its built-in barcode detector where it has one (Chrome, Edge, Safari 17 and later, Android) or by ZXing compiled to WebAssembly, fetched once from this site. Nothing is recorded, uploaded or stored; the history lives only on the page and is gone when you leave.
Which codes can it read?
QR Code and Micro QR, Data Matrix, Aztec, PDF417, MaxiCode, and the one-dimensional retail and logistics codes: EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, Code 93, Codabar, ITF and GS1 DataBar. Exactly which are available depends on the decoder your browser uses; ZXing covers all of them.
Why does it warn me about a link?
QR codes are a favourite way to hide a dangerous link, because you cannot see it before scanning. The tool points out what it can see: plain http, a bare IP address, a username in the address, look-alike domains in punycode, link shorteners that hide the destination, and long addresses with many subdomains. It cannot judge the page itself — open with the same care as any link.
What does it do with a product barcode?
It checks the check digit — a misread EAN-13 usually fails it — reports which national GS1 organisation issued the number, and for books converts the ISBN-13 to the ISBN-10 it replaced. It does not look the product up; that would need a request to a database.
Can it read several codes in one picture?
Yes, up to four per image, all added to the history. A photo of a shelf or a sheet of labels works; make sure each code is sharp and at least a couple of hundred pixels across.