Skip to content
Developer Tool

QR Version Estimator

Enter a payload and an error-correction level to find the smallest QR version that holds it, the module count, and how full that version is. Capacity is looked up in the standard byte-mode capacity table.

1. Enter the payload

Method: payload length is measured in UTF-8 bytes and matched against the standard byte-mode capacity table for the chosen error-correction level; the smallest version whose capacity covers the payload wins. Module count = 17 + 4 × version.

Result
Minimum version (EC level M)
Version 2
25 × 25 modules
Payload length24 bytes (24 characters)
Detected modeByte
Capacity of this version26 bytes
Capacity used92.3%

Why Version Matters Before You Design

The version decides how dense the code is: the same physical size holds more modules as the version rises, so each module shrinks and the code gets harder to print and scan. A payload that fits version 3 is a forgiving code; the same payload at version 15 needs careful printing. Checking the version early tells you whether a short link, a lower error-correction level, or a larger print size is the right move.

Short payloads scan better

Shortening a URL — removing tracking parameters you do not need, or pointing at a short redirect — often drops the version by several steps. That is the cheapest readability improvement available.

Frequently Asked Questions

What is a QR version?

The version is the size class of the code: version 1 is a 21×21 module grid, and each version adds 4 modules per side, up to version 40 at 177×177. A longer payload or a higher error-correction level needs a higher version.

Why is this estimate conservative for numbers and letters?

The capacity table used here is byte mode, which stores every character as 8 bits. Numeric and alphanumeric modes pack characters more tightly, so a numeric-only or alphanumeric-only payload may fit a slightly lower version in practice. The byte-mode answer is always safe.

Which error-correction level should I pick?

M is the usual default: it recovers about 15% damage. Use H (about 30%) for codes that will be handled, scratched, or printed small, and L (about 7%) only for clean, controlled environments where you need maximum capacity.

What if my payload does not fit even version 40?

Shorten the payload — use a short URL instead of a long one, or move the content behind a link. A code above version 10 is already dense; at version 40 it is extremely hard to print and scan reliably.