QR Code Capacity Reference: Versions, Modes, and Character Limits

March 30, 2026

How much data can a QR code hold? The answer depends on three variables: the version (size of the code), the encoding mode (type of data), and the error correction level (redundancy). The tables below cover all 40 versions across all 4 modes and 4 error correction levels, drawn from ISO/IEC 18004:2015 -- the international standard that defines QR code structure and encoding.

Versions and module counts

QR code "versions" refer to symbol sizes, not software versions. Version 1 is 21×21 modules; each step adds 4 modules per side. Version 40 is 177×177 modules. The formula is: modules per side = 4 × version + 17.

Version Size (modules) Total modules Max data (bytes, EC L)
121 × 2144119
225 × 2562534
329 × 2984155
433 × 331,08980
537 × 371,369108
745 × 452,025154
1057 × 573,249271
1577 × 775,929520
2097 × 979,409858
25117 × 11713,6891,273
30137 × 13718,7691,732
35157 × 15724,6492,303
40177 × 17731,3292,953

Not all modules store data. Finder patterns, timing patterns, format information, version information (v7+), and alignment patterns (v2+) occupy fixed regions. The remaining modules carry interleaved data codewords and Reed-Solomon error correction codewords.

Encoding modes

The encoder automatically picks the most efficient mode for your input. Numeric is most efficient; byte is the fallback for general text. Understanding the modes explains why a number-only string produces a simpler QR code than the same length of mixed characters.

Mode Character set Bits per char Notes
Numeric 0–9 only 3.33 avg (groups of 3 digits in 10 bits) ~3x more efficient than byte mode
Alphanumeric 0–9, A–Z (uppercase only), space, $ % * + - . / : 5.5 avg (pairs of chars in 11 bits) ~1.8x more efficient than byte; lowercase letters are NOT included
Byte ISO 8859-1; in practice UTF-8 is widely accepted 8 (one byte per character) Baseline; multi-byte UTF-8 chars (emoji, CJK) consume 2–4 bytes each
Kanji Shift JIS double-byte characters 13 per Shift JIS character ~1.2x more efficient than byte for Japanese/CJK content
Why uppercase URLs produce smaller QR codes: A URL containing only digits, uppercase letters, and $%*+-./:  qualifies for alphanumeric mode (~1.8x more efficient than byte). Lowercase forces byte mode. This is why some URL shorteners use all-caps slugs -- it visibly reduces QR code complexity.

Capacity tables

Maximum characters per version, error correction level, and encoding mode. Source: ISO/IEC 18004:2015, Table 1.

L — up to 7% recovery M — up to 15% recovery Q — up to 25% recovery H — up to 30% recovery
VerLMQH
141342717
277634834
31271017758
418714911182
5255202144106
6322255178139
7370293207154
8461365259202
9552432312235
10652513364288
11772604427331
12883691489374
131022796580427
141101871621468
151250991703530
1614081082775602
1715481212876674
1817251346948746
19190315001063813
20206116001159919
21223217081224969
222409187213581056
232620205914681108
242812218815881228
253057239517181286
263283254418041425
273514270119331501
283669285720851581
293909303521811677
304158328923581782
314417348624731897
324686369326702022
334965390928052157
345253413429492301
355529434330812361
365836458832442524
376153477534172625
386479503935992735
396743531337912927
407089559639933057

Numeric mode: digits 0–9 only.

VerLMQH
125201610
247382920
377614735
4114906750
51541228764
619515410884
722417812593
8279221157122
9335262189154
10395311221174
11468366259200
12535419296227
13619483352259
14667528376283
15758600426321
16854656470365
17938734531408
181046816574452
191153909644493
201249970702557
2113521035742587
2214601134823640
2315881248890672
2417041326963744
25185314511041779
26199015421094864
27213216371172910
28222317321263958
292369183913221016
302520199414291080
312677211314991150
322840223816181226
333009236917001307
343183250617871394
353351263218671431
363537278019661530
373729289420711591
383927305421811658
394087322022981774
404296339124201852

Alphanumeric mode: 0–9, A–Z (uppercase only), $%*+-./: and space.

VerLMQH
11714117
232262014
353423224
478624634
5106846044
61341067458
71541228664
819215210884
923018013098
10271213151119
11321251177137
12367287203155
13425331241177
14458362258194
15520412292220
16586450322250
17644504364280
18718560394310
19792624442338
20858666482382
21929711509403
221003779565439
231091857611461
241171911661511
251273997715535
2613671059751593
2714651125805625
2815281190868658
2916281264908698
3017321370982742
31184014521030790
32195215381112842
33206816281168898
34218817221228958
35230318091283983
362431191113511051
372563198914231093
382699209914991139
392809221315791219
402953233116631273

