What is QR code data capacity?
Every QR code has a fixed maximum amount of data it can store. That limit depends on three factors: the QR code version (size), the error correction level, and the encoding mode used for the data. If you try to encode more data than a given version supports, the QR code generator will either silently upgrade to a larger version or fail entirely. This calculator tells you exactly which version you need before you commit to printing, engraving, or embedding a QR code in a physical product.
QR codes were invented by Denso Wave in 1994 for tracking automotive parts. The specification (ISO/IEC 18004) defines 40 discrete versions, each with a progressively larger grid of black and white modules. Version 1 is the smallest at 21 by 21 modules, and Version 40 is the largest at 177 by 177 modules. Each step up adds four modules per side, so Version 2 is 25 by 25, Version 3 is 29 by 29, and so on.
The practical importance of knowing your data capacity upfront cannot be overstated. A URL that fits comfortably in Version 3 (29 by 29 modules) can be printed at just a few millimeters across and still scan reliably. But if your data requires Version 20 or higher, you need significantly more physical space and higher print resolution. For product packaging, business cards, signage, and promotional materials, the QR code version directly determines the minimum print size and scanner compatibility.
Beyond physical size, larger QR codes take longer to scan and are more prone to alignment issues with older camera hardware. By choosing the smallest version that fits your data, you ensure the fastest, most reliable scanning experience for your users.
QR code versions and sizes
The QR code specification defines exactly 40 versions. Each version has a fixed module grid size calculated as (version number times 4) plus 17. This means Version 1 has 21 by 21 modules, Version 10 has 57 by 57 modules, and Version 40 has 177 by 177 modules.
A "module" is the smallest square unit in a QR code, either black or white. The physical size of a module depends on your printing resolution. At 300 DPI, each module might be just 0.085 mm. The total physical dimension of the QR code equals the number of modules times the module size.
Not all modules carry data. Each QR code dedicates a portion of its grid to finder patterns (the three large squares in the corners), timing patterns, alignment patterns, format information, and version information. Higher versions also include more alignment patterns. The remaining modules are split between the actual data payload and the error correction codewords.
As a general guide, Version 1 through 5 are considered small and work well for short URLs and numeric codes. Versions 6 through 15 handle medium-length data such as full URLs, contact information snippets, and short messages. Versions 16 through 30 are used for longer text payloads, and Versions 31 through 40 can store several kilobytes of data but require high-resolution printing and close-range scanning.
Error correction levels
QR codes use Reed-Solomon error correction to remain scannable even when part of the code is damaged, obscured, or poorly printed. The specification defines four error correction levels, each offering a different tradeoff between data capacity and damage tolerance.
**Level L (Low)** recovers approximately 7% of damaged data. This level maximizes the amount of data you can store in a given version. Use it when the QR code will be displayed on a screen, printed on clean white paper, or otherwise protected from damage.
**Level M (Medium)** recovers approximately 15% of damaged data. This is the default recommendation for most applications. It provides a reasonable safety margin for normal printing and scanning conditions while retaining good data capacity.
**Level Q (Quartile)** recovers approximately 25% of damaged data. Choose this level when the QR code will be placed on packaging that might get scuffed, on outdoor signage exposed to weather, or in environments where partial obstruction is likely.
**Level H (High)** recovers approximately 30% of damaged data. This level is essential when you plan to place a logo or image over part of the QR code, since the covered area effectively becomes "damaged" data that must be recovered. It is also recommended for industrial applications where QR codes may be printed on rough or curved surfaces.
Higher error correction levels consume more of the available data space for redundancy codewords, which means fewer characters of actual data fit in the same version. For example, Version 10 with Level L can store 271 bytes, but with Level H only 119 bytes.
Encoding modes
QR codes support several encoding modes that pack data at different densities. Choosing the right mode can significantly affect which version you need.
**Numeric mode** encodes only the digits 0 through 9. Because it uses a compact representation (approximately 3.3 bits per character), it achieves the highest capacity. Version 1 with Level L can store 41 numeric digits. This mode is ideal for phone numbers, tracking numbers, and numeric identifiers.
**Alphanumeric mode** supports digits 0 through 9, uppercase letters A through Z, the space character, and the symbols dollar sign, percent, asterisk, plus, minus, period, forward slash, and colon. Note that lowercase letters are not included. This mode uses about 5.5 bits per character. It works well for short codes, abbreviated URLs, and identifiers that use only uppercase characters and permitted symbols.
**Byte mode** (sometimes called binary mode) encodes any 8-bit data, which in practice means the full UTF-8 character set. This is the most versatile mode and the one used for most real-world content including URLs with mixed case, full sentences, email addresses, and JSON data. It uses 8 bits per character for ASCII text, and multi-byte sequences for non-ASCII characters.
**Kanji mode** is a specialized mode for encoding Japanese Kanji and Kana characters using the Shift JIS encoding. It uses 13 bits per character and is not commonly used outside of Japanese-language applications.
This calculator supports Numeric, Alphanumeric, and Byte modes. The auto-detect feature analyzes your input and selects the most space-efficient mode automatically.
How to use this calculator
1. Paste or type the data you want to encode into the text area. This can be a URL, text message, numeric code, or any other content you plan to put in a QR code. 2. Select your desired error correction level using the segmented control. Level M is a good default for most applications. Choose Level H if you plan to add a logo overlay or expect physical damage. 3. Choose an encoding mode or leave it set to Auto-detect. The auto-detect feature will analyze your input and select the most efficient mode available. 4. Review the results. The hero result shows the minimum QR code version required for your data. The stats grid shows detailed metrics including data length, encoding mode, error correction level, and capacity utilization percentage. 5. Check the nearby versions table to see how close alternatives compare. This helps you decide whether to pad your data or choose a different error correction level. 6. If the calculator reports that your data does not fit, try switching to a lower error correction level, using a more efficient encoding mode, or shortening your data content.
FAQs
Q: How much data can a QR code hold? A: The maximum capacity depends on the version, error correction level, and encoding mode. The absolute maximum is 7,089 numeric characters, 4,296 alphanumeric characters, or 2,953 bytes using Version 40 with error correction Level L. In practice, most QR codes use smaller versions and higher error correction, so typical real-world capacity is much lower.
Q: What is the difference between QR code versions? A: Each version is a fixed grid size. Version 1 is 21 by 21 modules, and each subsequent version adds 4 modules per side up to Version 40 at 177 by 177 modules. Larger versions hold more data but require more physical space and higher resolution to print and scan reliably.
Q: Which error correction level should I use? A: Level M (15% recovery) is the recommended default for most use cases. Use Level L for maximum capacity when the code will be displayed on screens. Use Level Q or H when the code may be damaged, partially obscured, or when you plan to place a logo over part of the code.
Q: Does the encoding mode matter for URLs? A: Yes, significantly. A URL like "HTTPS://EXAMPLE.COM" in all uppercase can use alphanumeric mode, which stores about 50% more characters per version than byte mode. However, most real URLs contain lowercase characters and path segments that require byte mode. The auto-detect feature handles this automatically.
Q: Can I use this calculator for Micro QR codes? A: No, this calculator covers standard QR codes (ISO/IEC 18004) with 40 versions. Micro QR codes (M1 through M4) are a separate specification with much lower capacity and are not included here.
Q: What happens if my data is too large for any QR code? A: If your data exceeds the capacity of Version 40, you need to reduce the amount of data, use a lower error correction level, switch to a more compact encoding mode, or split your content across multiple QR codes using structured append mode.
Explore Similar Tools
Explore more tools like this one:
- QR Code Generator — Generate high-quality QR codes for any link or text... - Barrel Volume and Capacity Calculator — Calculate the volume and capacity of cylindrical... - QR Decoder — Read and decode QR codes from images or camera input... - Quartile Calculator – IQR Calculator — Calculate quartiles (Q1, Q2, Q3) and interquartile range... - Towing Capacity & Payload Calculator — Calculate remaining payload from truck GVWR, curb...