QR Code Reader
Decode QR codes from images or your live camera. Inspect content type, version, modules, and error correction. History is stored locally only.
Upload a saved image or scan with your device camera. Files stay in your browser.
Upload an image
Drag and drop an image here, or click to choose
Supports: PNG, JPG, JPEG, WEBP
Allow camera access to scan QR codes in real time.
QR Code Reader decodes QR images and live camera feeds entirely in the browser. The result panel shows the decoded payload, detected content type, and structural details (version, modules, encoding, error correction). Successful scans queue into a local-only history.
The camera stream stays on your device. No frames are uploaded — frame decoding runs locally via the jsQR library. The stream stops the moment a QR code is recognised or you click Stop.
History is persisted in your browser's localStorage. Clearing browser data, switching browsers, or using private mode wipes the list. Use Clear History or the per-row delete button to remove entries.
Centre the code in the frame, increase brightness, and pause until the camera focuses. For images, ensure the QR fills at least 200 pixels and avoid heavy compression artefacts.
Pair with the QR Code Generator to round-trip a payload. Need barcode reading instead? Use the Barcode Generator.
Where is my scan history stored?
In your browser's localStorage, under the key appkiro:qr-reader:history:v1. It never leaves the device. Different browsers and incognito windows keep separate histories.
Why does my camera not start?
Browsers block getUserMedia on insecure origins. Make sure the page is served over HTTPS (or localhost), and grant camera permission in the browser prompt.
Who benefits from this tool?
Field engineers verifying labels, restaurant teams testing menu codes, marketers QA-ing campaign QR posters, and security researchers auditing payload contents before opening links.
When should I trust the decoded URL?
Treat every QR-derived URL as untrusted. The tool exposes the raw text so you can inspect it before opening. Phishing campaigns frequently disguise malicious links inside printed QRs.
What QR code formats are supported?
All standard QR Code Model 2 formats up to version 40 are decoded. Numeric, alphanumeric, byte, and Kanji modes are recognised. Micro QR is not supported.
How are Wi-Fi and vCard payloads handled?
They are detected by prefix (WIFI:, BEGIN:VCARD, MECARD:) and tagged in the type badge. The raw payload is shown so you can paste it into a wallet app or contact tool.