QR Code Generator

Generate QR codes for URLs, WiFi, text, email, and phone. Download as PNG up to 512×512px. Free QR code maker — no signup, runs entirely in your browser.

Enter content above and click Generate

How to Use

1

Choose a type

Select URL, Text, WiFi, Email, or Phone from the type tabs at the top.

2

Enter your content

Fill in the input fields for your chosen QR type. All fields update the preview live.

3

Download your QR code

Click Generate QR Code, then Download PNG to save the QR code to your device.

Frequently Asked Questions

What is a QR code? +
A QR code (Quick Response code) is a 2D barcode that smartphones can scan to instantly open a URL, connect to WiFi, add a contact, or perform other actions without typing.
What types of QR codes can I generate? +
URL (website links), plain Text, WiFi credentials (SSID, password, encryption), Email addresses, and Phone numbers. Each type creates a properly formatted QR payload.
Are the QR codes stored on a server? +
No — QR codes are generated entirely in your browser using the qrcode.js library. Nothing is uploaded or saved.
How do I download my QR code? +
Click the Download PNG button after generating your QR code. The image is saved directly to your device at the selected size (128×128 to 512×512 pixels).
What is error correction level? +
QR codes have built-in error correction. Level L (7%) works for clean digital displays. Level H (30%) allows the QR code to remain scannable even if up to 30% is obscured or damaged — useful for printed materials.


Complete Guide: QR Code Generator

What Is a QR Code and Why It Matters

A QR code (Quick Response code) is a 2D matrix barcode standardized under ISO/IEC 18004:2015. Developed by Denso Wave in 1994 for automotive parts tracking, it became ubiquitous after smartphone cameras began decoding them natively (iPhone in iOS 11, Android in 2017). Unlike 1D barcodes that encode only ~20 numeric digits, a QR code can store up to 7,089 numeric characters or 4,296 alphanumeric characters in a 1-inch square.

What makes QR codes resilient is their built-in Reed-Solomon error correction. Even if up to 30% of the code is damaged, obscured, or printed over with a logo, the scanner can still reconstruct the original data. This is why you see QR codes on restaurant menus with a company logo in the center — that deliberately obscures part of the code, exploiting the error correction capacity.

Modern use cases span contactless payment (WeChat Pay, Alipay, UPI), WiFi credential sharing, product authentication (luxury goods use high-error-correction QR codes on tags), event ticketing, vCard contact sharing, app deep links, and cross-device authentication (like signing into WhatsApp Web by scanning a QR).

How to Use the QR Code Generator

  1. Select a content type — URL, plain Text, WiFi credentials, Email address, or Phone number.
  2. Fill in the fields — all inputs update the QR preview in real-time.
  3. Choose error correction level — L (7%) for clean digital screens, M (15%) for general use, H (30%) for printed materials or codes with overlaid logos.
  4. Set the output size — 128px for web thumbnails, 512px for print (scale up in your design tool).
  5. Click Generate QR Code, then Download PNG to save to your device.

Code Examples

// JavaScript (qrcode.js): generate in the browser
import QRCode from 'qrcode';

// Basic URL QR
const canvas = await QRCode.toCanvas('https://onhtml.com', {
  errorCorrectionLevel: 'H',
  width: 300,
  margin: 2
});

// WiFi QR string format (WPA2)
const wifi = 'WIFI:T:WPA;S:MyNetwork;P:MyPassword;;';
// T = authentication type (WPA, WEP, nopass)
// S = SSID, P = Password, H = hidden network (true/false)

// vCard QR for contact sharing
const vcard = [
  'BEGIN:VCARD',
  'VERSION:3.0',
  'FN:Alice Developer',
  'TEL:+15551234567',
  'EMAIL:alice@example.com',
  'URL:https://alice.dev',
  'END:VCARD'
].join('\n');

// Python: generate and save
# pip install qrcode[pil]
import qrcode
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_H)
qr.add_data('https://onhtml.com')
qr.make(fit=True)
img = qr.make_image(fill_color='black', back_color='white')
img.save('qr.png')

Common Mistakes to Avoid

Comparison with Alternatives

NFC tags have higher data capacity and work with a tap rather than a camera scan — better for high-end products or access cards, but the chips cost ~$0.20–$2 each vs free QR printing. 1D barcodes (EAN-13, Code 128) hold much less data and scan only horizontally — still standard in retail inventory. Data Matrix codes are similar to QR but smaller at high density — preferred in pharmaceutical packaging. Standard app deep link URLs with App Clips / Instant Apps let iOS and Android open apps without installing them — useful for specialized experiences, but requires app infrastructure.

Pro Tips

🧰 50+ Tools