SIGN UP

QR codes that stand out

Sign up now and try all features free for 14 days

I already have an account

LOGIN

QR codes that stand out

FORGOT PASSWORD

We'll email you a reset link

Back to login
Tech

How Much Data Can a QR Code Hold Before It Stops Scanning?

The spec says 7,089 characters. We simulated print, camera and decoder on 15,888 images to find how many a QR code really holds at 2, 3, 5 and 10 cm, and from how far.

22 Oct 2026•11 min read•Benjamin TurcBy Benjamin Turc
How Much Data Can a QR Code Hold Before It Stops Scanning?

Type how much data can a QR code hold into Google, and the top pages answer with one table, copied from page to page: 7,089 digits, 4,296 uppercase letters and digits, or 2,953 bytes. It's true, for a code no menu ever carries: version 40, 177 x 177 modules, at the lowest error-correction level, L.

Those are Denso Wave's figures. At level M, which the inventor says is chosen most often, the same giant code holds 2,331 bytes. Once printed, the camera decides. In our simulation, a 3 cm code at level M read every time up to 500 characters at 15 cm, 200 at 25 cm and 80 at arm's length, 40 cm. Every limit we measured follows one rule: about 3 camera pixels per module.

Below: how a QR code works, the limits by print size and distance, and how to make a code smaller.

7,089 Characters? What the QR Code Capacity Table Really Says

The table's four data size figures describe one code, the biggest, filled with a single type of data. Denso Wave's specification puts them at version 40, level L:

  • 7,089 digits
  • 4,296 alphanumeric characters
  • 2,953 bytes
  • 1,817 kanji

Same suitcase, packed four ways: 23,648 bits, where a digit takes 3.3 and a kanji 13.

An ordinary link never gets the 4,296. The alphanumeric set holds 45 characters: digits, capitals A to Z, space and $ % * + - . / :. No lowercase, no ?, =, & or _, so a typical URL goes in as bytes: 2,953 at level L, 2,331 at M, 1,273 at H. Even the copies slip: QR Tiger prints 4,269 for 4,296; SproutQR calls 2,953 alphanumeric.

Denso Wave dates the QR code's birth to 1994, with room for about 7,000 digits where a barcode held 20 or so alphanumeric characters.

Printed, in our simulation, the three records needed room:

  • 5 cm wide: 4 of 12 images read at 15 cm, none farther
  • 10 cm: 23 of 24 at 15 and 25 cm, none at 40 cm
  • 20 cm: 10 of 12 at 40 cm (both misses: 7,089 digits at 300 dpi), none at 2 m

The table is right about how much data a QR code can hold, for a code nobody prints: in our simulation, of the 5, 10 and 20 cm prints, only the 20 x 20 cm one read the 7,089-digit code at arm's length, and not every time.

How Do QR Codes Work? The Five Building Blocks

Why three corner squares, not four? Each black or white square is a module, one bit, and five blocks let a scanner find, measure, repair and decode the grid:

  1. Finder patterns. Three 7 x 7-module squares show where the code is and which way it faces. Their 1:1:3:1:1 dark-light ratio was the rarest Denso Wave found in fliers, magazines and cardboard boxes, so a camera spots them at any angle.
  2. Version and modules. Forty sizes, from 21 x 21 modules (version 1) to 177 x 177 (version 40). The generator picks the smallest that fits your content and level. Version 3 has 841 modules; version 40 has 31,329.
  3. Encoding mode. Price per character: 10 bits per 3 digits, 11 per 2 alphanumeric characters, 8 per byte, 13 per kanji. One lowercase letter, and a single-mode encoder bills everything as bytes.
  4. Error correction. Reed-Solomon codewords rebuild damage, like bubble wrap that takes room in the box. L, M, Q and H restore about 7, 15, 25 and 30% of the codewords, the code's 8-bit bricks, not of its surface. We measured what that 30% really covers with logos.
  5. Quiet zone. A blank margin 4 modules wide on every side (ISO/IEC 18004) sets the code apart. With it, a version 3 code is 37 modules wide.

The rest is housekeeping: timing patterns work as a ruler, alignment patterns correct tilt, format information stores the level and mask twice, and masks break up solid blocks.

More characters mean more, smaller modules on the same printed width, until the camera can't tell them apart.

The Real QR Code Character Limit, by Print Size and Distance

