Skip to content

What a QR code can hold, and how much

A QR code is a container for characters. Depending on which characters you put in, the same size code holds up to four times more or less. Phones opening links and joining Wi-Fi networks both rely on agreed text formats inside.

Four ways to store characters

The spec defines several ways to turn characters into bits, and an encoder picks the densest one that fits your content.

  • Numeric. Digits 0 to 9 only, three digits per 10 bits. The most efficient choice for phone numbers or product codes.
  • Alphanumeric. Digits, uppercase letters, space and eight symbols ($%*+-./:), 45 characters in all. Two characters per 11 bits.
  • Byte. Everything else, 8 bits per byte. Mixed-case URLs, accented letters, non-Latin scripts and emoji land here.
  • Kanji. Reserved for a Japanese character set and rarely useful elsewhere.
Maximum capacity at version 40, error level L
ModeMaximum
Numeric7,089 chars
Alphanumeric4,296 chars
Byte2,953 bytes

This site stops at version 10. Blank space needs spare capacity, and beyond that size the modules get too small to scan comfortably. At version 10 an ordinary URL can be up to 271 characters.

Non-Latin text is expensive

Anything outside basic ASCII goes into byte mode as UTF-8, where a character often takes two to four bytes. Korean and Chinese characters take three each, so a code that fits 90 lowercase letters fits only about 30 of them. Rather than encoding a long passage, encode the address of a page that contains it.

URLs are the same. A path copied from the address bar with accented or non-Latin characters is usually percent-encoded, turning one character into six or nine. Prefer plain ASCII URLs.

Formats phones understand

When the decoded text follows certain patterns, the phone camera offers a matching action. These patterns are industry convention rather than part of the QR spec, so support varies a little between apps.

Common formats phones recognise
PurposeExample
Web linkhttps://example.com
Wi-FiWIFI:T:WPA;S:Office;P:secret;;
Phone calltel:+15551234567
Text messageSMSTO:+15551234567:Hello
Emailmailto:[email protected]
Map locationgeo:40.7128,-74.0060

A common Wi-Fi mistake

If the network name or password contains a semicolon, comma, colon or backslash, it has to be escaped with a backslash. Otherwise the phone assumes the value ends there and the connection fails. Also remember that a Wi-Fi code holds the password in plain text. Posting one publicly is the same as writing the password on the wall.

Shorter means emptier

This matters more on this site than anywhere else. The shorter the content, the more padding there is, and padding can all be turned white. At the same version, a short URL looks far emptier than a long one.

If you can uppercase your URL, alphanumeric mode switches on and nearly doubles your space. The domain is case-insensitive and always safe. The path depends on the server, so visit the uppercase version first and confirm the same page loads.

The method is in how the blank space works, and sizes per version are in anatomy of a QR code.