QR code generator

Make a QR code from a link, a Wi-Fi login, a contact card and more. Pick a type, fill in the fields, set the colours and error correction, then download the code as an SVG or PNG.

QR code editor format

The editor is form driven, so you rarely need to write anything by hand. Behind the form is a small line based source you can read and edit on the Source tab. The first line is the word qr. Then a type: line, then one line per field, then the render settings: error correction, module size, margin and the two colours.

You write
qr
type: url
url: https://markdown.org
ec: M
cellSize: 4
margin: 4
dark: #000000
light: #ffffff
You get

Payload types

The type decides which fields you fill in and how they are encoded into the string the QR code carries. Every type is listed below with the exact string it builds.

Text

Any raw text, encoded as is. Good for a short note, a code or a serial number.

You write
qr
type: text
text: Hello from markdown.org
You get

URL / link

A web address. If you leave off the scheme the editor adds https:// for you.

You write
qr
type: url
url: https://markdown.org/tools/
You get

Email

Opens a new email to the address, optionally with a subject and body. Encodes as mailto:addr?subject=..&body=...

You write
qr
type: email
email: hi@example.com
subject: Hello
body: Just scanned your code
You get

Phone

Dials a number. Encodes as tel:<number>.

You write
qr
type: phone
phone: +15551234567
You get

SMS

Starts a text message with an optional pre filled body. Encodes as SMSTO:<number>:<message>.

You write
qr
type: sms
number: +15551234567
message: Hello there
You get

Wi-Fi

Joins a wireless network. Set the security to WPA, WEP or None. Encodes as WIFI:T:<WPA|WEP|nopass>;S:<ssid>;P:<password>;H:<true if hidden>;;.

You write
qr
type: wifi
ssid: MyNetwork
password: s3cr3t-pass
security: WPA
hidden: false
You get

Contact card (vCard)

Adds a full contact. Encodes a BEGIN:VCARD … END:VCARD block with the name, organisation, title, phone, email, URL and address.

You write
qr
type: vcard
name: Ada Lovelace
org: Analytical Engines
title: Engineer
phone: +15551234567
email: ada@example.com
url: https://example.com
address: 12 Baker St, London
You get

Location (geo)

Drops a map pin at a latitude and longitude. Encodes as geo:<lat>,<lng>.

You write
qr
type: geo
lat: 51.5074
lng: -0.1278
You get

Calendar event

Adds an event to the calendar. Encodes an iCalendar VEVENT with a title, location, start and end. Times are written as YYYYMMDDTHHMMSS.

You write
qr
type: event
title: Launch party
location: The Office
start: 2026-08-01T18:00
end: 2026-08-01T21:00
You get

Crypto payment

Requests a payment to a wallet address. Encodes as <coin>:<address>?amount=<amount>, for example bitcoin:<address>?amount=0.01.

You write
qr
type: crypto
coin: bitcoin
address: 1BoatSLRHtKNngkdXEeobR76b53LETtpyT
amount: 0.01
You get

Settings

These lines control how the code is drawn. They apply to every type.

Write this Meaning
ec: LError correction: L low, M medium, Q quartile, H high. Higher survives more damage but holds less data.
cellSize: 4Module size in pixels.
margin: 4Quiet zone around the code, in modules.
dark: #000000Colour of the dark modules.
light: #ffffffBackground colour.

Cheat sheet

Type Encodes to
textThe raw text
urlThe link (adds https:// if missing)
emailmailto:addr?subject=..&body=..
phonetel:number
smsSMSTO:number:message
wifiWIFI:T:WPA;S:ssid;P:password;H:false;;
vcardBEGIN:VCARD … END:VCARD
geogeo:lat,lng
eventiCalendar VEVENT
cryptocoin:address?amount=..