QR code versions 1 to 40: grid sizes and how much data fits
A QR code's version is its grid size: version 1 is 21×21 modules, each version adds 4 modules per side, and version 40 is 177×177. You don't pick it. The encoder picks the smallest version that holds your content at the error-correction level you chose, so more data means a bigger version and smaller modules on the print.
- Version 1 (21×21) holds 20 capital letters and digits, or 14 bytes of ordinary text, at error correction M.
- Version 40 (177×177) holds up to 7,089 digits, 4,296 alphanumeric characters or 2,953 bytes, at error correction L.
- Grid width = 17 + 4 × version. 25×25 is version 2, 33×33 is version 4, 57×57 is version 10.
What decides the version
Three things: how much you encode, which characters it uses, and the error-correction level. The QR standard (ISO/IEC 18004) stores data in one of several modes. The encoder uses the densest mode your whole content allows:
| Mode | Characters | Version 1, M | Version 40, L |
|---|---|---|---|
| Numeric | Digits 0–9 only | 34 | 7,089 |
| Alphanumeric | 0–9, capital A–Z, space and $ % * + - . / : | 20 | 4,296 |
| Byte | Anything: lowercase, punctuation, any language (as UTF-8) | 14 | 2,953 |
One lowercase letter or a ? switches the whole content to byte mode, which needs about 45% more room per character than alphanumeric (8 bits instead of 5.5). There is also a kanji mode for Japanese text (up to 1,817 characters); Qex doesn't use it.
Error correction adds redundancy so a scratched, smudged or partly covered code still scans. Each level recovers a share of damaged data: L 7%, M 15%, Q 25%, H 30%. Higher levels leave less room for content. A logo in the middle of the code covers modules, so codes with a logo use H.
Real content measured: which version it needs
Each row is encoded with the same encoder Qex uses for every download, at M without a logo and H with one.
| Content | Characters | Mode | No logo (M) | Logo (H) |
|---|---|---|---|---|
| Qex short link in capitals | 20 | Alphanumeric | 1 (21×21) | 2 (25×25) |
| The same link in lowercase | 20 | Byte | 2 (25×25) | 3 (29×29) |
| Short link | 19 | Byte | 2 (25×25) | 3 (29×29) |
| Page link | 28 | Byte | 3 (29×29) | 4 (33×33) |
| Longer page link | 47 | Byte | 4 (33×33) | 6 (41×41) |
| Link with tracking tags | 64 | Byte | 5 (37×37) | 7 (45×45) |
| Shared form or document link | 91 | Byte | 6 (41×41) | 9 (53×53) |
| Wi-Fi network | 44 | Byte | 4 (33×33) | 5 (37×37) |
| Contact card (name, phone, email, company) | 134 | Byte | 8 (49×49) | 11 (61×61) |
The first two rows are the same link. In capitals, HTTPS://QEX.ME/AB3XK fits alphanumeric mode and version 1; in lowercase, https://qex.me/ab3xk needs byte mode and version 2. Every Qex dynamic code holds a short link like the first row, so without a logo it stays version 1 whatever the destination. The rest are static codes, where the pattern holds the whole content. See static vs dynamic QR codes.
All 40 versions: size and capacity
At error correction M, the level Qex uses for codes without a logo. The last column is the width of one module, in millimetres, when the whole code, including its four-module clear margin, is printed 30 mm wide.
| Version | Grid | Numeric | Alphanumeric | Byte | Module, mm |
|---|---|---|---|---|---|
| 1 | 21×21 | 34 | 20 | 14 | 1.03 |
| 2 | 25×25 | 63 | 38 | 26 | 0.91 |
| 3 | 29×29 | 101 | 61 | 42 | 0.81 |
| 4 | 33×33 | 149 | 90 | 62 | 0.73 |
| 5 | 37×37 | 202 | 122 | 84 | 0.67 |
| 6 | 41×41 | 255 | 154 | 106 | 0.61 |
| 7 | 45×45 | 293 | 178 | 122 | 0.57 |
| 8 | 49×49 | 365 | 221 | 152 | 0.53 |
| 9 | 53×53 | 432 | 262 | 180 | 0.49 |
| 10 | 57×57 | 513 | 311 | 213 | 0.46 |
| 11 | 61×61 | 604 | 366 | 251 | 0.43 |
| 12 | 65×65 | 691 | 419 | 287 | 0.41 |
| 13 | 69×69 | 796 | 483 | 331 | 0.39 |
| 14 | 73×73 | 871 | 528 | 362 | 0.37 |
| 15 | 77×77 | 991 | 600 | 412 | 0.35 |
| 16 | 81×81 | 1,082 | 656 | 450 | 0.34 |
| 17 | 85×85 | 1,212 | 734 | 504 | 0.32 |
| 18 | 89×89 | 1,346 | 816 | 560 | 0.31 |
| 19 | 93×93 | 1,500 | 909 | 624 | 0.30 |
| 20 | 97×97 | 1,600 | 970 | 666 | 0.29 |
| 21 | 101×101 | 1,708 | 1,035 | 711 | 0.28 |
| 22 | 105×105 | 1,872 | 1,134 | 779 | 0.27 |
| 23 | 109×109 | 2,059 | 1,248 | 857 | 0.26 |
| 24 | 113×113 | 2,188 | 1,326 | 911 | 0.25 |
| 25 | 117×117 | 2,395 | 1,451 | 997 | 0.24 |
| 26 | 121×121 | 2,544 | 1,542 | 1,059 | 0.23 |
| 27 | 125×125 | 2,701 | 1,637 | 1,125 | 0.23 |
| 28 | 129×129 | 2,857 | 1,732 | 1,190 | 0.22 |
| 29 | 133×133 | 3,035 | 1,839 | 1,264 | 0.21 |
| 30 | 137×137 | 3,289 | 1,994 | 1,370 | 0.21 |
| 31 | 141×141 | 3,486 | 2,113 | 1,452 | 0.20 |
| 32 | 145×145 | 3,693 | 2,238 | 1,538 | 0.20 |
| 33 | 149×149 | 3,909 | 2,369 | 1,628 | 0.19 |
| 34 | 153×153 | 4,134 | 2,506 | 1,722 | 0.19 |
| 35 | 157×157 | 4,343 | 2,632 | 1,809 | 0.18 |
| 36 | 161×161 | 4,588 | 2,780 | 1,911 | 0.18 |
| 37 | 165×165 | 4,775 | 2,894 | 1,989 | 0.17 |
| 38 | 169×169 | 5,039 | 3,054 | 2,099 | 0.17 |
| 39 | 173×173 | 5,313 | 3,220 | 2,213 | 0.17 |
| 40 | 177×177 | 5,596 | 3,391 | 2,331 | 0.16 |
Module widths are calculated, not tested minimums. To size a print, use the print-size comparison and the print checklist.
Capacity at each error-correction level
Bytes of text per version (byte mode). For links and text with lowercase letters, this is the column that applies.
| Version | L (7%) | M (15%) | Q (25%) | H (30%) |
|---|---|---|---|---|
| 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 |
Full tables for the other levels, every mode (level M is the table above):
Error correction L (7%): all 40 versions
| Version | Numeric | Alphanumeric | Byte |
|---|---|---|---|
| 1 | 41 | 25 | 17 |
| 2 | 77 | 47 | 32 |
| 3 | 127 | 77 | 53 |
| 4 | 187 | 114 | 78 |
| 5 | 255 | 154 | 106 |
| 6 | 322 | 195 | 134 |
| 7 | 370 | 224 | 154 |
| 8 | 461 | 279 | 192 |
| 9 | 552 | 335 | 230 |
| 10 | 652 | 395 | 271 |
| 11 | 772 | 468 | 321 |
| 12 | 883 | 535 | 367 |
| 13 | 1,022 | 619 | 425 |
| 14 | 1,101 | 667 | 458 |
| 15 | 1,250 | 758 | 520 |
| 16 | 1,408 | 854 | 586 |
| 17 | 1,548 | 938 | 644 |
| 18 | 1,725 | 1,046 | 718 |
| 19 | 1,903 | 1,153 | 792 |
| 20 | 2,061 | 1,249 | 858 |
| 21 | 2,232 | 1,352 | 929 |
| 22 | 2,409 | 1,460 | 1,003 |
| 23 | 2,620 | 1,588 | 1,091 |
| 24 | 2,812 | 1,704 | 1,171 |
| 25 | 3,057 | 1,853 | 1,273 |
| 26 | 3,283 | 1,990 | 1,367 |
| 27 | 3,517 | 2,132 | 1,465 |
| 28 | 3,669 | 2,223 | 1,528 |
| 29 | 3,909 | 2,369 | 1,628 |
| 30 | 4,158 | 2,520 | 1,732 |
| 31 | 4,417 | 2,677 | 1,840 |
| 32 | 4,686 | 2,840 | 1,952 |
| 33 | 4,965 | 3,009 | 2,068 |
| 34 | 5,253 | 3,183 | 2,188 |
| 35 | 5,529 | 3,351 | 2,303 |
| 36 | 5,836 | 3,537 | 2,431 |
| 37 | 6,153 | 3,729 | 2,563 |
| 38 | 6,479 | 3,927 | 2,699 |
| 39 | 6,743 | 4,087 | 2,809 |
| 40 | 7,089 | 4,296 | 2,953 |
Error correction Q (25%): all 40 versions
| Version | Numeric | Alphanumeric | Byte |
|---|---|---|---|
| 1 | 27 | 16 | 11 |
| 2 | 48 | 29 | 20 |
| 3 | 77 | 47 | 32 |
| 4 | 111 | 67 | 46 |
| 5 | 144 | 87 | 60 |
| 6 | 178 | 108 | 74 |
| 7 | 207 | 125 | 86 |
| 8 | 259 | 157 | 108 |
| 9 | 312 | 189 | 130 |
| 10 | 364 | 221 | 151 |
| 11 | 427 | 259 | 177 |
| 12 | 489 | 296 | 203 |
| 13 | 580 | 352 | 241 |
| 14 | 621 | 376 | 258 |
| 15 | 703 | 426 | 292 |
| 16 | 775 | 470 | 322 |
| 17 | 876 | 531 | 364 |
| 18 | 948 | 574 | 394 |
| 19 | 1,063 | 644 | 442 |
| 20 | 1,159 | 702 | 482 |
| 21 | 1,224 | 742 | 509 |
| 22 | 1,358 | 823 | 565 |
| 23 | 1,468 | 890 | 611 |
| 24 | 1,588 | 963 | 661 |
| 25 | 1,718 | 1,041 | 715 |
| 26 | 1,804 | 1,094 | 751 |
| 27 | 1,933 | 1,172 | 805 |
| 28 | 2,085 | 1,263 | 868 |
| 29 | 2,181 | 1,322 | 908 |
| 30 | 2,358 | 1,429 | 982 |
| 31 | 2,473 | 1,499 | 1,030 |
| 32 | 2,670 | 1,618 | 1,112 |
| 33 | 2,805 | 1,700 | 1,168 |
| 34 | 2,949 | 1,787 | 1,228 |
| 35 | 3,081 | 1,867 | 1,283 |
| 36 | 3,244 | 1,966 | 1,351 |
| 37 | 3,417 | 2,071 | 1,423 |
| 38 | 3,599 | 2,181 | 1,499 |
| 39 | 3,791 | 2,298 | 1,579 |
| 40 | 3,993 | 2,420 | 1,663 |
Error correction H (30%): all 40 versions
| Version | Numeric | Alphanumeric | Byte |
|---|---|---|---|
| 1 | 17 | 10 | 7 |
| 2 | 34 | 20 | 14 |
| 3 | 58 | 35 | 24 |
| 4 | 82 | 50 | 34 |
| 5 | 106 | 64 | 44 |
| 6 | 139 | 84 | 58 |
| 7 | 154 | 93 | 64 |
| 8 | 202 | 122 | 84 |
| 9 | 235 | 143 | 98 |
| 10 | 288 | 174 | 119 |
| 11 | 331 | 200 | 137 |
| 12 | 374 | 227 | 155 |
| 13 | 427 | 259 | 177 |
| 14 | 468 | 283 | 194 |
| 15 | 530 | 321 | 220 |
| 16 | 602 | 365 | 250 |
| 17 | 674 | 408 | 280 |
| 18 | 746 | 452 | 310 |
| 19 | 813 | 493 | 338 |
| 20 | 919 | 557 | 382 |
| 21 | 969 | 587 | 403 |
| 22 | 1,056 | 640 | 439 |
| 23 | 1,108 | 672 | 461 |
| 24 | 1,228 | 744 | 511 |
| 25 | 1,286 | 779 | 535 |
| 26 | 1,425 | 864 | 593 |
| 27 | 1,501 | 910 | 625 |
| 28 | 1,581 | 958 | 658 |
| 29 | 1,677 | 1,016 | 698 |
| 30 | 1,782 | 1,080 | 742 |
| 31 | 1,897 | 1,150 | 790 |
| 32 | 2,022 | 1,226 | 842 |
| 33 | 2,157 | 1,307 | 898 |
| 34 | 2,301 | 1,394 | 958 |
| 35 | 2,361 | 1,431 | 983 |
| 36 | 2,524 | 1,530 | 1,051 |
| 37 | 2,625 | 1,591 | 1,093 |
| 38 | 2,735 | 1,658 | 1,139 |
| 39 | 2,927 | 1,774 | 1,219 |
| 40 | 3,057 | 1,852 | 1,273 |
How to get a smaller version
- Encode a short link instead of the full address. A dynamic code holds a short redirect link, so a long destination with tracking tags still makes a small code. You can also change where it points after printing.
- Drop tracking tags such as
?utm_source=…from static links. In the table above they take the menu link from version 3 to version 5. - Write short links in capitals when the server accepts them. Domain names are not case-sensitive; paths often are, so test first.
- Skip the logo if size matters: it moves the code from M to H.
Why the smallest version is worth having: the smallest QR code, and how to print it.
Questions
What is the most data a QR code can hold?
Version 40 at error correction L: 7,089 digits, 4,296 alphanumeric characters or 2,953 bytes. A byte is one character of plain English text; accented letters take two bytes and emoji four. A code that dense needs a large print to scan.
What is a version 40 QR code?
The largest QR code: 177×177 modules, holding up to 2,953 bytes at error correction L or 2,331 at M. Grid width is 17 + 4 × version, so 177×177 is version 40, 21×21 is version 1 and 25×25 is version 2. Printed 30 mm wide, a version 40 module is 0.16 mm, so it needs a large print and a close, steady camera.
How many characters fit in a version 4 QR code?
Version 4 (33×33) holds up to 62 bytes of text at error correction M, 78 at L and 34 at H. Capital letters and digits go further: 90 at M, and exactly 50 even at H.
How much fits in a version 1 QR code?
At error correction M: 34 digits, 20 capital letters and digits, or 14 bytes. That is why Qex writes its short links in capitals: HTTPS://QEX.ME/AB3XK is 20 characters, exactly the alphanumeric limit.
Can I choose the version?
Some encoders let you force a larger version, but none can fit data into a smaller one. The encoder picks the smallest version that holds your content at your error-correction level. To get a smaller code, put less in it.
Free dynamic QR code · The smallest QR code · Static vs dynamic · QR code not scanning?