How much data can a QR code hold? At the formal maximum, a standard Version 40 symbol at error-correction level L can contain 7,089 numeric digits, 4,296 alphanumeric characters, or 2,953 bytes. Those headline numbers are accurate but rarely useful for a real URL, contact record, or multilingual message. Character type, encoding mode, correction level, and the QR version all change the limit. This guide adds a reproducible CraftMyQR test showing why 100 digits, 100 lowercase letters, 100 Chinese characters, and 100 emoji do not create equally dense symbols. Try the CraftMyQR generator with your actual payload rather than estimating from character count alone.
The practical goal is usually not to fill the largest possible symbol. It is to encode the needed destination in a grid that remains easy to print, display, and scan. A data capacity decision therefore connects storage to physical reliability.
How Much Data Can a QR Code Hold by Mode?
QR Code supports multiple encoding modes. A generator can divide content into segments and select efficient modes automatically.
The GS1 General Specifications list the Version 40-L maximums as 7,089 numeric characters, 4,296 alphanumeric characters, 2,953 bytes, and 1,817 Kanji characters. A general-purpose QR may support Kanji mode, although GS1 applications do not use it in the same way.
These limits describe different units. “2,953 bytes” does not mean 2,953 visible Unicode characters. An ASCII lowercase letter generally uses one UTF-8 byte, a common Chinese character uses three, and many emoji use four or more. Emoji sequences can consume additional bytes through variation selectors, skin-tone modifiers, or zero-width joiners.
- Numeric mode represents digits 0–9 most efficiently.
- Alphanumeric mode supports uppercase A–Z, digits, spaces, and nine symbols:
$ % * + - . / :. - Byte mode handles general bytes, including lowercase text, most URLs, and UTF-8 content.
- Kanji mode compactly represents a defined Shift JIS character set when the encoder supports it.
Version and Error Correction Change Capacity
Standard QR versions run from 1 to 40. Version 1 contains a 21 × 21 module grid. Each step adds four modules per side, so Version 40 reaches 177 × 177. The DENSO WAVE version table provides capacities by version and correction level.
Four error-correction levels trade capacity for redundancy:
Increasing the correction level can force the encoder into a higher version. At a fixed printed width, that higher version creates smaller physical modules. More error correction can help recover damaged codewords, yet a denser grid may become harder for a camera to resolve. The best setting balances damage risk with available size instead of always selecting H.
- L allocates the least redundancy and retains the most data capacity;
- M provides a common middle setting;
- Q reserves more recovery data;
- H reserves the most and holds the least payload at a given version.
What We Encoded
We used the same JavaScript QR encoding library and automatic segmentation process for five content families:
For capacity boundaries, a binary search found the longest input accepted at Versions 1, 5, 10, 20, and 40 for levels L, M, Q, and H. We also generated fixed samples of 25, 50, 100, and 200 visible characters and recorded the automatically selected version, module dimensions, and UTF-8 byte length.
We did not enable a Shift JIS conversion function, so the Chinese sample used UTF-8 byte mode rather than the QR-specific Kanji mode. That limitation is intentional and documented because web applications commonly receive Unicode strings and encode them as bytes.
- repeated numeric digits;
- repeated uppercase letters that fit alphanumeric mode;
- repeated lowercase ASCII letters, which require byte mode;
- repeated Chinese characters encoded as UTF-8 bytes;
- repeated rocket emoji encoded as UTF-8 bytes.
Equal Character Counts Produced Different Versions
The numeric and lowercase samples both contained 100 visible characters and 100 bytes, yet numeric mode fit level M in Version 3 while lowercase byte mode required Version 6. Encoding efficiency, not just byte count, caused the difference.
The Chinese and emoji inputs expanded in UTF-8. At level M, 100 Chinese characters produced Version 13 and 100 emoji produced Version 15. Raising correction to H pushed them to Versions 18 and 21. A Version 21 symbol contains 101 modules per side before the quiet zone, more than three times Version 3’s 29 modules.
This is the article’s main information gain: visible character count is a poor predictor of final grid density. The encoder’s selected mode and actual byte sequence matter.

