WiFi, vCard & URL QR Code Generator

Make a QR code for a link, a WiFi network, a contact card, an email, a phone number or an SMS, drawn as you type and saved as an SVG or a PNG. Nothing is fetched.

How it works

Pick a content type and fill in its fields; the code is redrawn on every keystroke. Under it is the exact text it holds, the only way to check a QR code by eye, and a line such as Version 4 · 33×33 modules · 44 bytes that shows the code growing with the text.

Content typeWhat the code holds
Plain Textthe text as typed
URLthe address as a browser reads it, with https:// added when there is no scheme
WiFiWIFI:T:WPA;S:name;P:key;;, plus H:true for a hidden network
vCarda vCard 3.0 contact card
Emaila mailto: address, with the subject and message percent-encoded
Phone Calla tel: number with the spaces, brackets and dashes taken out
SMSSMSTO:number:message

Fields are checked as you type, and a wrong one takes the code away until it is put right: a network name over 32 bytes, a WPA key outside 8 to 63 characters, an email address with no @, a number with letters in it.

Error correction is Low (7%), Medium (15%, the default), Quartile (25%) or High (30%): how much of the code can be damaged and still read, paid for in size. The code is always black on white with the four-module quiet zone the format requires. Download it as an SVG or as a PNG at least 640 pixels across. Everything is encoded in the tab; no image is fetched from a QR service. For an authenticator's otpauth:// code, the one-time password page draws one from its own settings.

Examples

A network whose name and key have punctuation in them

Network name Café; Guest, security WPA/WPA2/WPA3, password p@ss:word,1:

WIFI:T:WPA;S:Café\; Guest;P:p@ss\:word\,1;;

Version 4, 33×33 modules, 44 bytes. The semicolon, colon and comma are escaped with a backslash, because the format gives each of them a meaning.

A contact card at each correction level

First name Ada, last name Lovelace, organisation Analytical Engines, Ltd, phone +44 (20) 7946 0958, email ada@example.com, website example.com:

BEGIN:VCARD
VERSION:3.0
N:Lovelace;Ada;;;
FN:Ada Lovelace
ORG:Analytical Engines\, Ltd
TEL;TYPE=CELL:+442079460958
EMAIL;TYPE=INTERNET:ada@example.com
URL:https://example.com/
END:VCARD

193 bytes with its CRLF line endings. That is version 9 at Low, 10 at Medium, 12 at Quartile and 14 at High, where the code is 73 modules across instead of 53.

A URL as the phone will read it

Example.COM/a page?q=1 2
https://example.com/a%20page?q=1%202

The scheme is added, the host lower-cased and the spaces percent-encoded before anything is encoded, so the text under the code is what a scanner will open. The URL parser takes the same address apart.

Common problems

The phone will not join the network

A WPA key must be 8 to 63 characters or exactly 64 hex digits, and a WEP key 5 or 13 characters or 10 or 26 hex digits; the page marks any other length. A payload written by hand elsewhere can fail on a ;, :, ,, \ or " in the name or key that was not escaped.

Too much text for a QR code

The largest code, version 40, holds 2,953 bytes at Low, 2,331 at Medium, 1,663 at Quartile and 1,273 at High. Every character is encoded as bytes, so a letter such as é costs two and an emoji four, and digits are not packed more tightly. When the chosen level cannot hold the text but Low can, the page says so.

A printed code that will not scan

Scanners find a code by its contrast and its empty margin, so recolouring it light on dark, printing it pale or cropping into the white border can stop it being read. For a code that will be scuffed or partly covered, choose Quartile or High.

Frequently asked questions

Do these QR codes expire?

No. The code holds the text itself, not a link to a redirecting service, so it works as long as the address, network or number in it does. Nothing is tracked and nothing needs renewing.

Which error correction level should I use?

Medium suits a code shown on a screen or printed cleanly. High survives the most damage, for packaging or anything handled, at the cost of a denser pattern. Low fits the most text into the smallest code.

Should I download the SVG or the PNG?

The SVG for print and design work, since it scales to any size without blurring and carries its own white background. The PNG where only a bitmap will do, such as a slide or a chat message; each module is a whole number of pixels, so its edges stay sharp.

Why does the phone still ask for the WiFi password?

When the password box is empty the code carries no key, so the phone knows the network but has to ask for one. Fill in the password and pick the security type the router uses; None is only for a network with no password at all.

Related tools

References