QR Code Generator
Turn a link or any text into a scannable QR code and download it as a clean vector SVG.
Last updated
Encoded in your browser — nothing is uploaded.
Your QR code
- QR version
- 2 of 40
- Grid
- 25 × 25 modules
- Characters encoded
- 21
- Damage tolerance
- ~15%
The white margin around the symbol is the quiet zone — four modules wide, required by the spec, and the most common reason a printed code refuses to scan. It is included in the download, so do not crop it.
The short answer
How much data can a QR code hold?
A QR symbol holds up to 2,953 bytes at its largest size, version 40, with the lowest error correction. Version 40 is a 177 by 177 grid of modules; version 1 is 21 by 21 and holds only a few dozen characters. Raise error correction to level H and that same version 40 symbol carries just 1,273 bytes.
The useful limit is far below the maximum, because a dense high-version symbol needs a sharper camera and a closer stand than people actually give it.
How to use the qr code generator
Type or paste whatever you want encoded — a URL, a phone number, a Wi-Fi string, a line of plain text — and the code redraws as you type. Set the download size, pick an error-correction level, and press Download SVG. The encoding happens in your browser, so nothing you type is uploaded, which matters given how often these carry a private link or a network password. The download is a vector SVG rather than a pixel image, which is the right format for anything headed to print: vectors have no resolution, so the same file is crisp on a business card and crisp on a banner, with no blur or jagged edges when someone scales it up. If a printer insists on a raster file, export the SVG at the final print size rather than blowing up a small PNG.
A QR symbol is a square grid of modules, and the tool picks the smallest grid your data fits into — that is the version it reports, somewhere between 1 and 40. More data means a higher version, which means more modules squeezed into the same printed square, which means a camera has to resolve finer detail from the same distance. That is the single trade-off worth understanding, and it is why shortening the payload is the highest-value edit you can make. Swapping a 104-character URL full of tracking parameters for a 21-character short link takes the symbol from version 6 down to version 2 at the default error-correction level, dropping the grid from 41 modules across to 25 and making every module almost two-thirds wider at the same printed size.
Error correction is the other lever, and it works in the opposite direction. The standard defines four levels — L, M, Q, and H — which recover roughly 7, 15, 25, and 30 percent of a damaged symbol respectively, using Reed-Solomon coding. That recovery is not free: it is paid for out of the same capacity your text uses, so at a given version a higher level holds less. The largest symbol, version 40, holds 2,953 bytes at level L and only 1,273 at level H. Level M is the sensible default for clean print such as flyers, menus, packaging, and business cards. Move up to Q or H for outdoor signage, small industrial labels, surfaces that get scuffed, or any code with a logo dropped into the middle of it.
The white margin around the symbol is the quiet zone — four modules wide, required by the standard, and the most common reason a printed code refuses to scan. It is part of the downloaded file, so do not crop it, and do not let a design place text or artwork inside it. Keep the code dark on light with real contrast too: inverted codes and low-contrast pastels confuse many scanners, and a code printed over a photograph is a coin flip. Then test before you commit. Scan the finished artwork with two or three different phones, from the distance people will actually stand at, in the lighting the code will live in — a poster in a dim corridor is a different problem from a menu on a table. Finding out at proof stage costs nothing; finding out after a print run costs the print run.
What a payload costs you in symbol size: the version and module grid this tool settles on for a range of typical payloads, at each of the four error-correction levels.
| What you are encoding | Characters | L (~7% recovery) | M (~15%) | Q (~25%) | H (~30%) |
|---|---|---|---|---|---|
| Phone number | 12 | 1 (21×21) | 1 (21×21) | 2 (25×25) | 2 (25×25) |
| Short domain, no path | 21 | 2 (25×25) | 2 (25×25) | 3 (29×29) | 3 (29×29) |
| Wi-Fi credential string | 41 | 3 (29×29) | 3 (29×29) | 4 (33×33) | 5 (37×37) |
| Tidy page URL | 45 | 3 (29×29) | 4 (33×33) | 4 (33×33) | 6 (41×41) |
| Short link with a path | 60 | 4 (33×33) | 4 (33×33) | 5 (37×37) | 7 (45×45) |
| Ordinary campaign URL | 80 | 5 (37×37) | 5 (37×37) | 7 (45×45) | 8 (49×49) |
| URL with tracking parameters | 104 | 5 (37×37) | 6 (41×41) | 8 (49×49) | 10 (57×57) |
| Short paragraph of text | 150 | 7 (45×45) | 8 (49×49) | 10 (57×57) | 12 (65×65) |
| Contact details block | 200 | 9 (53×53) | 10 (57×57) | 12 (65×65) | 15 (77×77) |
| Long contact block | 300 | 11 (61×61) | 13 (69×69) | 16 (81×81) | 18 (89×89) |
| Half a page of text | 500 | 15 (77×77) | 17 (85×85) | 21 (101×101) | 24 (113×113) |
| A full page of text | 1,000 | 22 (105×105) | 26 (121×121) | 31 (141×141) | 36 (161×161) |
| Two pages of text | 2,000 | 33 (149×149) | 38 (169×169) | Will not fit | Will not fit |
The formula
There is nothing to calculate on your side — the tool picks the smallest symbol your data fits into and reports which one it landed on. But the grid it chooses follows one fixed rule, and knowing that rule is what turns the version number in the results from trivia into a design decision.
Every version from 1 to 40 adds four modules to each side of the square, so the symbol grows in fixed steps rather than smoothly. That is why a payload can sit comfortably for several extra characters and then suddenly jump a version: you are not paying for data continuously, you are paying in whole grid steps, and each step makes every module smaller at the same printed size.
modules per side = 4 × version + 17
version 1 = 21 × 21 modules · version 40 = 177 × 177 modules
downloaded symbol = the grid plus a 4-module quiet zone on every side
minimum printed width ≈ scanning distance ÷ 10Worked example with the sample the tool opens on. The short URL it loads is 21 characters, and at the default error-correction level M it fits into a version 2 symbol: 4 × 2 + 17 = 25, so a 25 × 25 grid. Add the four-module quiet zone on each side and the downloaded SVG spans 25 + 8 = 33 modules across. Switch that same URL to level H and it needs version 3, a 29 × 29 grid, purely to carry the extra recovery data — 41 modules across once the quiet zone is added, a symbol roughly a quarter wider in module terms for exactly the same 21 characters of payload.
The capacity trade-off is the same story at the other end of the scale. Version 40, the largest symbol the standard defines at 177 × 177 modules, holds 2,953 bytes at level L and only 1,273 bytes at level H — the higher level survives more damage precisely because it spends more than half the capacity on recovery data. In the middle of the range the effect is just as visible: a 104-character URL with tracking parameters needs version 6 at level M but version 10 at level H, jumping from a 41 × 41 grid to 57 × 57. The fix for a code that will not fit is almost always to shorten the destination, not to drop the error correction to squeeze it in.
Print size follows from the module count. The common rule of thumb is 10:1 — the symbol should be at least a tenth as wide as the distance people will scan it from, so a code read at arm's length of about 30 cm wants roughly 3 cm across, and a poster read from 2 metres wants about 20 cm. That rule assumes a modest version. A dense version 20 symbol packs 97 modules into the same square that a version 2 code fills with 25, so each module is under a third the width and the code needs proportionally more size, better light, or a closer stand. Add 20 to 50 percent for dim lighting, glossy stock, or curved packaging, and treat 2 × 2 cm as an absolute floor for anything handheld.
Frequently asked questions
Related guides
How Are Loan Payments Calculated? Amortization, Explained
One level payment, front-loaded interest — the formula worked by hand, the two levers you control, and why the smaller payment is often the costlier loan.
July 23, 2026 · 13 min read
How Does Inflation Work? The Math That Shrinks Money
One growth factor, two answers — what today's money will buy later, and how many future dollars it takes to keep up.
July 23, 2026 · 13 min read
How Is Sales Tax Calculated? Rates, Rules, and the Reverse Math
The combined-rate reality, the one-multiplication forward formula, and the division that pulls the tax back out of any total.
July 23, 2026 · 13 min read