Skip to content
Encoding Tool

QR Data Capacity Calculator

Paste a payload and see the smallest QR version that fits it at each error-correction level, plus reference capacities so you can judge how close to the limit you are.

1. Your payload

31 characters (byte-mode length; multi-byte characters may consume more capacity).

Reference: maximum byte-mode characters

VersionLMQH
V11714117
V232262014
V353443524
V478645034
V5106866844
V10271213151119
V402,9532,3311,6631,273

Byte-mode maxima per the QR specification. Numeric and alphanumeric payloads pack more efficiently, so a short numeric string may fit a smaller version than this table suggests.

Result

Enter a payload and press “Find minimum version”. The tool tries versions 1–40 using the same encoder that generates QR codes on this site.

How Much Data Fits in a QR Code?

Every QR code has a version, numbered 1 to 40, that sets how many modules it contains. Version 1 is a 21 × 21 grid; version 40 is a 177 × 177 grid. More modules mean more data, but also smaller modules at any given print size, which is why a code stuffed with data becomes harder to scan. The error-correction level works in the opposite direction: higher correction reserves more of the code for redundancy, so less room remains for your payload. Capacity is therefore a three-way trade-off between how much you encode, how much damage you want to survive, and how large you are willing to print.

What the four error-correction levels buy you

Level L recovers about 7% of damaged codewords, M about 15%, Q about 25%, and H about 30%. Those percentages describe the share of the code that can be lost or obscured and still decode. Level M is the default for ordinary printed codes. Level H is the right choice when the code carries a logo, sits somewhere it may be scuffed, or will be printed on a textured surface. The price of H is capacity: a version-1 code holds 17 byte-mode characters at L but only 7 at H. At version 40 the same trade-off runs from 2,953 characters at L down to 1,273 at H. If your payload only just fits at H, consider shortening it rather than accepting a denser code.

Why shorter payloads scan better

A short URL produces a low-version code with large, forgiving modules. A long URL with tracking parameters, or a full contact record, pushes the version up and shrinks every module. That is why the single most effective optimisation for scannability is shortening the payload: use a short redirect you control instead of a long destination URL, strip unnecessary tracking parameters, and keep vCards to the fields people actually need. The redirect has a second benefit — the destination can change without reprinting the code.

Practical rules

  • Keep marketing codes at version 10 or below when you can; above that, increase the print size.
  • Use level M for clean indoor print, level Q or H for logos, outdoor use, or rough surfaces.
  • Count multi-byte characters carefully: emoji and some non-Latin scripts consume several bytes each.
  • If the payload exceeds version 40, split the content across codes or link to a page instead of encoding everything.
  • Always test-scan the real payload at the real print size — capacity fitting is necessary, not sufficient.

Capacity tells you what is possible. Print size, contrast, and testing decide what actually works.

Frequently Asked Questions

What is a QR code version?

The version, 1 to 40, sets the grid size: version 1 is 21 × 21 modules and version 40 is 177 × 177. Higher versions hold more data but have smaller modules at the same print size, so they are harder to scan.

Which error-correction level should I use?

Level M (about 15% recovery) is the default for clean print. Use Q or H (about 25% or 30%) when the code carries a logo, may be scuffed, or is printed outdoors or on textured surfaces. Higher levels reduce capacity.

Why does my long URL make such a dense QR code?

Longer payloads need higher versions with more, smaller modules. Shortening the URL — for example with a short redirect you control — drops the version and makes every module larger and easier to scan.

What happens if my payload is too large for version 40?

A single QR code cannot hold it. Either shorten the payload, move the content to a web page and encode its short link, or split the content across multiple codes.