QR Code Free Forever QR Code Free Forever Create QR codes. 100% free. Forever. Make a QR code

Home · Guides

How Much Data Fits in a QR Code

The headline figure is 2,953 bytes. It is also almost useless, because it applies to one enormous symbol at the weakest error correction — and because what you encode changes the answer as much as how much of it you encode.

Four ways to encode the same characters

QR codes do not store text as text. The encoder picks a mode, and the mode decides how many bits each character costs.

ModeCharacter setBits per characterMax at version 40-L
Numeric0–9 only3⅓7,089 digits
Alphanumeric0–9, A–Z, space, $ % * + - . / :5½4,296 characters
ByteAnything, usually UTF-882,953 bytes
KanjiShift-JIS double-byte131,817 characters

The consequence is immediate and often surprising: PROMO2026 is nine alphanumeric characters and costs about 50 bits. promo2026 is nine characters too, but lowercase letters are not in the alphanumeric set, so the whole string falls back to byte mode and costs 72 bits — 44% more, for the same nine characters.

Numeric mode is more dramatic still. A 16-digit reference costs about 54 bits as digits and 128 bits as bytes.

If you are designing an identifier that will live in a QR code — a ticket number, an asset tag, a batch code — using only uppercase letters and digits will make every code you ever print measurably smaller.

The real numbers

Capacity in bytes, for the version and level you choose. These figures were measured by binary search against a reference encoder for this article, not transcribed.

VersionModulesBytes at LBytes at MBytes at QBytes at H
121 × 211714117
225 × 2532262014
329 × 2953423224
433 × 3378624634
537 × 37106846044
641 × 411341067458
745 × 451541228664
849 × 4919215210884
953 × 5323018013098
1057 × 57271213151119
1577 × 77520412292220
2097 × 97858666482382
25117 × 1171,273997715535
30137 × 1371,7321,370982742
40177 × 1772,9532,3311,6631,273

Two patterns are worth reading out of that table.

The first is how brutal the small end is. A version 1 code at level H holds seven bytes. Not seven characters of a sentence — seven. Version 2 at H holds fourteen. The overhead of the finder patterns, timing, format information and error correction dominates completely at that size.

The second is that the cost of error correction is roughly constant in proportion but enormous in absolute terms at the top: at version 40, choosing H instead of L costs you 1,680 bytes.

What that means for a URL

Most codes carry a URL, so here is the table people actually need — the smallest symbol that will hold a link of a given length at each level.

URL lengthAt level LAt level MAt level QAt level H
20 charsv2 · 25×25v2 · 25×25v2 · 25×25v3 · 29×29
30 charsv2 · 25×25v3 · 29×29v3 · 29×29v4 · 33×33
50 charsv3 · 29×29v4 · 33×33v5 · 37×37v6 · 41×41
80 charsv5 · 37×37v5 · 37×37v7 · 45×45v8 · 49×49
120 charsv6 · 41×41v7 · 45×45v9 · 53×53v11 · 61×61
200 charsv9 · 53×53v10 · 57×57v12 · 65×65v15 · 77×77

Read down the last column and the cost of long tracking URLs becomes concrete: a 20-character link at level H needs a 29×29 grid, a 200-character one needs 77×77. Printed at the same width, every module in the second code is 38% of the size of the first, and module size is what decides whether a phone can read it at all — see how small a QR code can be.

Mixed content and mode switching

An encoder can switch modes inside one symbol, and a good one will. HTTPS://EXAMPLE.COM/A1B2C3 is entirely inside the alphanumeric set and encodes efficiently; https://example.com/a1b2c3 is not, and costs more.

There is a subtlety here worth knowing about. Each mode switch carries its own header, so a string that alternates constantly — digits, letters, digits, letters — can end up larger than the same string encoded in one mode throughout. Encoders run an optimisation to decide where switching pays; this is one of the places where two generators produce genuinely different-sized codes from identical input.

For the specific structured formats, the string you encode is fixed by a standard rather than by you: the WiFi format and the vCard format both have their own rules about what has to be present.

Making a long payload fit

In order of how much they help:

The last one is the mistake worth naming twice. A QR code is an address, not a container. When people ask why their code is a solid grey rectangle, the answer is almost always that they put the content inside it instead of pointing at it.

Written by Manuel Llovet, who builds and maintains QR Code Free Forever. Published 2026-08-31, last checked 2026-09-08. Figures and measurements on this page were produced for this site; the method is described in each caption.

Make this code now

Free, no sign-up, and it never expires. Everything runs in your browser.

Open the generator

Keep reading