Skip to content
zeal.tools

Free QR Code Generator

No sign-up, no watermark, no expiry. Generated in your browser with our own open-source, zero-dependency encoder.

Loading the generator…
WiFi QR code → vCard QR code → Email QR code →
Table of contents

How to create a QR code

  1. 1

    Choose what to encode

    URLs are the classic, but WiFi credentials, contact cards (vCard), email drafts, phone numbers and SMS messages all work — switch types with the tabs above.

  2. 2

    Type your content

    The preview updates live with every keystroke. There's no Generate button because there doesn't need to be one.

  3. 3

    Style it (optional)

    Change the foreground and background colors, switch to rounded or dot modules, adjust the quiet-zone margin, or drop your logo in the center. Keep contrast high — dark modules on a light background scan best.

  4. 4

    Download or share

    PNG for documents, SVG for print, or copy the image straight to your clipboard. The share link reproduces your exact settings — minus anything sensitive, which never enters the URL.

How QR codes actually work

A QR code is a grid of dark and light modules encoding your data plus a generous helping of Reed–Solomon error correction — the same math that let CDs play through scratches. Your text is packed into the densest of three encoding modes (numeric, alphanumeric, or bytes), split into codewords, and the error-correction codewords are computed over a Galois field. The three big squares are finder patterns that tell the scanner where the code is and which way is up; the smaller squares are alignment patterns that correct for perspective distortion.

Finally, one of eight mask patterns is XORed over the data region. Each mask is scored against four penalty rules — long runs, solid blocks, fake finder patterns, and dark/light imbalance — and the best-scoring mask wins, which is why the same content can produce different-looking (but equally valid) codes.

Our encoder implements all of this from the ISO/IEC 18004 specification in about a thousand lines of audited, dependency-free TypeScript. Every build is verified by round-tripping thousands of payloads through an independent decoder across all versions, masks and error-correction levels.

Frequently asked questions

API — same tool, no key required

The exact encoder that powers this page also runs behind a free REST endpoint. No API key, no sign-up, honest rate limits.

# SVG (default)
curl -X POST https://zeal.tools/api/v1/qr \
  -H 'content-type: application/json' \
  -d '{"data": "https://zeal.tools", "options": {"ecLevel": "M"}}'

# PNG, straight to a file
curl 'https://zeal.tools/api/v1/qr?data=https://zeal.tools&format=png&size=1024' -o qr.png

# WiFi payload
curl -X POST https://zeal.tools/api/v1/qr \
  -H 'content-type: application/json' \
  -d '{"type": "wifi", "ssid": "MyNetwork", "password": "secret123", "format": "svg"}'

MCP clients can call the same core: add https://zeal.tools/mcp to your client and use the generate_qr tool.

The Zeal Promise

Non-negotiable, on every tool we ship.

  • No sign-up — ever
  • No watermarks on any output
  • No ads near the download button
  • Works fully on mobile
  • Privacy-first: processing stays in your browser
  • Open source (MIT) — audit it, contribute, self-host
  • Zero runtime dependencies in tool logic

zeal.tools

Free tools, made with zeal. No sign-ups, no watermarks, no nonsense — open source and yours to audit.

MIT licensed · every tool works in the browser, over the API, and through MCP.