| 100-character payload | UTF-8 bytes | Level M | Level H |
|---|---|---|---|
| Digits | 100 | Version 3, 29 × 29 | Version 5, 37 × 37 |
| Uppercase alphanumeric | 100 | Version 5, 37 × 37 | Version 8, 49 × 49 |
| Lowercase ASCII | 100 | Version 6, 41 × 41 | Version 10, 57 × 57 |
| Chinese UTF-8 | 300 | Version 13, 69 × 69 | Version 18, 89 × 89 |
| Emoji UTF-8 | 400 | Version 15, 77 × 77 | Version 21, 101 × 101 |
Why Ordinary URLs Use More Capacity Than Expected
Most web addresses contain lowercase letters, so they generally rely on byte mode rather than the more efficient uppercase alphanumeric mode. Query parameters can add dozens or hundreds of characters. Percent-encoded Unicode content expands further because one character may appear as several ASCII characters such as %E4%B8%AD.
Compare these payload decisions:
Encoding a URL is usually more practical than embedding the page content. The QR carries only the address, while the server delivers updated information. A dynamic QR code can preserve a short printed destination while allowing the managed target to change, subject to the service’s current features and account terms.
Do not use an unknown public shortener merely to reduce modules. Link ownership and long-term availability matter. A slightly denser code under your control is safer than a short URL that may expire, redirect unpredictably, or lose its management account.
- a concise, controlled redirect URL;
- a long destination with campaign parameters;
- a full document or message embedded directly in the symbol;
- a short link whose destination can change later.
Capacity Is Not the Same as Scannability
A Version 40 symbol can formally store thousands of characters, but fitting the data does not prove that the final code will scan at the intended size. More modules reduce each module’s physical dimension and pixel budget.
Suppose two symbols print 30 mm wide. A Version 3 grid has 29 modules before the quiet zone; a Version 21 grid has 101. Ignoring the border for a simplified comparison, their modules measure about 1.03 mm and 0.30 mm. The second code asks the printer and camera to reproduce more than three times the linear detail.
That is why the minimum QR code size experiment treats payload density as a core variable. Maximum QR code data capacity is a storage limit, not a recommended design target.
Reduce QR Density Without Losing Meaning
Use these steps before enlarging a dense symbol:
Be careful with case conversion. Turning a lowercase URL into uppercase to trigger alphanumeric mode can change paths, queries, signatures, or tokens. Efficiency never justifies altering a destination’s semantics.
For Wi-Fi, vCard, email, and calendar payloads, field syntax also matters. Line breaks, labels, escaping, and Unicode names all consume bytes. Remove optional fields only after confirming that target devices still interpret the record correctly.
- Remove unnecessary URL parameters and fragments.
- Link to a mobile page instead of embedding long instructions.
- Use a controlled short domain or managed redirect.
- Avoid duplicating information in both the URL path and query string.
- Select the correction level for the real damage risk.
- Keep structured data fields only when receiving apps need them.
- Generate the final payload before fixing the print dimensions.
Decide Whether to Store Data or a Link
Directly embedded content works offline and cannot suffer from a dead website, but the printed data cannot change. A linked destination keeps the grid smaller and content editable on the server, but scanning requires connectivity and a maintained domain.
Use direct data for short, stable values such as a brief identifier or carefully tested Wi-Fi configuration. Use a URL for documents, menus, product details, policies, videos, or information likely to change. The what is a QR code guide explains how static payloads differ from managed redirect workflows.
A hybrid approach can place a compact identifier in the URL, then let the server retrieve the full record. That pattern reduces symbol density while keeping the physical label stable. It also separates public identifiers from sensitive data that should not be readable directly from the code.
Reproduce the Capacity Check
Anyone can repeat the logic with an encoder that exposes version and correction settings:
Different libraries may segment mixed content differently or support Kanji mode through different configuration. Report those choices instead of presenting one software result as the only possible encoding.
- Fix the encoding library and version.
- Select one error-correction level.
- Create inputs from a declared character family.
- Increase length until the chosen QR version rejects the value.
- Record visible characters and encoded byte length separately.
- Repeat across correction levels and content types.
- Save the generated matrix dimensions with the results.
Conclusion: Use Capacity as a Design Constraint
So, how much data can a QR code hold? The theoretical answer reaches 7,089 digits or 2,953 bytes at Version 40-L, but the practical answer depends on mode, Unicode byte length, correction level, and final physical size. Our 100-character test ranged from Version 3-M for digits to Version 15-M for emoji.
Use CraftMyQR with the real destination, inspect the generated density, and shorten the payload when modules become too small for the intended medium. A compact, owned link usually provides more operational value than pushing a symbol toward its formal maximum.
Frequently Asked Questions
What is the maximum QR code character limit?
For a standard Version 40 code at level L, official maximums include 7,089 numeric digits, 4,296 alphanumeric characters, or 2,953 bytes. Other modes and correction levels have different limits.
Why do lowercase letters use more QR capacity?
Lowercase letters are not part of QR alphanumeric mode, so they normally use byte mode. Numeric and supported uppercase content pack more efficiently, allowing the same visible character count in a smaller version.
How many URL characters fit in a QR code?
The limit depends on the URL’s characters and correction level. Most URLs use byte mode, and percent encoding can expand Unicode. Practical scan size usually becomes a constraint long before the formal byte maximum.
Do emoji take more QR code space?
Yes. Many emoji require four UTF-8 bytes, and joined or modified emoji can require more. In our test, 100 rocket emoji produced a much higher version than 100 digits.
Does higher error correction reduce data capacity?
Yes. Higher correction reserves more codewords for recovery, leaving less room for payload at the same version. The encoder may respond by selecting a larger, denser QR grid.
Can a QR code store an entire PDF?
Not a normal modern PDF of useful size. Encode a stable HTTPS link to the hosted document instead, then maintain access permissions, mobile usability, and long-term ownership of that destination.
Is a shorter URL always better for QR codes?
A shorter owned URL usually creates a less dense symbol, but reliability and control matter too. Avoid disposable shorteners, preserve necessary parameters, and never change case or syntax in ways that alter the destination.
Should I use the largest possible QR version?
Usually not. Larger versions contain more modules and demand finer printing or more camera pixels at the same outer size. Choose the lowest version that fits the required, correctly encoded payload.
Need to create a QR code now?
Create and preview your QR code with our free generator. For long-term materials like menus, packaging and posters, consider upgrading to dynamic QR codes.
