How Much Data Can a QR Code Hold? Capacity by Version
The largest QR code, version 40 at error correction level L, holds 7,089 digits, 4,296 alphanumeric characters, 2,953 bytes or 1,817 kanji, according to the 2006 edition of ISO/IEC 18004. A normal web address contains lowercase letters, which alphanumeric mode does not cover, so it is stored in byte mode, which tops out at 2,953 characters of ordinary ASCII text.
That is a ceiling, not a target. More characters can push a code to a higher version, which means more and smaller squares in the same printed space. Below: capacity by version, worked examples, and steps for shortening what you encode.
Facts checked on 17 October 2026.
How big is each QR code version?
A version is a size class. Version 1 is 21 × 21 modules (the small squares), and each step up adds 4 per side, to version 40 at 177 × 177, as the ISO standard and DENSO WAVE's version page state. The width in modules is therefore 17 + 4 × the version number. That excludes the quiet zone, the blank border that the standard requires to be at least four modules wide on each side.
When no version is specified, the standard's encoding procedure says to "select the smallest version that will accommodate the data". Table 7 of the standard lists the maximums; this extract shows level L, the lowest error correction.
| Version | Modules per side | Numeric | Alphanumeric | Byte | Kanji |
|---|---|---|---|---|---|
| 1 | 21 × 21 | 41 | 25 | 17 | 10 |
| 2 | 25 × 25 | 77 | 47 | 32 | 20 |
| 3 | 29 × 29 | 127 | 77 | 53 | 32 |
| 5 | 37 × 37 | 255 | 154 | 106 | 65 |
| 10 | 57 × 57 | 652 | 395 | 271 | 167 |
| 20 | 97 × 97 | 2,061 | 1,249 | 858 | 528 |
| 40 | 177 × 177 | 7,089 | 4,296 | 2,953 | 1,817 |
Numeric mode holds only digits. Per the standard's mode definitions, alphanumeric mode adds uppercase A to Z and nine symbols (space and $ % * + - . / :), and byte mode uses 8 bits per character and includes lowercase letters, so ordinary URLs belong in the Byte column. The figures assume one mode per code; mixing modes costs extra bits.
These capacities come from the 2006 edition, the second, the only full edition read for this page. The fourth edition (August 2024) replaced the 2015 third edition, and its free preview lists only two main changes: continuous grading of fixed-pattern damage and a clearer reference decoding algorithm. Neither mentions capacity, but the 2024 tables could not be checked here.
What does the error correction level cost?
Higher levels store more repair data, so fewer data characters fit. This table shows byte-mode capacity, the column that matters for URLs, at all four levels (same Table 7).
| Version | Level L | Level M | Level Q | Level H |
|---|---|---|---|---|
| 1 | 17 | 14 | 11 | 7 |
| 3 | 53 | 42 | 32 | 24 |
| 10 | 271 | 213 | 151 | 119 |
| 20 | 858 | 666 | 482 | 382 |
| 40 | 2,953 | 2,331 | 1,663 | 1,273 |
The standard's own guidance gives an example: a version 20 symbol at level Q holds 485 data codewords, and that data could fit version 15 at level L instead, which is 77 × 77 modules rather than 97 × 97. It calls M the "Standard" level. For when each level makes sense, see QR code error correction levels explained.
What does everyday content need?
The module counts below were computed with the open-source qrcode-generator library (version 1.5.2) at error correction level M, with the version chosen automatically. They are examples, not limits.
| Content | Bytes | Version at M | Modules per side |
|---|---|---|---|
Short link, https://qrmk.cc/AbC234 | 22 | 2 | 25 × 25 |
Plain page URL, https://www.example.com/menu | 28 | 3 | 29 × 29 |
Short link on a longer domain, https://go.yourbrand.com/AbC234 | 31 | 3 | 29 × 29 |
| Wi-Fi login string (short name and password) | 48 | 4 | 33 × 33 |
| Campaign URL with three tracking parameters | 120 | 7 | 45 × 45 |
| Contact card (vCard: name, company, title, phone, email, website) | 171 | 9 | 53 × 53 |
| 500 characters of plain text | 500 | 17 | 85 × 85 |
Wi-Fi and contact-card codes are static, so all of their data sits inside the pattern, while a dynamic code holds only a short link. The Wi-Fi QR code guide and vCard QR code guide cover how those two are built.
Why can longer content make a code harder to scan?
An encoder that chooses the version automatically picks the smallest one that fits, so more content means a higher version, and a higher version has more modules per side. DENSO WAVE's printing advice adds that larger modules are more stable and easier to read, and it recommends four or more printer dots per module. Put together: at the same printed width, more content gives smaller modules and a code that is harder to read. This is an inference from those sources. Neither the standard nor DENSO WAVE says in so many words that long links fail to scan.
The arithmetic is simple. Printed 30 mm wide, excluding the quiet zone, the 25 × 25 short-link code has 1.2 mm modules and the 45 × 45 campaign URL has 0.67 mm modules. Printing larger recovers module size; the print size guide covers distance, surface and the quiet zone, so this page does not repeat them.
What about phone cameras? DENSO WAVE's FAQ says that when a QR Code is read with a mobile phone's camera, the amount of data read is 271 bytes or so (version 10, level L, the same 271 as the table above), though the figure "may vary depending on phone's manufacturer and its model type". The answer appears in the FAQ's discussion of storing images and sounds, and the page is undated, so the figure's age is unknown. Treat it as one vendor's figure, not a limit for every phone, and scan a printed proof on the phones your audience uses.
How do you shorten what you encode?
- Shorten the address on your own site. Create a short path such as
example.com/menuthat redirects to the long page, and encode that. You then maintain that redirect. - Drop parameters you do not need. Removing the three tracking parameters from the 120-character example leaves 50 characters: version 4 (33 × 33) at level M instead of version 7 (45 × 45).
- Encode a short link with a dynamic code. QR Maker AI's dynamic codes encode a link like
https://qrmk.cc/AbC234and redirect to your full URL, so on that default short domain the pattern stays 25 × 25 at level M however long the destination is, and the destination can change after printing. Only URL codes can be dynamic. You can make one in the editor; dynamic vs static codes lays out the trade-off. - Use the lowest error correction level your conditions allow. The standard's guidance says L suits high symbol quality and that lower expected quality calls for a higher level, so choose L for clean, high-quality output or when you need the smallest possible symbol.
- Add a logo last. In that editor, a logo raises error correction to at least Q or H depending on its size. For the 120-character URL, level H is version 11 (61 × 61) against version 7 (45 × 45) at M, so a long URL plus a logo compounds.
- Check the finished image at its real size. The free QR code checker reports a code's version and module count and suggests a minimum print width, and the size calculator has a data-density setting. Both run in the browser, and neither replaces printing a proof and scanning it on several phones.
FAQ
How many characters can a QR code hold?
At most 7,089 digits, 4,296 alphanumeric characters, 2,953 bytes or 1,817 kanji, in a version 40 code at level L, per the 2006 edition of ISO/IEC 18004. At level H the same size holds 1,273 bytes.
What is the maximum URL length for a QR code?
For ordinary ASCII text, 2,953 characters at level L and 1,273 at level H. The pattern gets dense long before that, and DENSO WAVE's FAQ says the amount of data read when a phone camera scans a code is 271 bytes or so, a figure it says may vary by phone manufacturer and model.
Does error correction reduce how much a QR code can hold?
Yes. At version 40, byte capacity is 2,953 at L, 2,331 at M, 1,663 at Q and 1,273 at H. The standard describes the price of higher levels as some increase in symbol size for a given message length.
Can a QR code hold an image or a file?
Only a very small one. DENSO WAVE's FAQ puts the most a QR code can store at about 3 KB or less. For anything bigger, encode a link to the file.
Sources
- ISO/IEC — ISO/IEC 18004:2006(E), QR Code 2005 bar code symbology specification (second edition). Published 1 September 2006. Accessed 17 October 2026.
- DENSO WAVE — Information capacity and versions of QR Code. Undated. Accessed 17 October 2026.
- ISO/IEC — ISO/IEC 18004:2024, fourth edition, free preview. Published August 2024. Accessed 17 October 2026.
- Kazuhiko Arase — qrcode-generator, open-source library (MIT license). Undated. Accessed 17 October 2026.
- DENSO WAVE — Point for setting the module size. Undated. Accessed 17 October 2026.
- DENSO WAVE — FAQ. Undated. Accessed 17 October 2026.