QR Code Generator
Max 4 KB · Updates automatically as you type
A QR code (Quick Response code) is a two-dimensional barcode that encodes text as a grid of black-and-white squares, readable by any phone camera. Unlike a traditional 1D barcode, which only holds a short numeric identifier, a QR code can hold up to a few thousand characters directly — a full URL, a WiFi network’s credentials, or a short note — with no lookup database required on the scanning end. This tool generates one entirely in your browser: type or paste content, and a live preview updates automatically.
Error correction is what makes a QR code readable even when part of it is dirty, creased, or partially obscured (a logo placed over the center, for example). It works by encoding your content with extra redundant data using Reed-Solomon error correction — the same family of error-correcting code used in CDs and DVDs — so a scanner can reconstruct the original content even if some modules are unreadable. Four standard levels trade recovery capacity against code density: Low (~7% of the code can be damaged and still scan) fits the most content into the smallest, least-dense grid; Medium (~15%) is a reasonable default for most uses; Quartile (~25%) suits printed material that gets handled often; High (~30%) is the most damage-tolerant but produces the densest grid, which is harder for a camera to resolve at small print sizes — reserve it for content likely to get scuffed, or codes with a logo overlaid on top. Higher error correction also means a QR code can hold less of your actual content at a given size, since more of its capacity goes to redundancy.
Size and margin control the generated image’s dimensions, not the amount of content it can hold. Size sets the final pixel width and height of both the PNG and SVG output. Margin sets the width of the “quiet zone” — the blank border required around every QR code’s edge for a scanner to reliably detect where the code starts; most QR readers need at least a small quiet zone to lock onto the code at all, so this tool defaults to the same 4-module margin most QR generators use, but it can be adjusted if a design needs a tighter or wider border.
PNG vs. SVG output. PNG is a fixed-resolution raster image — straightforward to paste into a document, slide, or chat message, but it loses sharpness if scaled up beyond its generated resolution. SVG is vector output: mathematically defined shapes rather than a pixel grid, so it scales to any size — a phone screen or a building-sized banner — with zero loss of sharpness, and opens natively in design and print software. This tool generates both from the same input, so you can preview once and download whichever format the destination actually needs.
Examples
- A URL to a landing page or portfolio — paste the address, keep the default Medium error correction, and download the SVG for a poster or business card where it needs to scale cleanly to any print size. Run it through <a href="/tools/url-parser">URL Parser</a> first if you need to confirm the URL is well-formed before encoding it.
- A WiFi network for guests — <code>WIFI:T:WPA;S:MyNetwork;P:MyPassword123;;</code> lets a phone camera app join the network directly on scan, without anyone typing the password by hand. If the network name or password contains special characters, run it through <a href="/tools/url-encode-decode">URL Encode/Decode</a> first to confirm how those characters need escaping.
- A plain-text note — a short message, a one-time code, or event details for a physical sign or flyer. Keep it under a couple hundred characters and a lower error correction level (Low or Medium) for the most reliably scannable code at a small printed size.
Frequently asked questions
Why is my QR code not scanning?
PNG or SVG — which should I download?
What's the actual capacity limit for a QR code?
Can I encode a WiFi network or a vCard, not just a URL?
WIFI:T:WPA;S:NetworkName;P:Password;; (T is the security type — WPA, WEP, or nopass for an open network); most phone camera apps recognize this and offer to join the network directly. A vCard uses the BEGIN:VCARD/END:VCARD format for a scannable contact card. Paste either format directly into the input above — this tool encodes exactly what you type, with no format-specific validation.