Skip to content

Free tool

Free QR code scanner

Point your camera at a code, or choose a photo of one. The code is read here in your browser, so no picture and no address is sent to us or to anybody else. You see the text first and decide whether to open it.

Read a code

Asking your browser for the camera.

How to use it

  1. Allow the camera when the browser asks. It asks once, as the page loads, and it asks for nothing else.
  2. Hold the code about 15 to 30 cm from the lens so it fills roughly half the frame. Keep the paper flat and out of direct glare.
  3. No camera, or a code that will not read? Choose a photo instead. A screenshot works, and so does a picture taken earlier.

Where the picture goes

Nowhere. The decoding runs inside this page. Camera frames are drawn to a canvas in memory, read by the decoder, and thrown away; a photo you choose is opened by the browser and never uploaded. We do not record what a code turned out to say, and this tool fires no analytics of any kind, including for people who have accepted cookies elsewhere on the site.

The camera stops the moment a code is read, and again if you switch tabs or put the phone down. You start it again with a button.

What it will not do

  • It will not open the link for you. You read the address, then decide. That is the whole defence against a sticker slapped over the code on a parking meter.
  • It will not offer to open anything that is not a plain http or https address. A code carrying javascript: or data: gets shown as text and nothing more.
  • It will not open an address with a username in front of the host, or one padded with invisible characters. Both are ways of printing one destination and opening another, and both are named on screen when they turn up.
  • It cannot tell you whether the destination is safe. A QR code is a printed string. Anyone with a label printer can make one.
  • It reads QR codes only, not barcodes.

If it will not read

A code that fails here usually fails on a phone camera too, and the cause is normally physical: printed too small for the distance, the pale border trimmed off, a laminate throwing glare, or a logo covering too much of the pattern. Four questions in order will tell you which, and the print guide has the minimum sizes in millimetres.

Making one instead of reading one

Our free generator makes a static code and downloads it as PNG or SVG without an account. The address is baked into the pattern, so it can never be changed afterwards. If the destination might move, a code you can re-point after printing is the one to use.