About QR codes
A QR code stores text as a pattern of black and white squares that a camera can scan and decode instantly. Higher error correction levels add redundancy so the code still scans even if part of it is damaged or obscured, but they also make the pattern denser.
This tool generates the QR code entirely in your browser using the qrcode-generator library; your text is never sent to a server. Long text needs a higher error correction level's extra capacity or a shorter input to stay within the QR code's data limit.
How do I create a QR code?
To create a QR code, type or paste the text or URL you want to encode, choose a size and error correction level, and the tool instantly draws a scannable pattern of black and white squares in your browser. Example: entering "https://utilduck.com" and clicking download saves a ready-to-scan PNG.
Steps to generate a QR code
- Type or paste the text, URL, or other content you want to encode.
- Choose an output size — small, medium, or large — based on where you'll display it.
- Pick an error correction level: higher levels tolerate more damage or obstruction but produce a denser pattern.
- Check the live preview to confirm the code renders without an error.
- Click download to save the QR code as a PNG image.
How QR codes store data
Data capacity depends on: QR version (grid size) x error correction level x character type (numeric, alphanumeric, byte, or kanji)
- Version = the QR code's grid size, from a small 21x21 (version 1) up to a large 177x177 (version 40)
- Error correction level = how much of the code can be damaged or covered and still scan correctly (L, M, Q, or H)
Error correction levels and typical use
| Level | Approx. recovery capacity | Typical use |
|---|
| L (Low) | ~7% | Clean digital display, no obstruction expected |
| M (Medium) | ~15% | General purpose — the common default |
| Q (Quartile) | ~25% | Printed materials that may get scuffed |
| H (High) | ~30% | Codes with a logo overlay or heavy wear |
Frequently asked questions
What happens if my text is too long for the QR code?
A QR code has a maximum data capacity that depends on its version (grid size) and error correction level; longer text needs a bigger grid or a lower error correction level to fit, and past the absolute maximum, the code cannot be generated at all. Shortening the text (for example, using a short link instead of a full URL) usually resolves this.
What does error correction actually protect against?
Error correction adds redundant data so a scanner can still read the code correctly even if part of it is dirty, torn, faded, or covered by a logo. Higher error correction levels add more redundancy, which makes the pattern visually denser, but they also increase how much damage the code can tolerate.
Does a bigger QR code hold more information?
Yes — a QR code's grid size (its "version") determines how many total data cells it has, and higher versions with more cells can store more characters. As the encoded text or URL grows longer, the QR code generator automatically needs to increase the version to fit the data.
Is my data sent to a server when I generate a QR code here?
No. The QR code is generated entirely inside your browser using JavaScript, so the text you type never leaves your device or gets transmitted anywhere.
As you increase error correction or add more text, the pattern becomes denser and can be harder for some scanners to read at small sizes; for printed materials, test the generated code with a real scanner at the intended print size before mass-producing it.
Sources: ISO/IEC 18004 (QR Code)
Privacy and safety
- Runs in your browser — Everything you type is calculated on your own device. Your inputs are never sent to a utilduck server.
- Encrypted connection — Pages are served over HTTPS, so nobody on the network can read what you load.
- Not shared with third parties — Your inputs are not passed to analytics or advertising services.
- Nothing is stored — Results are not saved to any server, and there is no account to create.
Last updated: 2026-08-17