QR code generator
Type any text or URL to render a scannable QR code in the browser.
Rendered offline. Image is a data URI; right-click to save.
A QR Code Generator produces a qr code on demand, using a deterministic algorithm or a cryptographically strong random source. Output is generated entirely in your browser so nothing is sent to a server. Common for sharing Wi-Fi credentials, URLs and contact cards.
Type any text or URL to render a scannable QR code in the browser.
Rendered offline. Image is a data URI; right-click to save.
URL, vCard, WiFi, UPI, geo. 6 dot styles, custom colors, gradients, logo overlay. Download as PNG or SVG.
The QR Code Generator creates scannable QR codes for URLs, text, vCard contacts, WiFi credentials, email, and geographic locations. All processing happens in your browser - your data never leaves your device. Download the generated QR code as a PNG image.
URL, plain text, vCard, WiFi auto-connect, email, and geo coordinates.
QR codes can store up to ~4,296 alphanumeric characters. For best scanning, keep data under 500 characters.
A QR (Quick Response) code is a two-dimensional matrix barcode invented by Masahiro Hara at Denso Wave (a Toyota subsidiary) in 1994 to track auto parts. Denso Wave still holds the trademark on "QR Code" but waived all patent royalties, which is why every modern phone can scan one for free. The standard is ISO/IEC 18004:2015.
Every QR code contains four structural elements:
QR codes use Reed-Solomon error correction. You pick the level when generating:
| Level | Recovery | Best when | Capacity tradeoff |
|---|---|---|---|
| L (Low) | 7% | Clean printing, no logo, indoor display | Maximum capacity |
| M (Medium) | 15% | Standard print or screen, no logo | Default for most generators |
| Q (Quartile) | 25% | Some damage expected, small logo overlay | 20% less data than L |
| H (High) | 30% | Outdoor, weathered, with logo, or expected scratching | 40% less data than L |
Higher error correction means less data fits. Here is the maximum capacity at version 40 (the largest grid, 177x177 modules):
For a logo overlay, you almost always need level Q or H - the logo covers up to 25-30% of the modules. The error correction lets the scanner reconstruct the masked area.
QR codes come in 40 versions. Version 1 is 21x21 modules and stores up to 25 alphanumeric characters. Each version adds 4 modules per side, so version 40 is 177x177 modules and stores up to 4,296 alphanumeric characters. Most generators (this one included) auto-pick the smallest version that fits your data plus error correction.
| Format | Capacity | Patent / royalty | Best for |
|---|---|---|---|
| QR Code (ISO/IEC 18004) | 7,089 numeric / 4,296 alnum / 2,953 bytes | Free, open standard since 2000 | URL, vCard, WiFi, payments, tickets |
| Data Matrix (ISO/IEC 16022) | 3,116 numeric / 2,335 alnum | Free | Small parts marking, electronics, medical |
| Aztec (ISO/IEC 24778) | 3,832 numeric / 3,067 alnum | Free since 2008 | Transport tickets, boarding passes |
| PDF417 (ISO/IEC 15438) | 2,710 alnum (stacked) | Free | ID cards, shipping labels, US AAMVA driver licences |
QR codes are not signed or encrypted by default. The QR itself just encodes text - it's the consuming app that decides what to do with that text. Risks to be aware of:
Indefinitely if the encoded URL stays alive. The QR itself doesn't expire. For dynamic redirects (where the URL points to a tracker that forwards), the QR works as long as the redirect service stays online.
Only if you use a dynamic QR service that maps the QR to an editable redirect. Plain static QRs encode the destination directly, so reprinting is the only way to change it.
Most common reasons (in order): missing quiet zone, printed too small for the data density, low contrast, glossy reflection on the camera, or the logo overlay is too large for the error-correction level. Lower your data density (shorter URL) or raise the error-correction level.
Yes - the data is encoded in the image itself. Scanning works offline. The action the scanner takes (opening a URL, joining WiFi, etc.) may require connectivity, but decoding doesn't.
Yes - 4,296 alphanumeric characters at error level L, but practical scanning starts to fail above ~500 characters because the modules get tiny on a phone screen. Use a URL shortener if your destination is long.
The QR is just text. It cannot execute code. The risk is what happens after scanning - a malicious URL inside the QR may lead to a drive-by download or phishing page. Always preview the URL before opening.