QR Code Generator
Free QR code generator for Wi-Fi, vCard, URLs, email, SMS and text. Spec-correct payloads, a logo that still scans, PNG and SVG export.
Content type
Opens a web address. The most scanned type by far — menus, landing pages, reviews.
Pick a scenario above, or enter your own content, to generate a QR code.
Error-correction levels, and which survive a logo
Recovery rates are DENSO WAVE's published figures, stated as a share of total codewords rather than of the symbol's area. The logo column is our own decode result, measured with an independent decoder across ten payload lengths: Low failed at every logo size we offer, Medium failed for short payloads, Quartile held to a 25% plate and High held throughout. Max bytes is the version-40 byte-mode capacity.
| Level | Recovery | Bytes | With logo |
|---|---|---|---|
| L · Low | 7% | 2,953 | No |
| M · Medium | 15% | 2,331 | No |
| Q · Quartile | 25% | 1,663 | To 25% |
| H · High | 30% | 1,273 | Best |
Symbol size and byte capacity
Byte-mode capacity for all 40 symbol versions, measured against the encoder this page uses. Modules per side follow M = 4v + 17, so version 1 is 21×21 and version 40 is 177×177.
| v | L | M | Q | H |
|---|---|---|---|---|
| 1 | 17 | 14 | 11 | 7 |
| 2 | 32 | 26 | 20 | 14 |
| 3 | 53 | 42 | 32 | 24 |
| 4 | 78 | 62 | 46 | 34 |
| 5 | 106 | 84 | 60 | 44 |
| 6 | 134 | 106 | 74 | 58 |
| 7 | 154 | 122 | 86 | 64 |
| 8 | 192 | 152 | 108 | 84 |
| 9 | 230 | 180 | 130 | 98 |
| 10 | 271 | 213 | 151 | 119 |
| 11 | 321 | 251 | 177 | 137 |
| 12 | 367 | 287 | 203 | 155 |
| 13 | 425 | 331 | 241 | 177 |
| 14 | 458 | 362 | 258 | 194 |
| 15 | 520 | 412 | 292 | 220 |
| 16 | 586 | 450 | 322 | 250 |
| 17 | 644 | 504 | 364 | 280 |
| 18 | 718 | 560 | 394 | 310 |
| 19 | 792 | 624 | 442 | 338 |
| 20 | 858 | 666 | 482 | 382 |
| 21 | 929 | 711 | 509 | 403 |
| 22 | 1,003 | 779 | 565 | 439 |
| 23 | 1,091 | 857 | 611 | 461 |
| 24 | 1,171 | 911 | 661 | 511 |
| 25 | 1,273 | 997 | 715 | 535 |
| 26 | 1,367 | 1,059 | 751 | 593 |
| 27 | 1,465 | 1,125 | 805 | 625 |
| 28 | 1,528 | 1,190 | 868 | 658 |
| 29 | 1,628 | 1,264 | 908 | 698 |
| 30 | 1,732 | 1,370 | 982 | 742 |
| 31 | 1,840 | 1,452 | 1,030 | 790 |
| 32 | 1,952 | 1,538 | 1,112 | 842 |
| 33 | 2,068 | 1,628 | 1,168 | 898 |
| 34 | 2,188 | 1,722 | 1,228 | 958 |
| 35 | 2,303 | 1,809 | 1,283 | 983 |
| 36 | 2,431 | 1,911 | 1,351 | 1,051 |
| 37 | 2,563 | 1,989 | 1,423 | 1,093 |
| 38 | 2,699 | 2,099 | 1,499 | 1,139 |
| 39 | 2,809 | 2,213 | 1,579 | 1,219 |
| 40 | 2,953 | 2,331 | 1,663 | 1,273 |
What each content type actually encodes
The payload is plain text; the scanner decides what to do with it from the prefix. These are the shapes readers expect.
| Type | Payload | Defined by |
|---|---|---|
| URL / Link | https://example.com | RFC 3986 |
| Wi-Fi | WIFI:T:WPA;S:ssid;P:pass;; | ZXing Wi-Fi format |
| Contact | BEGIN:VCARD VERSION:3.0 N:… FN:… END:VCARD | RFC 2426 |
| mailto:a@b.com?subject=… | RFC 6068 | |
| SMS | SMSTO:+15551234567:text | ZXing SMSTO |
| Phone | tel:+15551234567 | RFC 3966 |
| Plain text | the characters, as UTF-8 | ISO/IEC 18004 byte mode |
Related Calculators
You might also find these calculators useful
Binary & ASCII Translator
Text to binary, hex, decimal or octal — and back, in real UTF-8
SHA-256 & MD5 Hash Generator
Generate and verify SHA-256, MD5, SHA-1, SHA-512 and SHA-3 digests
UUID & GUID Generator
Generate UUID v4, v6, v7, ULID and NanoID in bulk — or decode one.
Password Strength Calculator
Guess resistance, crack time and NIST 800-63B rev 4 checks
Free QR Code Generator
Turn a Wi-Fi network, contact card, link, email, SMS or plain text into a scannable QR code in seconds. Everything runs in your browser — no account, no watermark, no tracking redirect — and every code is static, so it keeps working long after this page is gone. The two things most generators get wrong are the payload and the logo, and this page fixes both: payloads follow the specification each scanner expects, and a centre logo is only offered at error-correction levels that survived an actual decode test.
What Is a QR Code?
A QR (Quick Response) code is a two-dimensional barcode that stores data in a grid of light and dark squares called modules. The three large squares at the corners are finder patterns, which let a scanner locate and orient the symbol from any angle; the alternating line between them is the timing pattern, which tells the scanner how wide one module is. Symbol sizes are numbered by version, from version 1 at 21×21 modules to version 40 at 177×177, and each step adds four modules per side — so the module count is always 4v + 17. Around all of it sits a quiet zone of four blank modules, which ISO/IEC 18004 requires; without it a valid code can fail to scan against a busy background. Part of every symbol is Reed-Solomon error-correction data, which is why a QR code still reads when it is scratched, creased or partly covered.
Modules per side, by version
M = 4v + 17 · v1 = 21×21 · v40 = 177×177 · quiet zone = 4 modulesHow to Make a QR Code
Pick a scenario — restaurant menu, guest Wi-Fi, business card, event badge, phone or SMS — or choose a content type and start from scratch.
Fill in the details: the link to encode, or your network name and password, or the contact's name and number.
Check the payload panel below the preview to confirm the code encodes what you expect.
Optionally set foreground and background colors, keeping the foreground darker — light-on-dark scans poorly on many readers.
To add a logo, upload it and pick a width. Error correction jumps to High automatically, and levels that failed our decode tests stay hidden.
Scan the live preview with your own phone. This is the only test that counts, and it takes five seconds.
Download a PNG for screens or an SVG for print — the vector stays sharp at poster and packaging size.
Popular Ways to Use QR Codes
Guest Wi-Fi on a card
Print a Wi-Fi QR for the kitchen, the Airbnb welcome book or the café counter, and guests join by scanning instead of typing a password nobody can read out loud.
Restaurant and bar menus
Link diners straight to a digital menu or ordering page. Keep the code static so reprinting the table tents is never forced by a subscription lapsing.
Business cards and email signatures
A vCard code saves name, organization, phone, email and website in one scan — no app, no typing, and no transcription errors.
Event badges and check-in
Badges get handled, bent and pocketed, so use High error correction. The extra recovery is what keeps a creased badge readable at the door.
Product packaging and labels
Send buyers to setup guides, registration or reviews from the box. Print at a size where one module is at least 0.4 mm and keep the quiet zone clear.
Posters with a phone number
A tel: code dials without anyone copying digits off a wall. Write the number in international format so it works for visitors from anywhere.
Why Use Our QR Code Generator?
Static, and genuinely free
The data lives in the pattern itself, so there is no redirect to expire, no dashboard to log into, and no scan limit. Codes you print today still work in ten years. Commercial use is fine, with no attribution required.
Payloads that follow the spec
A Wi-Fi code whose SSID looks like hexadecimal is quoted, so a reader cannot decode it as raw bytes and join the wrong network. A contact card always carries the FN display name that vCard 3.0 requires, and its lines end in CRLF as the RFC specifies. Small details, but they are the difference between a card that imports and one that does not.
A logo that still scans
Error-correction levels that failed a decode test with a centre logo are withheld, not merely warned about. The readout shows the plate width in modules — the logo plus the bleed ring that actually covers the code — instead of the logo size alone, which is the figure most generators quietly under-report.
It shows you the payload
The exact string a scanner will receive is printed below the preview. If a Wi-Fi code is not connecting or a contact is importing without a name, you can see why instead of guessing.
Seven content types, side by side
URL, Wi-Fi, contact card, email, SMS, phone and plain text — all visible at once, not buried in a dropdown, and each with its own fields and its own defining specification.
Private by design
Generation happens entirely in your browser. Your Wi-Fi password, contact details and links never touch a server, so there is nothing to leak and nothing to store.
QR Code Generator FAQ
No. Every code here is static, meaning the data is encoded directly into the pattern. There is no redirect and no hosted link to expire, so the code works for as long as whatever it points to does.
Yes. Use them on products, menus, flyers, packaging and any commercial material at no cost and with no attribution required. QR Code is a registered trademark of DENSO WAVE, but the symbology itself is an open ISO standard that anyone may implement.
Choose Wi-Fi, type your network name and password, and pick the encryption your router uses — WPA/WPA2 for almost every modern network. The code encodes a string of the form WIFI:T:WPA;S:yournetwork;P:yourpassword;; and phones recognise it as a join request. If your network is hidden, turn on the hidden switch so the phone knows to search for it rather than expecting it in the list.
Because it is made only of hexadecimal characters, such as ABCD or 1234ABCD. The Wi-Fi QR format allows an SSID to be given as raw hex, so a name that looks like hex is ambiguous — a reader may decode ABCD as two bytes instead of four letters and then fail to find your network. Quoting removes the ambiguity, and we add the quotes for you.
Yes, and you can set its width. What matters is not the logo but the plate: the renderer paints the logo plus a one-module bleed ring so the image does not sit flush against live modules, and it is that plate which covers the code. We decoded symbols across ten payload lengths at every error-correction level with a logo in place. Low failed at every logo size we offer, Medium failed for short payloads, Quartile held to a 25% plate and High held throughout — so with a logo present only Quartile and High are offered.
Because it is not one. DENSO WAVE define the recovery rate as a share of total codewords, and Reed-Solomon correction is applied per interleaved block. A logo is a single contiguous blot, so its damage concentrates in a few blocks and can exhaust one block's budget while the overall percentage still looks small. That is why a 7% logo can defeat Low's 7% recovery, and why safe logo size is not a simple function of payload length.
Medium for anything on a screen or clean paper. High when you add a logo, or when the code will be printed on something that gets handled, folded or wet — badges, packaging, outdoor signage. Higher correction spends capacity on recovery data, so the same content needs a larger symbol: at version 40 the byte capacity falls from 2,953 at Low to 1,273 at High.
In order of how often it happens: the quiet zone has been cropped away, the contrast is too low or inverted, the printed modules are too small, or a logo covers more than the error correction can absorb. This page checks contrast, inversion and logo coverage as you design, and shows the plate width so nothing is hidden — but printing at a sensible size and leaving the four-module margin intact is on you.
Scan distance drives it. A common working rule is that the symbol should be about one tenth of the intended scanning distance, and that one module should not fall below roughly 0.4 mm in print. A denser symbol means smaller modules at the same overall size, so shortening the URL is often more effective than enlarging the code.
A static code stores the data itself: it cannot be edited after printing, but it never expires and nobody sits between the scanner and the destination. A dynamic code stores a short redirect URL owned by a vendor, which can be re-pointed later and can count scans — at the cost of a subscription, and of the code dying if that vendor does. Everything generated here is static.
It is never sent anywhere by this page — the code is built entirely in your browser. But the code itself contains the password in plain text, exactly as the Wi-Fi QR format requires, so anyone who scans or photographs it can read it. Treat a printed Wi-Fi code like a written-down password: fine on a guest network, not for the one your files live on.
PNG for websites, apps, slides and social media, where a fixed pixel size is what you need. SVG for anything printed — it is vector, so it stays perfectly sharp whether it ends up on a business card or a billboard, and a printer can scale it without you regenerating anything.
vCard 3.0 requires a display name: RFC 2426 states that the VERSION, N and FN properties must be specified. A card without FN can import as a nameless contact or be rejected outright, so this page asks for a name — or an organization, which is used as the display name for a company card.
At the largest symbol, version 40, the limits are 2,953 bytes at Low, 2,331 at Medium, 1,663 at Quartile and 1,273 at High. In practice you want to be far below that: a 2,000-character payload produces a dense 149-module symbol that needs a big, clean print to read. Keep URLs short and put long content behind a link rather than inside the code.