What the scanner pulls out of a QR payload
A QR code is only a container. Our scanner detects the content type and renders it as structured fields: URLs with a domain and safety hint, Wi-Fi codes as SSID, encryption and password, vCards as a contact with name, organisation, phone and email, SEPA payment codes with IBAN, BIC and amount. Email addresses, phone numbers, SMS, geo positions, calendar events and one-time passwords also become labelled fields instead of a single string.
That structure is the difference. If you scan a payment code you want to pay, not to read a BCD line. If you scan a vCard you want the contact. So the parsing is part of the tool — including check digits on product codes and GS1 application identifiers on Data Matrix payloads.
How the scan works in three steps
Open the page on the device you want to scan with — phone, tablet or laptop — and press “Start camera”. The browser asks for camera permission once; nothing turns on without you. You can also drag an image into the drop zone or paste a screenshot straight from the clipboard.
Hold the code so that all four corners are visible, roughly 15–20 cm away, and avoid glare. Decoding starts automatically as soon as a supported symbology is found. For uploaded images the round trip is usually under a second.
The result is parsed into a readable card: a link with its domain, Wi-Fi credentials, a contact card, or a product number with its check digit. Copy a single field or everything, and open links only after you have checked the destination.
Why your images never leave the device
The decoder is JavaScript running in your browser. Camera frames are drawn into a canvas and read there; uploaded images are read through FileReader. There is no upload endpoint for image data. That is an architectural decision, not a slogan: the application has no route that accepts image content.
To improve the tool we store anonymous counters only — detected format, payload category (Wi-Fi, product code and so on), interface language, and whether decoding succeeded. No decoded content, no filenames, no IP-based profiling. Scan history lives in your browser’s localStorage and is deleted with one click.
When a code will not scan
The usual suspects are low contrast, a code that is too small, or reflections on a laminated label. Steady the camera, zoom slightly, and make sure the quiet zone around the code is visible. For a photo, rotating it often helps the decoder find the alignment pattern.
For damaged codes, try a second angle. For product barcodes we validate the EAN-13 check digit and tell you immediately when the number cannot be genuine. Industrial Data Matrix payloads (VDA 4902, GS1) are also supported — and our label generator handles the printing side.
FAQ
Frequently asked questions
Can I scan a QR code without installing an app?
Yes. The scanner runs entirely in the browser — no install, no account, just a camera or an image of the code.
Are my images uploaded anywhere?
No. Decoding happens client-side. We count anonymous events such as format and language, never the payload or the image file.
Does it work with screenshots and PDFs?
Yes. Drop the image, pick the file or paste it from the clipboard. Batch scanning handles up to ten images in one go.
Which QR codes cannot be decoded?
Very small, damaged or glare-covered codes. Beyond roughly 30% damage, decoding is physically limited, no matter which scanner you use.
Is it free on iPhone and Android?
Yes, in Safari, Chrome and every modern mobile browser. No paywall, no watermark, no scan limit.