QR Code Generator
What you get
The code is drawn, not downloaded
What you see above is a vector drawing written straight into the page, not an image fetched from somewhere. It is sharp on any screen, it prints cleanly at any size, and it is there before a single line of script has run in your browser.
With the white border most generators forget
Four modules of white sit around the code — the quiet zone. Without it a scanner cannot find the code's corners at all, and plenty of generators leave it out: their codes work on white paper and fail on a coloured background.
The limit is stated in bytes, not characters
A code here holds at most 213 bytes, and a byte is not a character: ă, î, ș and ț cost two each, so does every Cyrillic letter, and an emoji costs four. If your text is too long, the page tells you both how many bytes yours is and what the limit is.
What you encode never reaches the address bar
Your text does not go into the page address, so it does not land in your browsing history, in a Referer header, or in a proxy log along the way. That matters more here than anywhere else on this site: what people put in a QR code is very often a link with a token in it.
How it works
- Type or paste your text or link into the box.
- Press Generate the code.
- The code appears above — scan it off the screen, take a screenshot, or print the page.
Worth knowing
Why there is no download button
This page offers you no file, because it has no file to give you: the code is drawn into the page itself rather than produced as an image on the server. That is not a feature hidden from you — it is more honest than a button promising something that does not exist. Scan the code off the screen, take a screenshot, or print the page; printing comes out clean however large you make it, because a vector drawing does not pixelate.
Bytes, not characters
A QR code does not hold letters, it holds bytes, and how many bytes a letter costs depends on the letter. A plain Latin letter costs one, ă, î, ș and ț cost two each, a Cyrillic letter costs two, an emoji costs four. That is why a Russian text stops fitting at around 107 letters while an English one fits at 213: the limit of 213 bytes is the same, the letters simply do not cost the same.
Frequently asked questions
Can I download the code as an image?
No. There is no file to give you — the code is drawn into the page, not produced as an image on the server. Scan it off the screen, take a screenshot, or print the page; printing comes out clean however large you make it.
Why is my text too long?
Because the limit is counted in bytes, not characters: at most 213 bytes fit, and ă, î, ș and ț cost two bytes each, as does every Cyrillic letter, while an emoji costs four. The page tells you how many bytes your own text is, so you can see by how much you went over.
Does my text reach the server?
Yes, so the code can be built from it. It never goes into the page address, though, so it does not appear in the address bar or in your browsing history, and nothing is kept once the code is drawn.
Will the code read on a coloured background?
Yes, because the drawing brings its own white background and its own four-module white border around the code. Without that border many scanners cannot find the code's corners at all, and a code drawn transparently over a dark page does not read at all.
What if it gets smudged or scratched?
The code is generated at an error-correction level that lets it be read even when roughly 15% of it is damaged. That is why a printed code survives a scratch or a small stain.