What sets the capacity
Three things decide how much fits: the version, the error correction level and the encoding mode. A larger version has more modules, a lower error correction level leaves more of them for data, and a compact mode such as numeric packs more characters into each bit.
The published figures are maximums for content that uses a single mode throughout. Real content, such as a URL with mixed case and symbols, usually falls into byte mode and fits fewer characters.
Capacity at the extremes
The table below shows the smallest and largest QR codes. Every other version and level falls between these values.
- Version 1-L: 41 digits, 25 alphanumeric, 17 bytes, 10 kanji
- Version 1-H: 17 digits, 10 alphanumeric, 7 bytes, 4 kanji
- Version 40-L: 7,089 digits, 4,296 alphanumeric, 2,953 bytes, 1,817 kanji
- Version 40-H: 3,057 digits, 1,852 alphanumeric, 1,273 bytes, 784 kanji
Capacity in practice
Being able to store a lot does not mean you should. A code near its maximum has tiny modules that need a large print, a steady hand and a good camera, and it fails more often in poor light.
For links, a short URL keeps the code small and robust. For content such as a vCard or Wi-Fi details, trimming optional fields has the same effect. Byte counts refer to encoded bytes, so characters outside basic Latin, which take several bytes each in UTF-8, reduce how many characters fit.