Skip to content

QR code generator

For links, Wi-Fi, contacts and text

A scheme is added if you leave it out, because a code reading example.com opens nothing on most phones.

Error correction

4 modules
None8
Square
SquareRound
None
None30%

Clears the middle so you can place a logo over it in your own design tool.

Fill in the fields and your code appears here.

This tool runs entirely inside your browser. Your files are never uploaded, never stored, and never seen by anyone but you.

Which error correction level?

A QR code carries redundant data so it still reads when part of it is damaged. Higher correction survives more damage but makes the code larger and denser for the same content. Medium is the sensible default. Choose High if the code will be printed, handled, or covered by a logo — that redundancy is exactly what a logo consumes.

Why the quiet zone matters

The blank border is not decoration. Scanners use it to find where the code begins, and the specification requires four modules of it. Codes are routinely printed flush against other artwork and then fail to scan for no visible reason.

Colours

Dark modules on a light background is what the specification defines, and what decoders look for. A light-on-dark code is a valid-looking image that many scanners simply refuse, so it is flagged here rather than left for you to discover. Low contrast fails the same way, just less predictably.

Wi-Fi codes and the escaping problem

The Wi-Fi format separates its fields with semicolons, so a password containing ; , : or a backslash ends the field early and the network silently fails to join. A password made only of hex digits has to be quoted, or it is read as a hexadecimal value rather than as those characters. Both are handled here; a surprising number of generators handle neither.

Does the code expire, or track scans?

No. It is generated in your browser and encodes exactly what you typed, permanently. Many free generators produce a code pointing at their own redirect service, which lets them count scans, and stops working if that service does. Nothing here touches a network, so there is nothing to expire.

Related tools