Skip to main content
QRSenBuilt for business
Size & Specs

How Many Characters Can a QR Code Hold?

At maximum size and the lowest error correction level, a QR code can hold roughly 7,089 numeric digits, roughly 4,296 alphanumeric characters (uppercase letters, digits, and a small set of symbols), or roughly 2,953 bytes of general data — which covers lowercase letters and most real-world content, including virtually all URLs. Real-world codes use a tiny fraction of that capacity.

The QR spec defines several encoding modes, and each one packs data more or less efficiently, which is why the maximum character count differs so much between them. Numeric mode, the most efficient, only needs to represent the digits 0 through 9, so it can pack the most characters into the same grid — up to about 7,089 digits. Alphanumeric mode adds uppercase letters, some punctuation, and a handful of symbols, at a real but smaller ceiling of roughly 4,296 characters. Byte mode is the most general-purpose, covering lowercase letters, full text, and arbitrary binary data, and its ceiling drops to roughly 2,953 bytes because it's the least space-efficient of the three.

Almost everything encoded by a real QR code generator ends up in byte mode, because real-world content — a URL, an email address, a WiFi password, a name on a vCard — nearly always includes lowercase letters or characters outside the alphanumeric set. That means the roughly 2,953-byte ceiling is the practical maximum most people will ever be working against, not the higher numeric or alphanumeric figures. Even that ceiling is generous: it applies at the largest possible code size (version 40) with the lowest error correction level, which almost nobody actually uses for a real, working QR code.

In practice, real-world codes use a small fraction of the available capacity. A typical website URL is well under 100 characters; even a full vCard with a name, phone number, email, and address rarely breaks a few hundred. Pushing an encoded payload toward the real spec maximum produces a QR code with an enormous module count — a very dense, fine-grained pattern that's difficult to print small and difficult for a camera to resolve at any distance beyond very close range. There's rarely a good reason to approach the ceiling; shorter is almost always the better practical choice.

QRSen and most generators pick the encoding mode automatically based on the content entered, choosing the most space-efficient mode the data qualifies for without the user needing to think about it. The character limits above are the outer boundary of what's technically possible, not a target — they exist mainly to explain why very long text or dense data inputs eventually produce a code too visually dense to be practical.

If a use case genuinely needs to encode a large amount of text — a full document, a long message — the more practical approach is hosting that content somewhere online and encoding a short link to it instead, rather than trying to cram the full text directly into the code. A short URL produces a simple, easy-to-scan pattern regardless of how much content sits behind that link, since the code itself only ever has to carry the address, not the content it points to.

Frequently asked questions

URLs use byte mode, so the practical ceiling is around 2,953 characters — but a typical real-world URL is under 100 characters, and using a shortened link keeps the resulting code cleaner and easier to scan at small sizes.
Indirectly, yes. More characters means more modules packed into the grid, which shrinks each individual module at a given print size and makes the code harder for a camera to resolve, especially when printed small or viewed from a distance.
Because numeric mode encodes each digit more compactly than alphanumeric or byte mode does for letters, since it only has to represent ten possible values instead of a much larger character set. The tradeoff is that numeric mode can't represent lowercase letters or most symbols at all.