Scanning QR codes online, explained
This QR code scanner reads a code from your webcam or phone camera, or from a screenshot or photo you upload, and shows what is inside: a link, WiFi details, a contact card or plain text. Decoding runs in your browser with the jsQR library, so you can check where a code leads before you open it.
// 10 qr types
URL · Plain text · WiFi credentials
Email with subject & body
SMS · Phone (tel:) · vCard contact
GPS location (geo:) · Calendar event
Cryptocurrency (BTC, ETH, LTC, XMR)
// output formats
PNG — at 128, 256, 512 or 1024px
SVG — infinitely scalable, ideal for print
Copy to clipboard — paste into any app
Shareable link — QR encoded in URL
ZIP archive — for bulk generation
// customization
Dot styles — square, rounded, dots
Color themes — 6 presets + full custom
Logo overlay — upload any image
Error correction — L/M/Q/H (up to 30%)
// privacy
100% client-side — QR content never sent to a server
Keeps working offline — once the page has loaded
No account — no signup, ever
No tracking of your inputs — only a cookieless page-view count
How do I scan a QR code from a screenshot or image?
Drop the image on the scan area or click it to choose a file. The first QR code found in the image is decoded and its content shown with a type badge, ready to copy or open. If you get No QR code found, crop the image closer to the code or use a sharper photo. Uploaded images are read as dark modules on a light background, so for a light-on-dark code (white on black, or this site's green Terminal theme) hold the screen in front of the camera instead.
Can I scan a QR code with my laptop camera?
Yes. Press 📷 Start camera scan, allow camera access in your browser and hold the code in front of the webcam. Every frame is decoded live in your browser; the camera stops as soon as a code is read. Camera access needs a browser that supports it and your permission; on a phone the rear camera is chosen.
What does the scanner show for WiFi, contact or calendar codes?
It shows the raw content, so you can read a WiFi network name and password (WIFI:T:WPA;S:…;P:…;;) or a vCard's fields as text and copy them. URLs, email, phone and location codes get an ↗ open link button; WiFi and vCard codes are recognised by type but not applied to your device, and other content such as SMS, calendar events or crypto addresses is shown as Text.
Can I use this to check in tickets at an event?
Yes. The 🎟 Check-in tab scans continuously: a valid first scan flashes green with a beep, a ticket that was already used flashes red with a double buzz and the time of its first scan. Holding the same code in view is ignored for 2.5 seconds, so it is not counted twice. You get live valid, duplicate and total counters, a scan log and a CSV export. The session is saved in that browser and survives a reload; it is not shared between devices. Create the tickets with the bulk QR code generator.
Is the QR content or my camera feed uploaded?
No. Images and camera frames are decoded on your device with JavaScript, and neither the picture nor the decoded content is sent anywhere. The check-in log is kept in this browser's local storage until you press 🧹 Reset session.
What types of QR codes can I generate?
10 types: URL (any web link), plain text, WiFi (SSID + password + security, scans directly connect), Email (with pre-filled subject and body), SMS, Phone (click to call), vCard (full contact card — name, phone, email, org, title, address), GPS location (opens maps app), Calendar event (iCalendar format), and Cryptocurrency (Bitcoin, Ethereum, Litecoin, Monero).
How do I add a logo to my QR code?
In the ⚡ Generate tab, use logo overlay in the settings panel to upload an image (PNG, SVG, JPG …). It is drawn in the centre at about 22% of the code width, on a white rounded square. Uploading a logo switches error correction to H (also the default), so the code survives the covered centre. The logo is included in the PNG download and the copied image, but not in the SVG download or in bulk codes.
What is SVG export and why use it?
SVG (Scalable Vector Graphics) is a resolution-independent format. Unlike PNG which becomes blurry when enlarged, an SVG QR code scales perfectly to any size — ideal for business cards, posters, merchandise, presentations, and print materials. Click ↓ SVG in the download bar after generating.
How does bulk QR generation work?
Switch to the Bulk tab. Paste one URL or text per line. You can also use label,url CSV format to name each file. Click ⚡ Generate all — a QR code is created for each entry, black on white with square modules, at 256, 512 or 1024 px and the error correction level you pick. Preview them in the grid, then click Download ZIP to save all as a single archive.
How do I create a WiFi QR code?
Select the 📶 WiFi type. Enter your network name (SSID), password, and security type (WPA/WPA2 is most common). When a phone scans the QR code, it will automatically offer to connect to that network — no typing required.
What dot styles are available?
Three styles: Square (standard, maximum compatibility), Rounded (rounded modules) and Dots (circular modules). The style applies to every module, including the three corner finder patterns, and is kept in the SVG download. Square is the safest choice; test rounded or dots with a few phones before you print, and keep H error correction for the best reliability.
Can I create a vCard QR code to share my contact?
Yes. Select the 👤 vCard type and fill in any combination of name, phone, email, organization, job title, website, and address. When scanned, the phone offers to add the contact directly to the address book — no app required.
Do QR codes expire?
Static QR codes never expire. The data is baked into the pattern — there is no external service or server involved. Unlike dynamic QR codes from paid services, these work forever as long as the linked URL remains active.
Is my data sent to a server?
The content you encode is not sent to a server: QR generation, SVG export, bulk processing and scanning all run in your browser with JavaScript. The page loads its QR libraries (qrcodejs, jsQR and JSZip) from the cdnjs CDN and counts page views with cookieless Simple Analytics. Two things to know: your last six codes are kept in this browser's local storage for the recently generated list, and the address bar is updated to ?data=… with the encoded content, so it lands in your browser history and in any link you share.
Can I link directly to a generated QR code?
Yes. The generator reads a data URL parameter and the address bar stays in sync as you type, so you (or an AI assistant) can build a deep link by hand. Open ?data=https%3A%2F%2Fexample.com to load that QR pre-generated — a value starting with http opens as a URL QR, anything else as a text QR. The aliases url, text and content also work, and the share button copies the current link. Links carry at most the first 300 characters of the content, so a long text or vCard is cut off in a shared link. Older #hash links keep working too.
More free tools