QR Code Generator

Generate QR codes from any URL or text instantly. Free, client-side, no signup.

Error correction level H is the highest of the four QR levels, and it is fixed here — every code this page produces uses it. That trade of capacity for durability shapes almost everything about what you can and cannot encode: text or a URL goes in, a PNG QR code comes out, generated directly in your browser.

Why this tool locks in level H

QR codes carry redundant Reed-Solomon data so scanners can reconstruct the payload from a partial read. The four levels — L, M, Q, H — can recover roughly 7%, 15%, 25%, and 30% of damaged codewords. This tool always encodes at H, which means the codes it produces survive being printed small, photographed at an angle, or partially covered by a sticker or logo. The cost is capacity: at level H the ceiling is 1,273 bytes of arbitrary data, versus 2,953 bytes at level L. Numeric-only content stretches further (3,057 digits) and uppercase-alphanumeric content sits in between (1,852 characters), because QR has denser encoding modes for restricted alphabets.

If your input exceeds what level H can hold, generation fails and the tool tells you the text is too long. The fix is almost never a bigger QR code — a version 40 symbol is a 177x177 module grid that is genuinely hard to scan from a phone. Shorten the payload instead: link to the content rather than embedding it.

Output size and the quiet zone

The generated file is a 240x240 pixel PNG with black modules on a white background, shown in the page at 200px. The margin is set to 1 module rather than the 4 the spec recommends, which keeps the image compact; if you print the code onto a busy background, add your own white padding around it or scanners may struggle to find the edges. A short URL like https://example.com (19 characters) produces a version 3 symbol — a 29x29 grid — which scans reliably even at small print sizes. As a rule of thumb, a code is scannable from about ten times its printed width, so a 2 cm code works to roughly 20 cm.

Short URL
Input: https://example.com
Output: Version 3 symbol, 29x29 modules
19 bytes at level H. Small symbols like this tolerate small print sizes.
The capacity ceiling
Input: 1,273 bytes of arbitrary text
Output: Version 40, 177x177 modules — the largest QR code that exists
One more byte (1,274) fails with the too-long error.
Good to know: Ctrl+Enter (Cmd+Enter on macOS) generates the code without reaching for the button — handy when you are iterating on the text.

Questions people ask

My text is under 1,273 characters but generation still failed. Why?

The limit is 1,273 bytes, not characters, and the tool encodes UTF-8. Accented Latin characters take 2 bytes each, most CJK characters take 3, and emoji take 4, so 500 characters of Chinese text is already about 1,500 bytes. Trim the content or link to it instead.

Does the Copy button copy the QR image?

No — Copy Text puts the encoded text back on your clipboard, which is useful for verifying exactly what went into the code. To get the image itself, use Download QR, which saves the PNG with a timestamped filename.

If the payload is a URL with query parameters, run it through the URL encoder first so special characters survive the trip. The image resizer can upscale the 240px PNG for large-format printing — QR codes upscale losslessly as long as you use PNG.

Further reading