Skip to content

QR Code Generator

Last verified May 2026 — runs in your browser
QR Code Generator

QR Code Maker — Generate QR Codes for URL, WiFi & Contact

Pick the right input mode for the job — plain text, a URL, a Wi-Fi share code (the kind you scan from a router sticker), or a vCard contact card — fill in the fields, and the page renders the QR code in real time. Special characters are escaped per the right standard automatically: ZXing's `WIFI:T:WPA;S:...;P:...;;` format for Wi-Fi (which means semicolons in passwords don't break the parse) and RFC 2426 vCard escaping for contacts (newlines and commas survive the round-trip). Tweak the foreground and background colors for branding, pick a size from 128 to 512 pixels, and download as a PNG (best for digital sharing) or SVG (best for vector printing on packaging or large signage).

About this tool

Rendering uses the well-known qrcode JavaScript library, which produces standards-compliant QR codes (ISO/IEC 18004) at error-correction level M by default — that means up to 15% of the QR can be obscured (a logo overlay, partial damage, dirt) and still scan reliably. The Wi-Fi mode supports WPA/WPA2 and WEP encryption, plus an open-network option, and follows ZXing's near-universal share-code spec so iOS Camera, Android Quick Settings, and every standard QR reader join the network without typing the password. The vCard mode generates a v3.0 card with name, phone, and email fields — the same format every modern phone parses on scan. Color customization is constrained to ensure decent foreground/background contrast (a yellow-on-cream QR will not scan, no matter how on-brand). Use cases: customer Wi-Fi for a café, business-card-replacement QR on a portfolio, payment-link QR for invoices, share-link QR for restaurant menus, embed-the-URL QR for printed flyers, or app-download QR for product packaging.

  • Plain text, URL, Wi-Fi (ZXing format) and vCard (RFC 2426) input modes
  • Live preview rendered as you type
  • Wi-Fi escape rules — semicolons and special chars survive the round-trip
  • vCard v3.0 format compatible with iOS Contacts and Android dialer
  • WPA/WPA2, WEP and open-network options for Wi-Fi mode
  • Custom foreground and background colors
  • Size from 128 to 512 pixels
  • Error correction level M — survives ~15% obscuring
  • Download as PNG (digital) or SVG (vector for print)
  • Zero upload — your QR content never leaves the browser

Free. No signup. Your inputs stay in your browser. Ads via Google AdSense (consent required).

Frequently asked questions

How does QR error correction work — what does level M mean?

ISO/IEC 18004:2024 (Edition 4, August 2024) defines four error-correction levels (L, M, Q, H) using Reed-Solomon codes (Reed & Solomon, 1960, J. Soc. Ind. Appl. Math. 8(2):300–304). Level L recovers up to ~7% of the codeword bytes; M up to ~15%; Q up to ~25%; H up to ~30%. The codeword bytes encode the user data plus Reed-Solomon parity; the more parity, the more dirt, damage, or logo overlay a scanner can compensate for, but the more module space the QR uses for the same payload (a level-H QR for the same URL is denser and physically larger than the level-L version). This page defaults to M because it is the universal compromise: enough resilience for printed business cards or stickers without dramatically inflating QR size for typical URL or text payloads.

What is the maximum data capacity of a QR code?

ISO/IEC 18004:2024 specifies QR versions 1 to 40, where the version number determines the symbol's module count (21×21 modules for version 1, 177×177 for version 40). Capacity scales with both version and error-correction level: at version 40 / level L, a QR holds up to 7,089 numeric digits, 4,296 alphanumeric characters, 2,953 binary bytes, or 1,817 Kanji characters. Most everyday use (a URL, a Wi-Fi share code, a vCard) fits well within version 1–15. Above that the modules become too small to scan reliably from a phone camera at typical distances. For very long payloads, the better pattern is encoding a short URL that resolves to the long content rather than fitting the full payload into a giant QR.

How does the Wi-Fi share code format work?

The Wi-Fi share code format originated in the ZXing open-source library (github.com/zxing/zxing/wiki/Barcode-Contents) and became the de facto cross-platform standard — Android Camera supports it since Android 10, iOS Camera since iOS 11. The string format is `WIFI:T:authType;S:SSID;P:password;;`, where authType is WPA / WPA2 / WPA3 / WEP / nopass and the trailing `;;` signals end-of-record. Special characters `;`, `,`, `:`, `\`, and `"` inside SSID or password must be escaped with a backslash; for example, an SSID literally 'Cafe;Bar' encodes as `S:Cafe\;Bar`. The optional `H:true` field marks an SSID as hidden. The order of fields does not matter to the spec, but the trailing `;;` is structural — without it, parsers may treat the next field as a continuation of the previous record.

What is the difference between QR Code, vCard, and payment QR formats?

QR Code is the symbology — the visual encoding from ISO/IEC 18004:2024. vCard, Wi-Fi share, and payment formats (EMVCo for global merchant-presented QR, adopted nationally in Singapore, India, South Africa, Colombia and others; EPC for SEPA credit transfers in Europe) are payload conventions. A QR Code with a vCard payload is just a QR Code whose decoded text starts with `BEGIN:VCARD` and follows RFC 2426 (v3.0, 1998) or RFC 6350 (v4.0, 2011) syntax. Modern phones recognize the payload prefix and offer a contextual action — 'Add to Contacts' for vCard, 'Connect to Wi-Fi' for the ZXing format, 'Open in browser' for plain URLs. This page generates a v3.0 vCard because every modern phone parses it; v4.0 has slightly newer features (RELATED property, expanded URL semantics) but is not universally supported on older OS versions.

How does this tool handle accessibility for screen readers?

The QR canvas carries an alt-text label describing the encoded payload, the live preview region is marked aria-live="polite" (W3C WCAG Success Criterion 4.1.3 Status Messages, introduced in WCAG 2.1, Recommendation 5 June 2018; carried unchanged into WCAG 2.2, Recommendation 5 October 2023), and the foreground/background color picker enforces a minimum contrast ratio so the resulting QR remains scannable by camera apps that depend on contrast — a yellow-on-cream QR may meet WCAG visual contrast thresholds for humans but still fall below the contrast headroom most camera decoders need. Screen readers (NVDA, JAWS, VoiceOver) consume the live region automatically when the encoded value updates.

Sources (5)
  • ISO/IEC (2024). ISO/IEC 18004:2024 — Information technology — Automatic identification and data capture techniques — QR code bar code symbology specification. International Organization for Standardization, Edition 4 (August 2024) — supersedes ISO/IEC 18004:2015.
  • Reed, I. S., & Solomon, G. (1960). Polynomial Codes Over Certain Finite Fields. Journal of the Society for Industrial and Applied Mathematics, 8(2), 300–304 (DOI 10.1137/0108018).
  • ZXing Project (2024). Barcode Contents — Wi-Fi share code format (WIFI:T:WPA;S:...;P:...;;) and vCard / MeCard payload conventions. github.com/zxing/zxing/wiki/Barcode-Contents (de facto standard for Wi-Fi share QR).
  • Dawson, F., & Howes, T. (1998). RFC 2426 — vCard MIME Directory Profile (v3.0). IETF, September 1998 (obsoleted by RFC 6350 vCard v4.0, August 2011).
  • World Wide Web Consortium (W3C) (2018). Web Content Accessibility Guidelines (WCAG) 2.1 — Success Criterion 4.1.3 Status Messages. W3C Recommendation 5 June 2018; carried unchanged into WCAG 2.2 (Recommendation 5 October 2023).

These are the original publications the formulas in this tool are based on. Locate them by journal name and year on Google Scholar or PubMed.

By ·