Skip to content

Encoding & Structure

What is QR Code Version?

By Codexengr, QR Systems Engineer · Last reviewed: 2026-10-19

The size class of a QR code symbol, numbered 1 to 40, where each step adds 4 modules per side — Version 1 is 21×21 modules and Version 40 is 177×177.

Every QR code belongs to one of 40 versions, and the version number is simply a size class. Version 1 is the smallest symbol at 21×21 modules; each successive version adds 4 modules to each side, so Version 2 is 25×25, Version 3 is 29×29, and the largest, Version 40, is 177×177. The relationship is exact and linear: a Version V symbol measures 21 + 4(V − 1) modules per side. This is the first number a generator decides (usually automatically) once it knows your data length and error correction level.

Version determines data capacity

Data capacity grows roughly quadratically with version, because capacity scales with symbol area while functional patterns consume a shrinking fraction of it. At Error Correction Level L, a Version 1 symbol holds 41 numeric digits, 25 alphanumeric characters, or 17 bytes; a Version 40 symbol at the same level holds 7,089 numeric digits, 4,296 alphanumeric characters, or 2,953 bytes. Raising the error correction level trades capacity for resilience: the same Version 40 symbol at Level H holds far fewer data codewords because more of its area is devoted to parity. The practical consequence is that a generator choosing a version is really solving a small optimization problem — find the smallest version whose data region, after subtracting functional patterns and parity codewords, fits the payload.

Version information blocks

Versions 1 through 6 carry no explicit version marking; the decoder infers the version from the timing pattern and finder geometry. Versions 7 and above add dedicated version information: an 18-bit pattern (6 data bits protected by a BCH error-correcting code) placed in two 6×3 module blocks near the top-right and bottom-left finders. This explicit marking exists because at large symbol sizes, inferring the version from geometry alone becomes error-prone, particularly under perspective distortion. If you ever need to identify a code's version by eye, count the modules along one edge and apply the size formula — or look for the version information blocks flanking the finders.

How generators select a version

Quality QR generators select the minimal version automatically: they encode the payload, compute the required data codewords at the chosen error correction level, and pick the smallest version whose capacity covers it. Manual version selection is occasionally useful — for example, pinning a version so that a batch of codes shares identical geometry for a fixed-size print template — but overriding the automatic choice upward only makes the symbol denser than necessary, which hurts scannability. Overriding it downward produces an unencodable payload and a generator error.

Version and physical print size

Version interacts directly with print sizing. A Version 10 symbol (57 modules per side) printed at 0.5 mm per module is 28.5 mm wide before the quiet zone; the same symbol at 0.25 mm per module is 14.25 mm but approaches the reliability floor for phone cameras. Long URLs at high error correction levels can easily push a code into the Version 10–15 range, which is why shortening the encoded URL (or using a dynamic QR code) is the most effective way to keep printed symbols small and scannable.

Diagram description: Scale comparison of Version 1, 10, 25, and 40 symbols at identical module size, with the size formula annotated and version information block locations highlighted on the Version 10 example.

Frequently asked questions

How many QR code versions are there?

Forty. Version 1 is 21×21 modules and each version adds 4 modules per side, up to Version 40 at 177×177 modules. The original Model 1 specification only defined versions 1–14; Model 2 extended the range to 40.

How do I know which version my QR code is?

Count the modules along one edge of the symbol and solve 21 + 4(V − 1) = count. For example, 37 modules means Version 5. Most generators also report the version in their advanced or debug output.

What is the maximum data a QR code can hold?

A Version 40 symbol at Error Correction Level L holds 7,089 numeric digits, 4,296 alphanumeric characters, or 2,953 bytes. In practice, codes this dense are hard to scan from print — keep payloads short for real-world use.

Should I choose the QR version manually?

Usually no. Let the generator pick the smallest version that fits your data at your chosen error correction level. Manually pinning a version is only useful when you need identical geometry across a batch, such as a fixed print template.

Sources

Related terms

Related tools