QR and barcode scanner
Scan a QR code or barcode from a photo, a screenshot or your camera. See what it really contains, from links and Wi-Fi passwords to UPI payments and product numbers, with warnings before you open anything.
- Images and camera stay in your browser
- Links are never opened automatically
- QR, Data Matrix, PDF417 and 1D barcodes
JPG, PNG, WebP or GIF up to 15 MB. Crop close to the code for the best result.
Decoded content
Nothing scanned yet
- Input—Image or camera
- Decoder—Built-in or ZXing
- Format—Type of symbol
- Content—What it contains
Scan result
—
—
—
—
Scan history 0
- No scans yet. Decoded text is kept here, in this browser only.
Images and camera frames are decoded on your device. Links are shown, not opened, until you choose to. A scanner cannot tell whether a link or payment is genuine, so check the domain and the payee before you act.
What a scanner can tell you
A QR code or barcode is only text. The scanner reads that text, and the useful part is understanding it before you act on it.
Codes hold text, not files
Even a "PDF" or "menu" QR code holds a link. The scanner shows that link in full, so you can see where it goes before opening it.
The domain is what counts
In https://pay.example.com.evil.test/login the real site is evil.test. Read the domain shown here, not the start of the address.
Payment codes only pay
A UPI code sends money from you to the payee in it. Nobody needs you to scan a code or enter your PIN to receive money.
Barcodes are numbers
A product barcode is a GTIN, such as an EAN-13. Its first digits show which GS1 office issued it (890 is GS1 India), not where the product was made.
Codes this scanner reads
The built-in reader in Chrome on Android, macOS and ChromeOS, and the ZXing decoder used elsewhere, both cover these.
| Format | Kind | Where you will find it |
|---|---|---|
| QR Code | 2D | Links, Wi-Fi, payments, menus, tickets |
| Data Matrix | 2D | Medicine packs, electronics parts, postage |
| PDF417 | 2D | Boarding passes, ID cards, shipping labels |
| Aztec | 2D | Train and flight tickets |
| EAN-13 / EAN-8 | 1D | Retail products in India and most countries |
| UPC-A / UPC-E | 1D | Retail products in the US and Canada |
| Code 128 / Code 39 / Code 93 | 1D | Shipping, inventory, asset tags |
| ITF / Codabar | 1D | Cartons, libraries, blood banks |
How the scanner works
Every step happens inside this page.
Add an image or start the camera
Drop, paste or choose a photo or screenshot, or point your camera at the code.
The browser decodes it
The built-in barcode reader is used when your browser has one; otherwise the ZXing decoder runs in the page.
Read what it contains
Links, Wi-Fi, contacts, UPI payments and product numbers are split into clear fields, with safety notes.
Copy, open or export
Copy a field, open a link only when you choose to, and export your history as CSV or TXT.
What this tool does, and what it doesn't
A plain list, so you know exactly what to expect.
This tool does
- Read codes from images, screenshots and the camera
- Explain links, Wi-Fi, contacts, UPI and product numbers
- Flag warning signs in links and payment codes
- Copy single fields, such as a Wi-Fi password
- Keep an optional history and export CSV or TXT
- Work without an account
This tool does not
- Upload your images or camera video
- Open links or start payments by itself
- Prove that a link or payee is genuine
- Look up product prices or details
- Save images in the history
- Sync history between devices
Where your data goes
Your images and camera frames are decoded in your browser and never leave your device. If your browser has no built-in barcode reader, the page downloads the open-source ZXing decoder from jsDelivr, which receives a normal request for that file but never your images. Decoded text is kept in this browser's local storage only while history is switched on. See our privacy policy.
When a code will not scan
The six problems people run into most, and what to change.
Blurry or angled photo
Hold the phone parallel to the code, tap to focus, and crop close before scanning.
Glare or low contrast
Move away from reflections. Light codes on dark backgrounds are read as inverted, which is tried too.
Code is tiny in the picture
Crop to the code, or take the photo closer. Each module needs a few pixels.
Edges cut off
Keep the quiet zone, the blank border around the code, inside the crop.
Several codes in one image
Built-in readers find all of them; the ZXing fallback reads one, so crop to the one you need.
iPhone HEIC photo
Most browsers cannot open HEIC. Take a screenshot of it, or export it as JPG first.
Questions about scanning codes
What kinds of codes can it read?
QR codes, Data Matrix, Aztec and PDF417 codes, and the common barcodes: EAN-13, EAN-8, UPC-A, UPC-E, Code 128, Code 39, Code 93, ITF and Codabar. It reads them from a photo, a screenshot or your camera, and shows what the content is, such as a link, Wi-Fi network, contact card or UPI payment.
Can I scan with my camera?
Yes. Press Use camera and allow camera access. The video is read frame by frame inside your browser and is never recorded or sent anywhere. The camera only works on a secure (https) page and stops when you press Stop camera or leave the page.
Are my images or scans uploaded?
No. Images and camera frames are decoded in your browser. If your browser has no built-in barcode reader, the page downloads the open-source ZXing decoder from the jsDelivr network; that download contains code only, never your images or results.
Is it safe to open a link from a QR code?
Treat it like any link from a stranger. Fake QR stickers on posters, parking meters and payment boards are a known scam. This scanner never opens links by itself: it shows the full address and the real domain, and flags warning signs such as an insecure http link, a link shortener, a raw IP address or look-alike letters, so you can decide.
Someone asked me to scan a QR code to receive money. Is that real?
No, that is a common fraud. A UPI QR code is always for paying money, never for receiving it, and you never need to scan a code or enter your UPI PIN to receive money. When this scanner reads a UPI code, it shows the payee and amount and repeats this warning.
Where is my scan history kept?
Only in this browser, in local storage, and it does not sync between devices. Images are not saved, only the decoded text, type and time. You can delete single scans, clear everything, or switch history off so nothing is kept.
Why won't my code scan?
The usual causes are blur, glare, a code that is too small in the photo, a crop that cuts off the edges, or very low contrast. Crop closer with the code straight and in focus, avoid reflections, and make sure the white border around the code is visible. Screenshots usually scan better than photos of screens.