Utility / 05

QR scanner.

Point your camera at a QR code; decoded URLs and text appear below. Or upload an image and decode it without the camera.

Notes

Where supported (Chromium-based Android, Chrome OS, recent desktop Chrome) we use the native BarcodeDetector API. Otherwise we fall back to a JS decoder. Everything runs locally — the image, the stream and the decoded text never leave this page.

Scan a QR code

Start the camera, or upload an image of a QR code if you don't have one in front of you.

Detecting browser support…
Frequently asked

How does QR scanning work in a browser?

Modern Chromium browsers (Chrome, Edge, Brave on Android and ChromeOS, plus desktop Chrome with a feature flag) ship a native BarcodeDetector API. We feed video frames from getUserMedia into BarcodeDetector.detect() at about 10Hz and surface any decoded payload. On browsers without BarcodeDetector (Safari, Firefox) we fall back to a JavaScript decoder. Either way, the camera stream and decoded text never leave the page.

Why doesn't it scan? My QR code looks fine to me.

Three common causes. (1) Focus — phones need at least 8–10cm distance to focus; pull back. (2) Lighting — too dim and the camera can't resolve the dark/light edges; tap Torch (Android only) or move under a lamp. (3) Resolution — small QR codes on a screen sometimes shimmer due to moiré; try a slightly different angle or fullscreen the source. If only one code in a sheet works, the others may be damaged (smudge, fold, low contrast).

Can I scan QR codes from an image instead of the camera?

Yes — use the 'Upload image' button. We decode it client-side. This is useful when someone sends you a QR code screenshot via WhatsApp or email and you don't want to print it out just to point your phone at it. Common formats (PNG, JPG, WebP) all work.

Is it safe to follow a QR link?

Treat scanned URLs the same way you treat URLs in any unsolicited message. We show the full decoded URL before opening it so you can inspect it — check the domain matches what you expect. Scammers use QR codes ('quishing') because most people scan and tap without reading. If a code on a parking meter or restaurant table looks like a sticker placed over the original, do not scan it.

How is this different from the phone's built-in scanner?

iPhone Camera and Google Lens both scan QR codes excellently and we recommend them when available. This page exists for (a) desktops/laptops where there's no native scanner, (b) older Android phones where the camera app scanner is missing or buggy, and (c) any time you want to scan and immediately copy text to a clipboard you can then paste into a desktop browser — instead of typing a long URL by hand.

The browser is blocking my camera.

Tap the camera icon in your address bar and choose Allow. Then reload. On iOS Safari, the permission prompt only appears after you tap Start scanner — Apple requires a user gesture. On macOS, you may also need to grant your browser camera permission in System Settings → Privacy & Security → Camera. If still blocked, the Upload image fallback works without any camera permission at all.