Generate a QR code

Type a link or any text and the code appears as you go. It is encoded in this tab, so nothing you put in it travels.

?
?

Encoded in this tab. A wifi password or a private link put into a code here is never sent anywhere.

How to use it#

  1. Type or paste the link or text you want the code to carry.
  2. Pick an error correction level if the code will be printed or is likely to get scuffed.
  3. Drop a logo in if you want one in the middle. Medium correction or higher is needed for that.
  4. Download it as an SVG for print, or a PNG for anywhere that will not take one.

Take the SVG unless something refuses it#

A QR code is a grid of squares, which makes it exactly the kind of image a vector format was invented for. An SVG is a few kilobytes, stays razor sharp at any size, and can be scaled up to fill a poster without the edges going soft. A PNG is fixed at the size it was written, and blowing one up is how you get a code that will not scan.

The PNG here is rendered at 1024 pixels, which is enough for a business card or an A4 page. Take it when you are pasting into something that will not accept an SVG, which in practice means some older design tools and a lot of print portals.

What error correction actually buys#

A QR code carries redundant data so it can still be read when part of it is obscured. The four levels recover roughly 7, 15, 25 and 30 per cent of the code. The cost is size: the same content at the highest level needs a denser grid, so each square is smaller at the same printed dimensions.

Medium is the right default for a screen or a clean print. Go higher if the code will be on something that gets handled, printed small, or has a logo placed over the middle. Going higher than you need makes the code harder to scan at a distance rather than easier, because the squares shrink.

A logo in the middle, and what it costs#

Putting a logo on a QR code is not a feature of the format. It works by covering modules and relying on the error correction to reconstruct them, which means every pixel of logo is spent out of the same budget that copes with a scratch, a fold, a glare off the laminate or a phone held at an angle.

That is why the size here is set by the correction level rather than by a slider. Medium allows a logo over about a tenth of the area, High about a fifth, and Low is offered nothing at all because the roughly 7% it recovers is needed for the real world. The page says what share your logo is covering.

A light pad is drawn behind the logo so a transparent one does not sit over half-visible modules, which confuses scanners more than a solid block does. Even within these limits, scan the finished code with an actual phone before committing it to print.

The quiet zone is not optional#

Every code here is drawn with the four-module white border the specification requires. Scanners use it to find where the code starts, and a code cropped tight to its edges or pasted straight onto a coloured background is the single most common reason one will not read.

For the same reason the code is drawn black on white regardless of whether you are reading this page in dark mode. An inverted code, or a low-contrast one in brand colours, is a code that works on your phone and fails on somebody else.

What you can put in one#

Anything that is text. A URL is the common case, and it is worth using a short one, because every character makes the grid denser and the squares smaller. Beyond links, the conventions people scan for are wifi credentials, a phone number, an email address or a calendar event, each written in a particular text format that the phone camera recognises.

The limit is about 2,900 bytes at the lowest correction level and around 1,270 at the highest, and the page tells you the moment you go over. Bear in mind that is bytes rather than characters: an emoji is four of them.

Frequently asked questions#

Which error correction level should I use?

#

Medium for a screen or a clean print. Higher when the code will be handled, printed small, or partly covered by a logo. Higher levels need a denser grid, so the squares get smaller, which can make a code harder to scan rather than easier.

Do these codes expire or get tracked?

#

No. The code is the content itself, not a redirect through anyone else. There is no account, no short link in the middle and nothing to expire, so a code you print today still works in ten years.

Can I put a logo in the middle?

#

Yes, from Medium correction upward. A logo works by destroying modules and letting the error correction rebuild them, so the size is capped by what the level can lose: about 10% of the area at Medium and 20% at High. Low correction is not offered a logo at all, because the little it recovers is needed for print and glare. Scan the result with a phone before you print a thousand of them.

Why is the code always black on white?

#

Because that is what scans most reliably. Scanners need strong contrast and expect a dark code on a light background, so inverted or low-contrast codes fail on some phones even when they work on yours.

Why does my text not fit?

#

A QR code holds roughly 2,900 bytes at the lowest correction level and about 1,270 at the highest. The page shows how many bytes you are using against the limit. Lowering the correction level buys room, and so does using a shorter URL.