Enter a website URL or plain text, preview the QR code in the browser, then download it as PNG or SVG. Input is processed locally in your browser, and no account is required.
Enter a URL or text to generate a QR code.
What this tool does
Enter a website URL or plain text, preview the QR code in the browser, then download it as PNG or SVG. Input is processed locally in your browser, and no account is required.
Privacy behavior
Selected file contents are processed locally in your browser for supported workflows. This privacy build does not intentionally load ads, analytics, remote fonts, or third-party runtime scripts.
Supported workflow
Use the controls on this page, review the output in your browser, then copy or download the result.
What can you use QR codes for?
Static QR codes are useful for menus, flyers, product packaging, event signs, and quick website sharing. They encode the destination directly, so there is no account or redirect service required.
For print, download a larger PNG or SVG and test the code before publishing. A simple high-contrast QR code is usually easier to scan than a heavily styled one.
How this QR encoder works
A QR code is a grid of black and white square modules encoding data with Reed-Solomon error correction, arranged according to a version number that sets the grid size, starting at 21 by 21 modules for version 1. This generator implements the encoding pipeline itself in JavaScript rather than wrapping an external library: it builds data codewords in byte mode, the encoding used for arbitrary UTF-8 text and URLs, computes Reed-Solomon error correction codewords over the GF(256) field the QR standard specifies, places the finder, timing, and alignment patterns, then interleaves the data into the grid in the zigzag order the standard defines.
Two choices are fixed rather than configurable. Error correction always uses level L, the lowest of the four levels the standard defines, meaning roughly 7 percent of the code's data can be reconstructed if part of a printed or displayed code is damaged or obscured. The data mask is always mask pattern 0, one of eight patterns the standard allows, applied without scoring all eight for the one that best avoids visual patterns that can confuse a scanner; mask 0 is a valid, standard pattern and produces a scannable code, just not necessarily the specific mask a scoring implementation would choose for a given payload.
Version
Grid size
Data codewords at level L
Approximate max bytes in this tool
1
21 by 21
19
17
2
25 by 25
34
32
3
29 by 29
55
53
4
33 by 33
80
78
5
37 by 37
108
106, the largest this tool supports
The generator automatically picks the smallest of these five versions that fits the entered text. Content longer than about 106 bytes of UTF-8 text, fewer for non-Latin scripts that use more bytes per character, is rejected with a message asking for shorter input rather than silently switching to a larger, unsupported version.
Worked examples
Entering https://privacy.convertunlimited.com/tools/ in Website URL mode is 35 bytes of text. Since that is past the 32-byte practical limit of version 2, the encoder automatically steps up to version 3, a 29 by 29 module grid with 55 data codewords at error correction level L, comfortably fitting the 35-byte payload plus its mode and length header.
A short value such as a 4-byte emoji greeting only needs version 1, the smallest 21 by 21 grid, since that is well under its 17-byte limit. Content past 106 bytes of UTF-8 text, such as a long paragraph or a URL with a lengthy tracking query string, fails with a message asking for shorter input, since version 5 is the largest this generator supports.
Limits and gotchas
Version 5 is the practical ceiling. The encoder supports QR versions 1 through 5 only, topping out around 106 bytes of UTF-8 text. Longer input, including URLs with long query strings, is rejected rather than encoded into a larger, standard-compliant version.
Byte mode only. Every input is encoded in byte mode, the general-purpose QR encoding for arbitrary UTF-8 text. Numeric or alphanumeric mode, which pack digits or a restricted character set more efficiently and could fit more content in the same version, are not used, so an all-digit or all-uppercase value takes more space than a QR encoder optimized for those modes would need.
Error correction is always level L. This is the lowest of the four levels the QR standard defines. Printed applications that expect a logo overlay in the middle of the code, or that need more resilience to smudging and glare, typically call for a higher level such as M, Q, or H, none of which this generator offers.
The mask pattern is fixed, not optimized. Mask pattern 0 is always used instead of evaluating all eight standard patterns for the one that best avoids scanner-confusing visual patterns. This produces a valid, scannable code, just not necessarily the specific mask a scoring-based encoder would have picked for a given payload.
Content type only changes validation, not the encoded bytes. Selecting Website URL requires the text to start with http:// or https:// before generating; selecting Plain text removes that requirement. Either way, the same raw text is encoded byte-for-byte, so a non-URL string such as a Wi-Fi configuration line or a vCard typed directly into Plain text mode encodes exactly as it would in any other QR generator.
A larger margin does not add more error correction. The margin setting only controls the quiet zone, the blank border around the code; the QR standard recommends at least 4 modules of quiet zone for reliable scanning, and the smallest margin option offered here is 2.
QR Code is a registered trademark of DENSO WAVE INCORPORATED. The QR Code symbology is standardised as ISO/IEC 18004; DENSO WAVE holds patents on it but has stated it does not exercise them, so generating and using QR codes here carries no licence fee. ConvertUnlimited is not affiliated with or endorsed by DENSO WAVE.
Frequently Asked Questions
Is this QR Generator free?
Yes. You can create and download QR codes without signup or usage limits.
Are QR codes generated locally?
Yes. The QR image is generated in your browser; text or URL input is processed locally in your browser.
Can I use QR codes commercially?
Yes. Static QR codes generated here can be used for business cards, flyers, packaging, and websites.
What is the best QR code size?
For digital use, 512 px is usually enough. For print, use a larger PNG or SVG and test it at the final size.
Do QR codes expire?
Static QR codes do not expire. They keep working as long as the encoded URL or text remains useful.
Can I generate QR codes for URLs and text?
Yes. Choose Website URL or Plain text and the preview updates automatically.
What is the maximum amount of text this QR generator can encode?
Around 106 bytes of UTF-8 text, since the encoder supports QR versions 1 through 5 only. Non-Latin scripts that use more bytes per character fit somewhat less text within that same limit.
Does this generator support Wi-Fi or vCard QR codes?
Not as a dedicated mode, but typing the raw Wi-Fi configuration or vCard text directly into Plain text mode encodes it like any other text. The resulting code triggers a phone Wi-Fi-join or contact-import behavior only if that text follows the exact convention the receiving app expects.
Privacy
Privacy build: This build removes ads, analytics, remote fonts, runtime CDN scripts, and file-operation telemetry. Selected files are processed in the browser using local JavaScript and browser APIs.
ConvertUnlimited does not provide a server-side upload endpoint for this QR generation flow. Text or URL input is processed locally in your browser.
Terms of Use
ConvertUnlimited is provided as is. You are responsible for testing QR codes before printing or publishing them.
Trust and privacy
Files are processed locally where supported. Review the Trust Center for the processing model and the Privacy Policy for public-site privacy boundaries.