QR & Barcode Reader
Reads QR codes and common barcodes from an uploaded image, a screenshot or the camera.
Reads a QR code out of an image or a screenshot, draws where it found the symbol, and shows you what it says — without opening it. A QR code is an address you cannot read before you follow it, which is exactly what makes a sticker over a real one work.
Drop a QR code image, or paste a screenshot
PNG, JPEG, WebP, GIF or anything else this browser can decode. The image is read in this tab and never uploaded.
QR codes only, for now
This reads QR codes. It does not read EAN, UPC, Code 128 or the other linear barcodes, and it says so rather than trying and failing on a photograph — a one-dimensional symbology needs a different scan-line search entirely, and a reader that succeeds on a clean render while failing on every real photo is worse than one that is honest about its range. Linear barcodes can be generated here today.
The image is decoded in this tab. It is drawn to a canvas, thresholded and scanned in a background thread, and the pixels never leave your browser — there is no upload, and the link the code contains is not fetched either.
How to use it
Drop the image or paste a screenshot
A photograph of a poster, a screenshot of a payment screen, a saved PNG — anything the browser can decode. Very large photos are downscaled first, which does not hurt a symbol occupying a useful part of the frame.
Check the overlay when it fails
The three finder patterns and the alignment pattern are drawn over your image. Seeing them found tells you the detector got that far and the decode failed later; seeing none tells you it never found the symbol.
Read the host before you decide
When the payload is a link, the host is broken out on its own and any mixed-script lookalike character in it is named. Following it is still your decision, made with the same information a link on a page would have given you.
Common questions
Does it open the link?
No — not opened, not fetched, not previewed. The image is decoded in a worker in this tab and the payload is shown as text. Nothing about the code reaches a server, ours or anyone’s.
It cannot find a code in my photo
Crop to the symbol and include the white margin — the detector needs the quiet zone to find the edges. Shoot straight on; past about forty degrees the finder patterns stop looking square. Below roughly three pixels per module there is nothing to recover, so a 21×21 code needs about 90 pixels across.
Why will it not read a barcode?
A linear symbology needs a completely different scan-line search, and a reader that succeeds on a clean render while failing on every real photograph is worse than one that is honest about its range. Linear barcodes can be generated here today, just not read.
What does "symbols repaired" mean?
The code was damaged and Reed–Solomon rebuilt the missing codewords. The text shown is exact — error correction either reconstructs the original or fails, it does not guess. A high repair count on a clean-looking code usually means the print or the camera is marginal.
Feed it from
QR Code Generator
Makes a QR for a URL, text, wifi, vCard or payment string, with error correction, logo and SVG export.
Barcode Generator
Generates EAN-13, UPC, Code128, Code39 and ITF barcodes with check digits and print-ready output.
TOTP Code Generator
Turns a TOTP secret into the current six-digit code with a countdown, for testing 2FA setups.
Authenticator Export Reader
Decodes a Google Authenticator migration QR into the individual accounts and their secrets.
Next
These accept what this tool produces, so the result can go straight in.
Authenticator Export Reader
Decodes a Google Authenticator migration QR into the individual accounts and their secrets.
QR Code Generator
Makes a QR for a URL, text, wifi, vCard or payment string, with error correction, logo and SVG export.
URL Parser & Query Editor
Splits a URL into its parts, shows query parameters as an editable table and rebuilds the result.
Suspicious URL Check
Inspects a link’s shape before you open it — lookalike characters, IP-literal hosts, @ tricks, deep subdomains, odd ports, shorteners — and on request traces its redirects and looks up the domain’s registration date. No reputation database.
DNS Lookup
Queries A, AAAA, CNAME, MX, TXT, NS, SOA, SRV, CAA and PTR records over DoH, with TTL and the DNSSEC bit shown, from Cloudflare or Google.
HTTP Request Builder
Composes and sends a GET/POST/PUT/PATCH/DELETE/HEAD request with custom headers and a body, and shows the status, headers, body and timing — without ever forwarding cookies or Authorization.