Skip to content
Buy me a coffee
Encoders / Cryptography

QR Code Generator / Encoder

Generate QR codes for URLs, address books (vCard), events (vEvent), emails, geo coordinates, phone numbers, SMS, plain text and Wi-Fi networks, with your choice of error correction level.

Fields marked with * are required.
https:// is added automatically when the scheme is missing.

QR code options

Ctrl + Enter

QR Codes Explained

What is a QR code?

A QR code (Quick Response code) is a two-dimensional barcode invented in 1994 by Denso Wave for tracking car parts, and standardized as ISO/IEC 18004. Unlike a linear barcode that stores a dozen digits, a QR code stores up to almost 3 KB of arbitrary data in a square grid of black and white modules. The three large squares in the corners are finder patterns that let a camera locate and orient the code from any angle; the smaller squares are alignment patterns that correct perspective distortion, and the alternating lines between the finders are timing patterns that give the module size.

QR codes come in 40 versions: version 1 is 21 × 21 modules and each version adds 4 modules per side, up to 177 × 177 for version 40. This tool always chooses the smallest version that can hold your data. All data is encoded in byte mode as UTF-8, which every modern phone decodes correctly, including accented characters and emoji.

Error correction levels

Every QR code contains Reed–Solomon error-correction codewords in addition to the data, so a damaged, dirty or partially covered code can still be read. The level sets how much of the symbol can be lost while remaining decodable — at the cost of a larger code for the same data.

LevelRecoverable damageWhen to use
L (Low)about 7%Clean screens, large payloads where size matters most.
M (Medium)about 15%The default; a good balance for print and web.
Q (Quartile)about 25%Codes printed on packaging, stickers, outdoor signs.
H (High)about 30%Codes with a logo placed over the centre, or industrial environments.

Capacity

The maximum amount of data depends on the version, the error correction level and the data type. Numeric mode packs 3 digits into 10 bits, alphanumeric mode (digits, capital letters and 9 symbols) 2 characters into 11 bits, and byte mode 8 bits per byte. Because this tool uses byte mode for everything, count the UTF-8 bytes of your payload (accented characters are 2 bytes, most CJK characters 3, emoji 4).

Version (size)LevelNumericAlphanumericByte
1 (21 × 21)L412517
M342014
Q271611
H17107
10 (57 × 57)L652395271
M513311213
Q364221151
H288174119
40 (177 × 177)L7,0894,2962,953
M5,5963,3912,331
Q3,9932,4201,663
H3,0571,8521,273

In practice, keep payloads short: a 30-byte URL gives a version 2–3 code that scans instantly even when printed small, whereas a version 30+ code needs a large print and a steady hand.

Supported payload formats

A QR code only stores text; phones recognise a few conventional formats and offer the matching action (open, call, save contact…).

TypeFormatExample
URLThe URL itselfhttps://example.com/page?id=1
Address bookvCard 3.0 (RFC 2426)BEGIN:VCARD
VERSION:3.0
N:Doe;Jane
FN:Jane Doe
ORG:ACME Corp.
TEL:+15550100
EMAIL:[email protected]
END:VCARD
Emailmailto: URI (RFC 6068)mailto:[email protected]?subject=Hello&body=Hi%20there
EventiCalendar vEvent (RFC 5545)BEGIN:VEVENT
SUMMARY:Team meeting
LOCATION:Room 42
DTSTART:20260315T140000
DTEND:20260315T150000
END:VEVENT
Geo coordinatesgeo: URI (RFC 5870)geo:48.858370,2.294481?q=Eiffel%20Tower
Plain textAny textTable 12 — order at the counter
SMSSMSTO:number:messageSMSTO:+15550100:Hello from the QR code
Telephonetel: URI (RFC 3966)tel:+15550100
Wi-FiWIFI:T:type;S:ssid;P:password;H:hidden;;WIFI:T:WPA;S:MyNetwork;P:secret;;\ ; , " : in the SSID or password are escaped with a backslash

Tips for codes that scan reliably

  • Keep the quiet zone. The specification requires a blank margin of 4 modules around the code; 2 is usually enough on screens, but never print a code edge-to-edge or on a busy background.
  • Contrast matters. Dark modules on a light background is what scanners expect. Inverted codes (white on black) and low-contrast colour pairs (yellow on white, dark blue on black) fail on many phones. Aim for a contrast ratio of at least 4:1.
  • Size. A printed module should be at least 0.4 mm; a rule of thumb is that the code width should be about one tenth of the scanning distance (a 2 cm code for 20 cm, a 30 cm code for a poster read from 3 m).
  • Shorten URLs. Fewer bytes mean a lower version, larger modules and faster scans. Use https:// and avoid tracking parameters unless you need them.
  • Test with several apps (the built-in camera on iOS and Android, plus a dedicated reader) and on paper if it will be printed — colours and dot gain change everything.
  • Use SVG for print. The SVG download is resolution independent; the PNG is rendered at the pixel size you chose.

The code is generated entirely in your browser with the qrcode-generator library; nothing you type is sent anywhere.