QR Code Generator

Generate QR codes for a link, Wi-Fi, a contact card, email, SMS or plain text

Loading...

About QR Code Generator

A QR code holds text and nothing else. Everything a phone appears to do with one, offering to join a network, to save a contact, to open a message with the number already filled in, comes from that text following a convention the camera app recognises. The tabs above write those conventions for you: fill in the network name and the password, and the code carries the line a phone reads as an invitation to join.

Everything happens in your browser. Nothing typed here is sent anywhere, which matters most on the Wi-Fi tab, where the password is part of what the code will carry.

What each tab writes

  • Text: exactly what you type, spacing and all
  • URL: the address, with https assumed when no scheme is given
  • Wi-Fi: the network, its security and its password, escaped so a semicolon in either survives the trip
  • Contact: a vCard, the format a phone files under Contacts
  • Email: a mailto link, with the subject and the body filled in
  • SMS: a number and a draft message
  • Phone: a number the dialler opens

Whatever the tab, the exact text the code carries is shown beneath the preview, so nothing about it has to be taken on trust.

Error correction

A QR code carries its own repair kit: some of the modules are there to rebuild the ones a scratch or a thumb takes away. Choosing more of them costs room for the text.

  • L (Low): around 7% recovery, for a code on a screen
  • M (Medium): around 15%, the sensible default
  • Q (Quartile): around 25%, for something printed and handled
  • H (High): around 30%, for a label that will be scuffed

How much a code holds

The counter under the preview is the honest answer, because the limit depends on both the error correction and what the text is made of. The largest code there is holds 7,089 digits, or 4,296 characters if they are uppercase and punctuation, or 2,953 bytes of anything else, and that is at the lowest error correction. At the highest it is roughly a third of that. An accented letter or an emoji costs two to four bytes rather than one.

Long text also makes a denser code, which needs to be printed larger to stay readable. A short link that redirects will always scan better than the address it stands for.

Making it look like yours

The encoder decides which modules are dark, and that part is not up for discussion: change one and the code says something else. Everything else is: the two colours, a second colour to fade towards, the three corner squares in a colour of their own, square or rounded or dotted modules, the width of the blank border, a logo in the middle, and a transparent background for putting the code on top of something else.

All of it costs something. Rounded modules and dots take ink away from a pattern drawn with none to spare, and a logo works by covering modules and letting the error correction rebuild them. Which is what the Check it scans button is for: it hands the finished image to your browser's own barcode reader and compares what comes back with what went in. A pass is not a promise about every phone; a failure is a definite answer, and it arrives before anything is printed.

Getting one to scan

  • Keep the code dark and the background light. Inverted codes read on some phones and not others, and you will not find out which until it is printed.
  • Leave the quiet zone at four modules. The blank border is not decoration: it is how a reader finds the edge of the code.
  • Print no smaller than about 2 cm across for something held in the hand, and larger for anything read at a distance.
  • Download the SVG when it is going into print. It has no resolution to run out of.
  • Press Check it scans after any change to the look, and again after the last one.
  • Scan the finished code with a phone that has never seen it before, on the material it will be printed on.

Free, unlimited, no sign-up and no watermark. The codes are generated in your browser and expire nowhere: a QR code made here works for as long as whatever it points at does.

Frequently Asked Questions

What can a QR code hold besides a link?

A QR code holds text and only text. Everything else is convention: a phone offers to join a network because the text begins with WIFI: and lists the fields in the order the format expects, and it offers to save a contact because the text is a vCard. The tabs write those conventions for you, so a network name with a semicolon in it or a company called Smith, Jones and Co comes out escaped rather than truncated. The exact text is shown under the preview whichever tab you use, because a code that carries the wrong thing scans just as cleanly as one that carries the right thing, and nothing about it looks wrong until someone points a phone at it.

Is the Wi-Fi password I type here sent anywhere?

No. The code is drawn in your browser and nothing typed on this page leaves it, so the password goes into the image and nowhere else. What is worth knowing is what the code itself is: the password is in there in plain text, and anyone who scans it can read it. That is the point of the thing, and it is fine for a guest network on a poster in a cafe. It is not a way to share a password privately.

Do these codes expire, or can I change where one points later?

They never expire, and they can never be changed. The address is printed into the pattern itself, so a code made here works for as long as whatever it points at does, with nobody in the middle who can switch it off or start charging for it. The other side of that is that a printed code is final: if the address has to change later, put a link you control in the code and redirect from there, which is what services selling dynamic QR codes are doing on your behalf.

Why does it say my text will not fit?

Because a QR code has a hard ceiling and you have reached it. The largest code in the standard holds 7,089 digits, or 4,296 characters when they are uppercase letters and a little punctuation, or 2,953 bytes of anything else, and those are the figures at the lowest error correction. At the highest it is roughly a third of that, because the recovery data has to live somewhere. An accented letter costs two bytes and an emoji four. The counter under the preview shows what has been used and what the ceiling is for the settings you have chosen, so dropping from H to M is often the whole fix.

PNG or SVG, and how large should I print it?

SVG for anything going into print or into a designer hands, because it is drawn from shapes rather than pixels and has no resolution to run out of at poster size. PNG for a screen, a slide or a document, at the size the slider is set to. As for how large: around 2 cm across is the usual floor for a code someone holds, and for one read from further away the rule of thumb is a tenth of the scanning distance, so a code read from two metres wants to be about 20 cm. Long text makes a denser pattern that needs more room again, which is a good reason to encode a short link rather than a long one.

How much of the look can I change?

The colours of the code and the background, a second colour for it to fade towards, a separate colour for the three squares in the corners, the shape of the modules and of those corner squares, the width of the blank border, a logo in the middle, and a transparent background for putting the code on top of something else. Two rules survive all of it: keep the contrast high, and keep the code darker than the background. An inverted code, light on dark, is read by some phones and ignored by others, because the specification describes the corner patterns as dark on light and a reader is allowed to take that literally. The tool says so when a pair of colours breaks either rule.

Will a code with rounded modules or a logo still scan?

Often, and there is a button that answers it for the code in front of you rather than in general. Check it scans hands the finished image to the browser's own barcode reader and compares what comes back with what went in, so a design that has been decorated past the point of working says so before it is printed. What the decoration costs is real: rounded modules and dots take ink away from a pattern drawn with none to spare, and a logo works by covering modules and letting the error correction rebuild them, which spends the damage tolerance you chose. The tool shows how much of the code a logo covers against how much the current level can rebuild. A pass is not a promise about every phone in the world, but a failure is a definite answer.