QR Code Scanner and Generator
Scan a QR code with your camera or from a screenshot and see exactly what it says, and where a link really goes, before anything opens. Or make a free, static code for a link, Wi-Fi or contact.
Key facts
- A QR code holds up to 2,953 bytes of text (version 40, error correction L), and can lose up to about 30% of its data at level H and still be read.
Drop a QR code image hereScan a QR code
or paste a screenshot (Ctrl+V, ⌘V)with your camera, or choose a photo or screenshot
Read on this device. Nothing is uploaded, and the camera stops as soon as a code is read.
ExampleLink
example.com
An encrypted (https) link. Make sure this is the site you expect before you open it.
An example: scan a code of your own and its contents replace this.
https://example.com/menu?table=12
Exact text in the code33 characters
How this works: Method, 10 sources, Checked against 11 worked examples,
How this works
Method
A picture or camera frame is decoded on this device, by the browser’s own barcode detector where it has one, else by the open-source jsQR decoder (a still image is retried smoothed and at half size). The text is shown, never opened: a link’s real domain is found with common Public Suffix List endings and checked for short links, look-alike letters, text before an @, IP addresses and plain http. New codes are encoded as UTF-8 in the smallest version that fits, then decoded again to check they read back.
Sources
- ISO/IEC 18004:2024, QR Code bar code symbology specification (2024)
- ZXing wiki: Barcode Contents (Wi-Fi, MECARD, URL)
- RFC 6350: vCard Format Specification (4.0) (2011)
- RFC 2426: vCard MIME Directory Profile (3.0) (1998)
- MDN: BarcodeDetector
- MDN: MediaDevices.getUserMedia()
- RFC 3492: Punycode (2003)
- Public Suffix List
- WCAG 2.2, 1.4.3 Contrast (Minimum) (2023)
- FTC: Scammers hide harmful links in QR codes (2023)
How it’s tested
11 worked examples for this page are checked by automated tests before every release: given the inputs, the tool must show the expected answer.
Changes
- First version: a scanner for camera, photos and screenshots with link checks, and generators for links, text, Wi-Fi and contacts with SVG and PNG downloads.
All 5 QR code tools
Scan a code · Make a code
Scan first, open second
A QR code is only text. Your phone’s camera reads that text and usually offers to open it at once, which is what scammers rely on: a sticker over a parking meter’s code, or a code in an email about a parcel, leads to a page that asks for card details or a password (FTC: Scammers hide harmful links in QR codes).
This scanner shows the text first. For a link it highlights the registrable domain, the part someone had to buy, which decides who runs the site: in example.com.account-check.example.net that is example.net. It warns about link shorteners that hide the destination, international letters that imitate Latin ones (shown in their RFC 3492: Punycode form, which starts xn--), text before an @, raw IP addresses and plain http.
Static codes, no sign-up
The codes made here are static: the link, Wi-Fi details or contact card are written into the pattern itself (ISO/IEC 18004:2024, QR Code bar code symbology specification). Many generator sites make dynamic codes instead, which point at a short link on their server; those can count your scans, and stop working when a subscription lapses. A static code works for as long as what it holds is true.
Wi-Fi codes follow the format documented by the ZXing project (ZXing wiki: Barcode Contents (Wi-Fi, MECARD, URL)), and contact codes are vCards (RFC 6350: vCard Format Specification (4.0)). The page reads every code it makes back with a decoder, in your colours, before you download it.
Sources
- ISO/IEC 18004:2024, QR Code bar code symbology specification
- ZXing wiki: Barcode Contents (Wi-Fi, MECARD, URL)
- RFC 6350: vCard Format Specification (4.0)
- RFC 2426: vCard MIME Directory Profile (3.0)
- MDN: BarcodeDetector
- MDN: MediaDevices.getUserMedia()
- RFC 3492: Punycode
- Public Suffix List
- WCAG 2.2, 1.4.3 Contrast (Minimum)
- FTC: Scammers hide harmful links in QR codes
Frequently Asked Questions
How do I scan a QR code from my computer?
Choose Scan with camera and hold the code up to the webcam, or, if the code is already on your screen, take a screenshot and paste it here with Ctrl+V (⌘V on a Mac). You can also drop or choose a photo of the code. It is read in the browser, and nothing is uploaded.
Is it safe to scan a QR code?
Scanning only reads text; the risk is in what you open. Scammers stick fake codes over real ones and send them by text and email (FTC). This scanner never opens anything by itself: it shows the full address, highlights the domain that decides who runs the site, and warns about short links, look-alike letters and unencrypted pages.
Are the QR codes made here free, and do they expire?
Free, with no sign-up and no watermark, and they never expire: they’re static codes, with the link or text stored in the pattern itself rather than on a server that could switch it off or track scans. Download them as SVG or PNG.
Can I make a QR code for my Wi-Fi?
Yes: choose Create, then Wi-Fi, and type the network name and password. Guests point their phone’s camera at the code to join. The password is used only on this page: it isn’t sent, saved or put in the address bar.
Why won’t a QR code scan?
Most often it is too small or blurred in the picture, cut off, or has no light margin (the quiet zone) around it. Low contrast and light-on-dark colours trip up many readers too. Try a closer, sharper photo with the whole code in frame.