Byte mode: ISO 8859-1 / UTF-8. Multi-byte UTF-8 characters (emoji, most CJK) consume 2–4 bytes each.

VerLMQH
110874
22016128
332262015
448382821
565523727
682654536
795755339
8118936652
91411118060
101671319374
1119815510985
1222617712596
13262204149109
14282223159120
15320254180136
16361277198154
17397310224173
18442345243191
19488384272208
20528410297235
21572438314248
22618480348270
23672528376284
24721561407315
25784614440330
26842652462365
27902692496385
28940732534405
291002778559430
301066843604457
311132894634486
321201947684518
3312731002719553
3413471060756590
3514171113790605
3614961176832647
3715771224876673
3816611292923701
3917291362972750
40181714351024784

Kanji mode: Shift JIS double-byte characters.

Symbol structure

A QR code is not just data modules. Fixed structural regions occupy space in every symbol and are not available for data. Here is what every QR code contains:

RegionLocation / sizePurpose
Finder patterns Three 7×7 squares at top-left, top-right, bottom-left corners Allow scanners to locate and orient the symbol at any rotation and viewing angle
Separators 1-module white border around each finder pattern Isolate finder patterns from adjacent data modules
Timing patterns Alternating black/white row and column connecting the finder patterns Establish a coordinate grid; help scanners compensate for distortion
Alignment patterns 5×5 squares at calculated positions; version 1 has none, version 40 has 46 centers Correct for image distortion in larger symbols; count grows with version
Format information Two copies of 15-bit sequence adjacent to finder patterns Encodes error correction level and mask pattern; always decodable even when data is damaged
Version information Two copies of 18-bit sequence (versions 7–40 only) Encodes the version number
Dark module One always-dark module at position (row 4 version+9, column 8) Required by spec; always set to 1
Data + EC modules All remaining modules Interleaved data codewords and Reed-Solomon error correction codewords
Quiet zone Minimum 4-module white margin outside the symbol boundary Required by ISO/IEC 18004; separates the code from surrounding graphics for reliable detection

How version is chosen

Version is not a user setting -- it is computed by the encoder as the minimum that fits the data. The process:

  1. Identify the most compact encoding mode the input qualifies for (numeric > alphanumeric > byte, or kanji for Shift JIS content).
  2. Compute the total bit count: mode indicator (4 bits) + character count indicator (variable by version and mode) + encoded data bits + terminator bits.
  3. Find the lowest version where available data codeword capacity ≥ required bit count ÷ 8, at the chosen EC level.
  4. Apply one of eight data masks to optimize module distribution, reducing long runs of same-color modules that confuse scanners.

This means shorter data always produces a smaller, simpler QR code. A 20-character URL and a 20-character URL with an extra path segment are not the same size code.

Minimum case: Version 1 at EC L holds 17 bytes in byte mode. A URL like https://example.com (19 bytes) already requires version 2 at EC L, or version 3 at EC M.

Practical limits

The table maximums assume single-mode encoding. In practice, most URLs trigger byte mode (lowercase letters, slashes, query strings). Practical version ranges for common data:

The real constraint at high versions is physical print size, not the spec limit. Each module in a version 10 code printed at 1 inch (25.4mm) is ~0.44mm. Scanners start struggling below 0.25mm per module. The reliable floor is approximately 1 module = 0.5mm, which sets a minimum print size of about 2.5cm (1 inch) for a version 10 code. Version 40 at that floor requires roughly 9cm (3.5 inches).

For print sizing guidance: QR Code Sizes: What Resolution Do You Need?

Standard reference

All capacity data on this page is from ISO/IEC 18004:2015Information technology. Automatic identification and data capture techniques. QR Code bar code symbology specification (second edition). The capacity figures appear in Table 1 (Character capacities of QR Code symbols). Alignment pattern positions are in Table 9.

The standard is maintained by ISO Technical Committee 1, Subcommittee 31 (TC1/SC31). QR code was developed by Denso Wave in 1994; first standardized as ISO/IEC 18004:2000. Denso Wave holds the patent but has chosen not to enforce it, which is why QR codes are freely implementable by anyone.