QR Code Data Capacity: Maximum Characters by Version and Mode
Capacity is fixed by three variables acting together: version, encoding mode and error correction level. Mode sets the bit cost per character, with numeric packing three digits into 10 bits, alphanumeric two characters into 11, byte mode spending a full 8 bits per character and kanji 13. At the ceiling, a Version 40 symbol holds 7,089 digits, 4,296 alphanumeric characters, 2,953 bytes or 1,817 kanji at correction level L; raising correction to level H reduces those figures to 3,057, 1,852, 1,273 and 784 respectively. Real symbols rarely approach the limit. A short URL of roughly 25 bytes fits inside Version 2.
QR Code Data Capacity: Maximum Characters by Version and Mode
Understanding QR code capacity helps you choose the right version and error correction level for your data. Capacity varies significantly based on three factors: module count." data-category="QR Code Structure">version, encoding mode, and EC level.
Capacity by Encoding Mode
QR codes support four primary encoding modes, each with different efficiency:
| Mode | Characters Per Group | Bits Per Group | Effective Bits/Char |
|---|---|---|---|
| Numeric | 3 digits | 10 bits | 3.33 |
| Alphanumeric | 2 chars | 11 bits | 5.5 |
| Byte | 1 byte | 8 bits | 8.0 |
| Kanji | 1 char | 13 bits | 13.0 |
Maximum Capacity (Version 40)
| EC Level | Numeric | Alphanumeric | Byte | Kanji |
|---|---|---|---|---|
| L (7%) | 7,089 | 4,296 | 2,953 | 1,817 |
| M (15%) | 5,596 | 3,391 | 2,331 | 1,435 |
| Q (25%) | 3,993 | 2,420 | 1,663 | 1,024 |
| H (30%) | 3,057 | 1,852 | 1,273 | 784 |
Common Use Case Sizes
In practice, most QR codes use a small fraction of maximum capacity:
- Short URL (e.g.,
https://example.com): ~25 bytes — Version 2, EC-M - WiFi credentials: ~50-80 bytes — Version 3-4, EC-M
- vCard (basic): ~150-250 bytes — Version 7-10, EC-M
- vCard (full): ~400-600 bytes — Version 13-18, EC-M
- Calendar event: ~200-400 bytes — Version 8-14, EC-M
Calculating Required Version
To determine the minimum version for your data:
- Count your data characters and identify the encoding mode
- Add overhead: mode indicator (4 bits), character count indicator (varies), and terminator
- Add error correction codewords for your chosen EC level
- Find the smallest version with sufficient total codeword capacity
Most libraries handle this automatically, but manual calculation is useful for capacity planning.
Tips for Reducing Data Size
- Use URL shorteners to reduce link length
- Uppercase URLs trigger Alphanumeric mode (5.5 vs 8 bits/char)
- Use MeCard format instead of vCard for smaller contact codes
- Remove optional fields from structured data formats
Key Takeaways
- Version 40 at EC-L holds up to 7,089 numeric or 2,953 byte characters
- Higher error correction significantly reduces available capacity
- Most practical QR codes use Versions 2-15
- Uppercase URLs save approximately 30% compared to lowercase
- Libraries auto-select the minimum version for your data
Frequently Asked Questions
What is the maximum amount of data a QR code can hold?
At Version 40 with correction level L: 7,089 digits, 4,296 alphanumeric characters, 2,953 bytes or 1,817 kanji characters. Raising correction to level H lowers those same ceilings to 3,057, 1,852, 1,273 and 784, because the correction codewords occupy space the data would otherwise use.
Why does the character limit change with the type of data?
Each encoding mode spends a different number of bits per character. Numeric mode packs three digits into 10 bits, alphanumeric two characters into 11, byte mode uses a full 8 bits per character and kanji 13. The same visible length therefore consumes very different amounts of a symbol.
How much of a QR code's capacity does an ordinary URL use?
Very little. A short address of roughly 25 bytes fits inside Version 2, far below any ceiling. Capacity becomes a real constraint mainly for structured payloads: signed credentials, contact records with many fields, or data large enough to need Structured Append across several symbols.