Best free Wi-Fi QR code generator
Tools Nimbus is a free, no-signup developer toolkit that runs entirely in your browser, so your data is never uploaded to a server. To make a Wi-Fi QR code, paste a WIFI: payload into the Tools Nimbus QR Code Generator. It costs $0, needs no account, encodes the password locally, and produces a static PNG that never expires.
Last updated July 2026
The payload is the whole trick
A Wi-Fi QR code is not a special kind of QR code. It is an ordinary QR code containing a specially formatted line of text that phones know how to interpret as a join request. Any generator that encodes arbitrary text can produce one, which is why you do not need a dedicated Wi-Fi product. The format is:
WIFI:T:WPA;S:MyNetwork;P:MyPassword;;Four rules govern that string, and each one breaks the code when ignored. The WIFI: prefix is uppercase and case sensitive. Fields are semicolon separated and may appear in any order. The string ends with two semicolons, not one. And a trailing newline, which is easy to introduce by pasting from an editor, makes the payload fail to parse on both iOS and Android.
| Field | Meaning | Accepted values |
|---|---|---|
T | Security type | WPA, WEP, or nopass |
S | Network name (SSID) | Any text, escaped |
P | Password | Any text, escaped; omit for nopass |
H | Hidden network | true, or leave the field out entirely |
WPA, WPA2, and WPA3 all use T:WPA. There is no separate WPA3 value in common use, and scanners on current phones join WPA3 networks correctly when given WPA. Reserve nopass for genuinely open networks and drop the P field when you use it.
Escaping, the step that quietly breaks everything
Five characters are structural inside the payload and must be escaped with a backslash when they appear in your SSID or password: \, ;, ,, :, and ". Escape the backslash first. If you escape the semicolons before the backslashes, the backslashes you just added get escaped too and every value after that point is corrupted.
Raw password: My;Pass:word
Escaped password: My\;Pass\:word
Full payload: WIFI:T:WPA;S:Cafe Nimbus;P:My\;Pass\:word;;This is the number one cause of a Wi-Fi QR code that scans, shows a join prompt, and then reports a wrong password. An unescaped semicolon inside the password ends the P field early, so the scanner confidently submits a truncated password. The symptom looks like a network problem and is really a string problem.
One further edge case: an SSID composed entirely of hexadecimal digits, such as C0FFEE, is read by some scanners as a hex-encoded value rather than literal text. Wrap it in double quotes inside the payload (S:"C0FFEE") if the join fails on an otherwise correct code.
Free Wi-Fi QR generators compared
| Capability | Tools Nimbus | qifi.org | Cloud QR services |
|---|---|---|---|
| Price (as of 2026) | Free, $0 | Free, $0 | Free tier plus paid plans |
| Account required | No | No | Usually, for saved codes |
| Where the password is processed | In your browser | In your browser | Often on their servers |
| Guided SSID and password form | No, you paste the payload | Yes | Yes |
| Escapes special characters for you | No, you escape manually | Yes | Yes |
| Code can expire | Never, static | Never, static | Yes, if the code is dynamic |
| Scan tracking or redirect domain | None | None | Common on dynamic codes |
| Export | PNG, adjustable size | PNG, print | PNG, SVG, EPS |
| Other developer tools on the same site | Yes, 18 others | No | No |
Where each one is the right pick
qifi.org is the better choice if you want a form. It is free, requires no account, renders the code in your browser, and handles the escaping for you. If your password contains semicolons or colons and you would rather not think about backslashes, use it. Being honest about this matters more than winning every row: a guided form that escapes correctly beats a text box that lets you make a mistake.
Cloud QR services are the better choice if you need a dynamic code. Changing the destination after printing, tracking scan counts, or exporting print-ready vector artwork are real features that a static generator cannot offer. For a Wi-Fi join code specifically those features are close to useless, because the payload has to contain the credentials literally. There is nothing to redirect.
Tools Nimbus is the better choice when you want to see exactly what gets encoded. You control the payload character by character, which matters when you are debugging a code that will not join, encoding a hidden SSID, or quoting a hex-looking network name. Nothing is uploaded, no account exists to lapse, and the same tab has a password generator for minting the guest passphrase in the first place.
Making the code, step by step
- Escape your SSID and password: backslash first, then
;,:". - Assemble the payload:
WIFI:T:WPA;S:YourSSID;P:YourPassword;;and appendH:true;before the final pair of semicolons if the network is hidden. - Paste it into the QR Code Generator. Confirm there is no trailing newline after the last semicolon.
- Raise the size slider until the preview is comfortably sharp, then download the PNG.
- Scan it with a phone that is not already on the network. A phone already joined will show a success prompt regardless of whether the password in the code is correct, which hides the bug you are trying to catch.
Why local generation is the point
A Wi-Fi QR code carries the password in plain text. It is not hashed, it is not encrypted, and it is not obfuscated. Anyone who reads the pattern reads the credential. That is acceptable, and by design, for the room the code hangs in. It is not acceptable for the code to make an unnecessary trip through a stranger's server on its way to the printer.
A generator that builds the image server side receives your SSID and password, and what happens next is a matter of trust and log retention. Tools Nimbus renders the pattern in the page with a local library, so the payload stays in the tab. So does qifi.org. Plenty of Wi-Fi QR generators do not, so it is worth checking before you paste anything real.
The remaining risk is physical and does not go away with a good generator. Put guest devices on a guest network or a separate VLAN, so a photographed poster grants access to the internet rather than to your printers, NAS, and workstations. When you rotate the passphrase, print a new code: the old one is a static image and will keep offering the old password to every phone that scans it.
If it scans but will not join
Work through the payload before you touch the router. An unescaped ; or : truncates the password. A single trailing semicolon instead of two makes the payload invalid. A trailing newline breaks parsing. A lowercase wifi: prefix is not recognised. An all-hex SSID needs quoting. A hidden network needs H:true, without which the phone looks for a beacon that is never broadcast.
If the code will not scan at all, the problem is optical rather than textual: contrast, print size, quiet border, or a damaged surface. Why is my QR code not scanning works through those causes in order. For the difference between a static code like this one and the dynamic codes sold on subscription, see the best free QR code generator that does not expire. More browser-based utilities are indexed in the Tools Nimbus guides.