Seven kinds of payload, one symbol: a web address, a Wi-Fi network, a contact card, a text message, a phone number, an email address or plain text. The code is encoded and drawn in your browser as a vector image, so a network password on a table card never reaches an outside server.
QR Code Generator - WiFi, vCard, URL and Text Codes
Seven kinds of payload, one symbol: a web address, a Wi-Fi network, a contact card, a text message, a phone number, an email address or plain text. The code is encoded and drawn in your browser as a vector image, so a network password on a table card never reaches an outside server.
Parameters
Enter data for calculations
💡 Fill in all required fields to unlock the calculate button
A QR code is a container, and what you put inside decides what the phone does
Two codes can look almost the same and behave completely differently. One opens a web page, the other joins a Wi-Fi network without anybody reading the password out loud. The difference is not the picture, it is the short piece of text encoded underneath. This generator builds that text for you in seven shapes, encodes it to the ISO/IEC 18004 standard and hands back a vector image. A link like https://liczgrupa.pl/en/tools comes out as a 29 by 29 module symbol carrying 29 bytes. The same address at the highest correction level grows to 33 by 33 modules, because durability is paid for in area.
Everything happens in your browser. The code is drawn as SVG from the module grid, so nothing you type, including a Wi-Fi password or the phone number on a contact card, is sent anywhere.
liczgrupa.pl, leave the rest alone. You get a version 2 symbol, 25 by 25 modules, correction level M. The generator adds https:// for you, because a code holding a bare domain with no scheme opens as a search on many phones instead of the site.
How to build a code, step by step
- Data type - decides which fields appear below and which prefix goes in front of your text. Plain text stores a message, the other six build a format the phone recognizes and acts on.
- The content fields - only the ones belonging to the chosen type are shown. For a contact card that is a name plus any of company, phone and email; for Wi-Fi it is the network name, the password and the security type.
- Error correction level - how much of a damaged symbol can still be read. L recovers about 7 percent, M about 15, Q about 25, H about 30. Higher means a denser code for the same message.
- Size in pixels - between 100 and 1000. This is display size only. The image is vector, so it stays sharp at any scale, and the module count does not change.
- Read the results - the symbol, the exact text that was encoded, and a line telling you the version, the module count, the mask and how full the symbol is.
Seven things you can put in a code
Each type below shows the text that actually gets encoded, and the symbol it produces. The version numbers come from running the generator, not from an estimate.
1. Website address
Situation: a poster pointing at a landing page.You type:
liczgrupa.pl/en/toolsEncoded:
https://liczgrupa.pl/en/toolsResult: version 3, 29 by 29 modules, 29 bytes.
2. Wi-Fi network
Situation: guest network in a cafe, printed on the table card.You type: network
Cafe Aroma Guest, password flatwhite2024, security WPAEncoded:
WIFI:T:WPA;S:Cafe Aroma Guest;P:flatwhite2024;;Result: version 4, 33 by 33 modules, 47 bytes.
pa;ss is encoded as pa\;ss and arrives at the phone intact.3. Contact card
Situation: the back of a business card, so nobody retypes your details.You type: Ada Lovelace, Analytical Engines, +441234567890, ada@example.com
Encoded: a vCard 3.0 block with
N, FN, ORG, TEL and EMAIL linesResult: version 9, 53 by 53 modules, 161 bytes.
N field and a display FN field, which is what address books expect. Lines end with a carriage return and a line feed, as the vCard specification requires, not a bare line feed.4. Text message
Situation: a table tent inviting people to text a keyword.You type:
+441234567890 and BOOK to reserve a tableEncoded:
SMSTO:+441234567890:BOOK to reserve a tableResult: version 4, 33 by 33 modules, 43 bytes.
5. Phone number
Situation: a service sticker on a machine, so an engineer can call without typing.You type:
+44 1234 567890Encoded:
tel:+441234567890Result: version 2, 25 by 25 modules, 17 bytes.
6. Email address
Situation: a leaflet where you want replies rather than clicks.You type:
hello@example.comEncoded:
mailto:hello@example.comResult: version 2, 25 by 25 modules, 24 bytes.
7. Plain text
Situation: a shelf label, a machine setting, an instruction that should not open anything.You type:
Table 7 is reserved until 8pmEncoded: exactly that, character for character
Result: version 3, 29 by 29 modules, 29 bytes.
How much fits in one symbol
A QR symbol comes in 40 sizes, called versions. Version 1 is 21 modules square and each step adds 4 modules per side, so version 40 is 177 square. The generator picks the smallest version that holds your text at the correction level you chose, which is why the same message produces a different symbol as you move from L to H. The figures below are the byte counts this tool actually accepts, measured by running it.
| Version | Modules | Level L | Level M | Level Q | Level H |
|---|---|---|---|---|---|
| 1 | 21 | 17 | 14 | 11 | 7 |
| 2 | 25 | 32 | 26 | 20 | 14 |
| 3 | 29 | 53 | 42 | 32 | 24 |
| 4 | 33 | 78 | 62 | 46 | 34 |
| 5 | 37 | 106 | 84 | 60 | 44 |
| 7 | 45 | 154 | 122 | 86 | 64 |
| 10 | 57 | 271 | 213 | 151 | 119 |
| 20 | 97 | 858 | 666 | 482 | 382 |
| 30 | 137 | 1732 | 1370 | 982 | 742 |
| 40 | 177 | 2953 | 2331 | 1663 | 1273 |
Two things fall out of that table. Capacity grows far faster than the symbol does, so long payloads are cheaper per byte than short ones. And the jump from L to H costs you well over half the room: at version 40 the drop is from 2953 bytes to 1273, a loss of 57 percent.
What a correction level actually buys
Error correction is not a setting you turn up for safety and forget. Every recovery byte occupies room a data byte could have used, and when the data no longer fits the generator moves to a larger version. A larger version at the same printed width means smaller modules, and smaller modules are harder to read. Turning correction up can therefore make a code scan worse, not better. Here is the same address at all four levels.
| Level | Recovers about | Symbol for the same 29 byte address | Where it belongs |
|---|---|---|---|
| L | 7 percent | version 2, 25 modules | screens and clean documents, where nothing gets scuffed |
| M | 15 percent | version 3, 29 modules | the sensible default for print, and the setting this tool starts on |
| Q | 25 percent | version 3, 29 modules | labels that get handled, packaging, outdoor signage |
| H | 30 percent | version 4, 33 modules | industrial surfaces, or when a logo covers part of the code |
Notice that L and M differ by a whole version here, while M and Q land on the same one. Q is free in this particular case, which is worth checking before you settle for M. The generator reports the version it chose every time, so comparing two levels takes one click.
Printing, and the margin people keep deleting
The standard requires a clear margin of 4 modules on all four sides. It is not decoration. A scanner finds the symbol by locating the three large squares in the corners and it needs blank space around them to know where the code stops. This generator includes the margin inside the image, which is why a version 1 code is exported on a 29 by 29 grid rather than 21. Cropping tight to the black edge is the single most common reason a freshly printed code refuses to scan.
For distance, a rule of thumb used across the labeling trade is that a code reads from roughly 10 times its own width. A code about 1.2 inches across on a table card is comfortable at arm's length; a poster meant to be scanned from 10 feet away wants a code around 12 inches wide. Because the export is SVG rather than a bitmap, enlarging it later costs nothing in quality, and the pixel setting in the form only affects how large the preview is drawn.
Contrast matters more than color. Dark on light is what scanners expect, and inverting to light on dark stops some readers outright. If you tint the code, keep the modules substantially darker than the background rather than choosing two colors of similar weight.
Frequently asked questions
Related tools
Table Generator
Builds a ready to paste table in HTML, Markdown or plain text, with headers and sample rows - Open the generator
Business Name Generator
Combines industry vocabulary with your own keywords into name candidates you can actually check - Open the generator
Barcode Generator
Draws EAN-13, EAN-8 and UPC-A symbols with the check digit worked out for you - Open the generator
WiFi Password Generator
Makes a guest network password worth putting on a card next to the code above - Open the generator
Password Generator
Builds strong passwords with control over length and character sets - Open the generator