Reticle
Tools

QR Code Scanner

Point your camera at a code, or drop, choose, or paste an image. Reticle decodes it right here in your browser: no sign-up, and your image never leaves your device.

Scan a QR code
Drop an image, click to choose, or paste PNG · JPEG · any QR image, decoded on your device, never uploaded

Decoding happens in your browser and your image is never uploaded. When a code contains a web address, only that address is sent to Reticle to check the destination; it is never stored.

Want one of these? Create your own QR code →

How the QR scanner works

Drop in any image with a QR code (a screenshot, a photo of a poster, a file) or paste it straight from the clipboard, and the code is decoded on the spot. On phones and laptops with a camera you can also scan live, just like a camera app. Decoding uses your browser's built-in barcode detection where available, with a bundled fallback everywhere else, so it works without installing anything.

It reads more than links: Wi-Fi network details, contact cards (vCard), calendar events, email, SMS, phone numbers, map locations, and crypto payment addresses are all recognized and displayed as what they are, not just raw text.

See where a code points before you go there

A QR code is unreadable to a person, which is what makes a swapped sticker on a parking meter or a fake code on an invoice work at all. Decoding one here shows you the full address it contains without visiting it, and every result comes with a short inspection report covering the things that are easy to miss at a glance.

When the code holds a web address, Reticle's server also follows it for you: you see the final destination after any redirects, a preview of the page built from its own title and description, and whether Google Safe Browsing has flagged it. Your device never contacts the site until you choose to open it. Every check that applies is listed with its result, so you can see what was looked for rather than just what was found. On a web address that means eight checks: whether it runs code or embeds a file instead of opening a page, whether the connection is encrypted, whether text is hidden before the @ so the visible part is not the destination, whether the domain uses characters from another alphabet that can imitate familiar letters, whether it is a link shortener whose real destination is hidden, whether it points at a bare IP address, whether the port is a standard one, and whether a long chain of subdomains pushes a familiar-looking name away from the domain that actually controls the address. Wi-Fi, contact, and cryptocurrency codes are checked for what they disclose to anyone who photographs them instead.

It is not a safety verdict, and it never says a code is safe. The on-device checks run in your browser, and the destination check runs on Reticle's server, so the site at the other end never sees your device until you choose to open the link. Safe Browsing only knows about pages that have already been reported. A scam link on an ordinary-looking domain raises nothing at all. What the report gives you is the ability to read a code before you act on it, which is the part a camera app skips.

Private by design

Images and camera frames are never uploaded. Decoded contents stay on your device with one exception: when a code contains a web address, that address (and only the address) is sent to Reticle for the destination check, and it is never stored. The camera runs only while you're scanning: it shuts off the moment a code is found or the tab is hidden, and there's no account or sign-in.

From scan to edit

Found a code you want to reuse? Open in Studio carries the decoded contents into the Design Studio with the right fields pre-filled, so you can restyle it with your own colors, shapes, and logo, then download a fresh copy.

Frequently asked questions

Can I scan a QR code from a screenshot without an app?

Yes, that's exactly what this page is for. Upload, drag in, or paste any image containing a QR code (a screenshot, photo, or saved file) and it's decoded right here in your browser. Nothing to install.

How can I check a QR code before tapping the link?

Decode it here first. Every scan shows the full address the code contains, and when it is a web address, Reticle's server follows it to show the final destination, a preview of the page, and a Google Safe Browsing reputation check, without your device ever contacting the site. Eight on-device checks run alongside it, covering a plain http link, a link shortener hiding the real destination, a domain using lookalike characters from another alphabet, text hidden before the @ in an address, a raw IP address, a non-standard port, a long chain of subdomains pushing a familiar name to the left, and whether the code runs code or embeds a file rather than opening a page.

Does the inspection report tell me whether a QR code is safe?

No, and it deliberately does not claim to. The checks list what was looked for and what each one found, and the Safe Browsing result only says whether Google has flagged the address, not that the site is trustworthy. A scam link on an ordinary-looking domain can pass every check, so a report where everything passes means exactly that, nothing matched, and not that the site is safe. Treat it as a way to read a code before you act on it, not as a verdict.

Why won't my QR code scan?

The usual culprits are blur, low contrast between the code and its background, a missing quiet zone (empty margin) around the code, damage to the corner squares, or an image where the code is simply too small. Try a sharper, closer, straight-on picture.

Can it read Wi-Fi QR codes? Will it join the network for me?

It decodes Wi-Fi codes and shows the network name, security type, and password. Actually joining the network with one tap is a feature of your phone's camera app; use it if you want to connect rather than read the credentials.

Are my images or camera frames uploaded anywhere?

No. Decoding happens entirely in your browser using the device's own barcode detection, and images and camera frames never leave your device. One thing is sent to Reticle: when a decoded code contains a web address, that address (and only the address) goes to Reticle's server to run the destination check. It is not stored, and there's no account or sign-in.

Why does the camera ask for permission, and when does it stop?

The browser requires your explicit permission before any page can use the camera. The live scanner stops the camera as soon as a code is found, when you switch away from the tab, or when you drop in an image instead.