How many characters can a QR code hold once printed? We simulated 600 dpi prints of lowercase links at level M, shot ten images of each length (five links, two angles) from 15, 25 and 40 cm, and read them with Apple's barcode detector. Size is the width without the white margin: 2 cm is about 0.8 in, 3 cm 1.2 in, 5 cm 2 in, 10 cm 4 in.

Longest link read 10 times in 10, at 15, 25 and 40 cm:

  • 2 cm: 250, 80 and 20 characters
  • 3 cm: 500, 200 and 80
  • 5 cm: 1,500, 500 and 250
  • 10 cm: 2,331 (level M's ceiling), 1,750 and 1,000

Three cards with the same QR code printed small, medium and large, and a hand holding a phone at arm's length: the dotted sight lines reach the large and medium codes, the line to the small code fades out

Past those lengths, codes fade before they fail: at 25 cm, our 3 cm code still read at least half the time up to 300 characters, never from 600.

Everyday content, same simulation:

  • A short link, 20 to 40 characters (versions 2 and 3): read every time, at every distance tested, from 3 cm up. A 2 cm print read 30 to 40 characters 6 times in 10 at 40 cm.
  • A menu link with three UTM tags, 110 characters (version 7): printed 3 cm wide, read every time at 25 cm, never at 40.
  • A full contact card, about 250 characters (version 12): printed 3 cm wide, read every time at 15 cm, 8 times in 10 at 25 cm, never at 40.

How much data can a QR code hold at arm's length? Budget about 80 characters for a 3 cm code and 250 for a 5 cm one.

Why a QR Code Stops Scanning: Three Pixels per Module

Forget centimetres: the decoder only counts pixels. Our simulation's read rates by camera pixels per module, over 5,120 level-M images:

  • under 1.75: none of 1,280
  • 2 to 2.25: 20%
  • 2.5 to 2.75: 68%
  • 2.75 to 3: 94%
  • above 3.25: all but one of 2,480

Straight-on codes started reading at about 2 pixels per module in our test, turned and tilted ones at about 2.5, and from 3 both read almost every time, so our rule is 3.

With our camera model (1,920 pixels across a 69-degree view), a module needs 0.32 mm at 15 cm, 0.54 at 25 cm, 0.86 at 40 cm and 2.1 at 1 m. Check yours: width without margin, divided by modules per side. Printed 3 cm wide, the 110-character menu link gets 0.67 mm modules: enough for 25 cm, short of 40.

In our test, 300 or 600 dpi barely mattered as long as modules kept at least 3 to 4 printer dots. Denso Wave asks for 4 or more (0.17 mm at 600 dpi, 0.33 mm at 300); see the print settings that keep every module sharp.

Others say 2 pixels (Google's ML Kit documentation, for any barcode), 3 to 3.5 (Skurowski and colleagues' 2022 peer-reviewed simulation in Sensors) or 3 to 4 (Better Stack's guide). Ours sits in that range; ML Kit's 2 matches our straight-on case.

The 10:1 Distance Rule Works Up to About 150 Characters

The 10:1 rule of thumb is lore, not a standard: Denso Wave and GS1 publish module sizes, and neither gives a distance.

It's a density rule in disguise: from ten times its width, a code fills the same share of the image whatever its print size, so same version, same pixels per module. Huon Wilson's 2021 decoder test agrees: a camera that reads a 10 cm code from 1 m reads a 1 m code from 10 m.

Level-M codes of 2, 3 and 5 cm read at 10:1 managed about 150 characters every time in our simulation (3 cm dipped once). That's a full version 8: 49 x 49 modules, 152 bytes at most, at 2.9 pixels per module. From 1 m, the 10 cm code managed 175. At 600 dpi, level L reached 150 to 200 and level H 80.

Use 10:1 for short links. Past about 150 characters it overpromises: stand closer, print bigger or encode less.

How to Make a QR Code Smaller: Fewer Characters, Fewer Modules

The biggest lever takes ten seconds (versions at level M).

  1. Encode a short link, not the page. A 22-character short link is version 2 (25 x 25). A 51-character menu PDF link is version 4 (33 x 33); with three UTM tags (110 characters), version 7 (45 x 45). Tracking belongs behind the redirect.
  2. Watch the version edges. Versions 3, 4 and 5 stop at 42, 62 and 84 bytes: byte 43 buys a bigger grid, and a trailing slash or a "www." can cost a version.
  3. Try capitals, with conditions. https://www.example.com/our-menu (32 characters) is version 3; HTTPS://WWW.EXAMPLE.COM/OUR-MENU fits the alphanumeric mode and version 2. The server must accept the capitalised path (only the scheme and host ignore case), and some readers lowercase it. Good for short links on your own domain, bad for query strings or case-sensitive paths.
  4. Put the contact card on a diet. A full 252-character vCard is version 12 (65 x 65); name, phone and email (130 characters) make version 8 (49 x 49). Printed 3 cm wide, a code of that version read every time at 25 cm in our simulation. A contact card is one code you never need to pay for, except in modules.
  5. Don't pick H by reflex. In our test, going from L to H cut the readable characters by half or more (a 3 cm code read from 25 cm: 250 against 100). H doesn't protect a dense code, it makes it denser. Keep it for logos and dirt: Huon Wilson's 2021 noise test read 60% more codes at H than L.

A hand with scissors cutting a long tail of tiny squares off a dense QR code, and next to it the same code with fewer, bigger squares

Only have ten seconds? Do lever 1.

How We Tested, and What a Simulation Can't Tell You

The vendor charts we read show no test. Ours was a simulation: nothing was printed and no phone took part.

We rendered lowercase URLs of 20 to 2,900 characters, at four levels, 2 to 10 cm wide at 300 and 600 dpi, then shot them from 15 cm to 1 m with blur, grain and JPEG compression. Apple's Vision barcode detector read them on a Mac. In an earlier, non-density test, it matched an iPhone on 30 of 31 verdicts. The three records were also rendered 20 cm wide and shot from up to 2 m. 10,768 images, records included, plus 5,120 to confirm level M: zero wrong reads.

Limits: one decoder, no Android. Each shot is one frame, while a real phone chains dozens and refocuses: on that count the model is cautious, and a phone working from a 4K frame would read the same codes from about twice as far. On others it is kind: no glare, gentle ink spread, no focusing limit, and nothing closer than 15 cm. Pixels per module carry over to any phone, though each decoder sets its own threshold; the centimetres are our camera's.

Size with these numbers, then scan a real print, at real size and distance, on an iPhone and an Android.

Why Our Dynamic Codes Stay Small: A Redirect, Not Magic

At Oh My Code, a dynamic code encodes a short link of thirty-odd characters that redirects, so at level M the printed code stays at version 3, 29 x 29 modules, however long the destination. A 3 cm version-3 code read every time from 15 to 40 cm in our simulation.

It's a redirect, not magic: the code works only while the link behind it lives, which for a dynamic code means while the subscription does. Any shortener carries that dependency, ours included; static vs dynamic QR codes weighs the trade.

With a free static code, the lever is the content itself: fewer characters, fewer modules. Download it as PNG or SVG, no account needed.

Make yours lean, then scan the print from where people will actually stand.

QR Code Capacity FAQ

Can a QR code hold an image, a PDF or a video?

Not in practice. The ceiling is 2,953 bytes, about 3 KB, at version 40, level L. Denso Wave says images and sounds can't practically be stored for phone reading, and readers treat the bytes as text (RFC 9285). A Reddit stunt squeezed a playable game into one code, and only by compressing it. Files go behind a link.

What happens if my content doesn't fit in a QR code?

The generator moves up a version until version 40. For a link or ordinary text, nothing fits past 2,953 bytes at level L, or 2,331 at M. The standard can split a message over up to 16 codes, but we couldn't confirm phones rejoin them: trim it, or link to it.

What is a QR code version, and how do I find mine?

A version is the grid size, from 1 to 40: count the modules along one side, without the quiet zone, subtract 17 and divide by 4. So 21 modules is version 1, 29 is version 3, 177 is version 40. Your content and error-correction level choose it.

Why does a QR code scan on one phone but not on another?

Because cameras and decoders differ. Denso Wave says phone reading depends, in many cases, on the camera, and a Hacker News practitioner finds iPhones far better at scanning than cheap Android phones. Our figures come from Apple's decoder alone, so test the print on both, at its real size and distance.

Benjamin Turc

Benjamin Turc

Founder of Oh My Code. Convinced you can make QR codes scannable without making them ugly.

LinkedIn