By Updated

QR Code Generator

Create QR codes for URLs, text, and more. Customize size and colors. Download PNG.

Interactive tool

What is a QR code?

A QR code stores text (often a URL) in a square barcode cameras can scan. Higher error correction lets codes remain readable when partially damaged or obscured.

The parts of a QR code: three finder squares, the quiet zone margin, the data area and a logo covering the centre
The quiet zone is part of the specification rather than decoration. Codes that fail to scan are more often missing that margin than damaged.

How to use

  1. 1Type a URL or any short text.
  2. 2Adjust size and optional foreground/background colors.
  3. 3Generate and download the PNG.
What you get

Key features

Error correction

Pick L/M/Q/H balancing density vs robustness.

Brand colors

Set dark and light module colors (test scans before print).

Why generate QR codes locally?

Campaign URLs and internal tools should not be logged by third-party QR APIs. This generator uses qrcode.js only in your session.

Common use cases

  • WiFi setup cards
  • Event check-in links
  • App store download links

What a QR code can hold

  • The most common payload is a URL, but the format is just text, so a code can carry a plain message, an email address, a phone number, a wifi network with its password, a calendar event or a vCard contact.
  • Capacity depends on what is encoded. Numbers pack tightest, then uppercase letters and a small symbol set, then arbitrary text. A short URL is comfortable; a whole vCard pushes the code to a much denser grid that needs a bigger print size to scan reliably.
  • Longer payload means more modules, and more modules means each one is physically smaller at the same print size. If a code will be printed small, keep the payload short.

Error correction, and why a logo needs it

  • Every QR code carries redundant data so it still scans when part of it is dirty, creased or covered. There are four levels, and the table below gives the share of the code each can lose.
  • Putting a logo in the middle works by deliberately destroying part of the code and letting error correction reconstruct it. That is why a code with a logo should be generated at level H: at level L the same logo takes out more than the code can recover.
  • The trade is size. Higher error correction means more redundant modules, so the grid gets denser for the same payload.

No redirect in the middle

  • Many free QR generators encode a URL on their own domain that redirects to yours. It lets them count scans, and it means your printed code stops working the day that service shuts down, changes its pricing or loses the domain.
  • This generator encodes exactly the text you type. The code points straight at your URL, nothing is counted, and it will keep working long after this site is gone. That matters most for the codes that are expensive to reprint: signage, packaging, business cards.

QR error correction levels

Higher levels survive more damage but need more modules for the same payload, so the code gets denser at a given size.

LevelRecoverable damageUse when
Labout 7%clean digital display, longest payload
Mabout 15%the usual default for print
Qabout 25%labels that will be handled or scuffed
Habout 30%a logo is placed over the centre

Whatever the level, leave the quiet zone: the clear margin of at least four modules around the code. Codes that fail to scan are more often missing that margin than damaged.

Pro tips

Tips & best practices

Keep the payload short

Fewer characters means fewer modules, and fewer modules means each one is physically larger at the same print size. A short URL scans from further away than a long one.

Leave the quiet zone

A clear margin of at least four modules around the code is part of the specification. Codes that fail to scan are more often missing that margin than damaged.

Use level H if you add a logo

A logo works by destroying part of the code and letting error correction rebuild it. At lower levels the same logo takes out more than can be recovered.

Test with an actual phone, at actual size

Scanning from a monitor at 400 pixels proves nothing about a code printed 15 millimetres wide on a matte label.

Do not invert the colours

Scanners expect dark modules on a light background. Light on dark fails on many readers, and low contrast pairs fail on all of them.

Built for trust

Privacy & security

QR generation happens in your browser; content is not sent to Zap.Tools.

Frequently Asked Questions

Can I use custom colors?

Yes; test scanned codes before printing; extreme contrast helps readability.

Maximum length?

Very long strings increase module density; keep payloads concise.

Is generation private?

qrcode.js runs locally; nothing is sent to Zap.Tools.

What is error correction?

Higher levels add redundancy so partial damage or logos obstruct less data.

SVG export?

This tool exports PNG; vector workflows can trace externally if needed.