Free Online QR Code Scanner
Frames are decoded in this tab and never recorded. What the camera sees stays local.
Loading the tool…
How it works
One decoder, on every browser
Browsers ship a native BarcodeDetector API, and in 2026 it is still absent in Firefox, unreliable in Safari and patchy on desktop Chrome. Tools built on it work on the developer's machine and fail on a third of visitors. This uses a WebAssembly build of ZXing through the barcode-detector ponyfill on every browser, including the ones that have the native API, so one code path produces identical results everywhere rather than a different decoder per platform.
- ZXing in WebAssembly
- The same decoder everywhere, chosen over the native API because native support is still absent in Firefox and unreliable in Safari.
- Camera frames
- Drawn to a canvas this page owns and decoded in the tab. No video is recorded and no frame is uploaded. Needs HTTPS and a tap to start.
- Inverted retry
- A still image that fails is decoded again inverted. White-on-dark codes are common in print, and still-image decoding is stricter about polarity than a live viewfinder.
- Payload parsing
- WIFI:, vCard, iCal, SMSTO:, geo:, mailto:, tel:, upi:// and wa.me are parsed into fields, with \; \: and \, unescaped — the escapes naive parsers leave in the middle of a password.
- Destination first
- Links are shown as text and never opened automatically. javascript: and data: payloads are displayed but not made clickable.
How to use it
How to scan a QR code online
- 01
Start the camera or drop in an image
The camera needs a tap to start, which is a browser requirement rather than ours. A photo, screenshot or pasted image works just as well.
- 02
Hold the code in frame
Fill a decent part of the viewfinder and keep it flat. Frames are decoded continuously until one reads.
- 03
Read the result before acting on it
A WiFi code comes back as network, security and password; a link comes back as an address you can check and then choose to open.
Where it earns its keep
Where a QR code scanner on a desktop helps
- Checking a code you have just generated actually holds what you meant, before it goes to print.
- Reading a code that arrived in a PDF or an email on the machine you are already sitting at.
- Inspecting a code on a parking meter or a letter to see the address before you open it.
- Recovering the WiFi password from a photo of the card in a holiday let.
Questions
QR Scanner, answered
Are camera frames or images uploaded anywhere?
No. Frames are drawn to a canvas in this page and decoded by WebAssembly in the tab. Nothing is recorded and nothing is transmitted — open the network inspector while you scan and there is no request carrying the image.
Does it open the link for me?
No, deliberately. The address is shown as text and you decide. javascript: and data: payloads are shown but are not clickable at all, because a code that hides its destination is the whole mechanism behind a malicious one.
Why not use the browser's built-in barcode detector?
Because it is not reliably there. Firefox has no BarcodeDetector, Safari's is inconsistent, and desktop Chrome's support depends on the platform. Running ZXing in WebAssembly everywhere costs a download and buys the same result on every browser.
Why will my photo of a printed code not decode?
Usually blur, glare or too little of the frame. Codes at an angle or with a corner cut off will also fail, since the three finder patterns have to be visible. A light-on-dark code is retried inverted automatically, so that one is already handled.