toolfree

QR code generator

Make a QR code from a URL or any text and download it as a PNG or a print-ready SVG. Generated in your browser, with no tracking redirect.

Runs in your browser

Higher correction survives more damage but needs a denser code for the same content. M is the usual choice; use H only when the code will be printed on something that gets handled.

The code points where you tell it to

Many free QR generators encode a link to their own domain that redirects to yours. That gives them a scan count and gives you a code that stops working whenever they do. The code on this page encodes exactly the characters you typed — nothing is registered, and no account is needed to keep it working.

Download the SVG for anything that will be printed. It is a vector, so it stays sharp at any size; a PNG scaled up to poster size will not.

Error correction

A QR code carries redundant data so it can still be read when part of it is damaged or covered.

LevelRecoverableUse for
L7%Screens, and long content that would not otherwise fit
M15%The usual choice
Q25%Print that gets handled — labels, packaging
H30%Codes with a logo placed over the middle

Higher correction is not free: the same content needs a denser grid, and a denser grid needs to be printed larger to stay scannable.

Size, and why the quiet zone matters

The white margin around the code is part of the specification — four modules wide — and scanners use it to find the code’s edges. Placing a code flush against artwork or a coloured background is a common reason a printed code fails to scan, and the failure is intermittent enough to survive testing.

As a rough rule for print, a code needs to be about a tenth of the distance it will be scanned from: 3 cm across for a code read at 30 cm, on a table tent or a business card.

Content that scanners understand

Plain text and URLs work everywhere. Some other formats are widely, though not universally, recognised:

WIFI:T:WPA;S:NetworkName;P:password;;
mailto:hello@example.com?subject=Hello
tel:+886212345678
geo:25.0330,121.5654
BEGIN:VCARD…END:VCARD

Keep URLs short. Every character makes the grid denser, and a long tracking query string can push a code from a comfortable 33×33 grid to one that needs careful printing to survive.

Your data stays here

The code is generated in your browser and never sent anywhere, which matters for the Wi-Fi passwords and private links people put into QR codes without thinking about where the encoding happened.