QR code generator
https://tooltiki.com
A QR code stores data directly in its pattern of black and white squares. There is no lookup and no server involved. The codes made here contain exactly what you type, so they work forever, cannot be redirected later, and record nothing when scanned. Error correction lets a code still read with up to 30% of it damaged.
How to make a QR code
Free QR services usually give you a short redirect link rather than your own data, which lets them count scans — and lets the code stop working when they change their pricing. A code with the destination inside it is larger and denser, and that is the trade: a longer link makes a busier code. Shorten the URL before generating if density matters, and check that the shortener is one you trust to still exist in five years.
What L, M, Q and H are
Every QR code carries a copy of its own data in a form that survives damage. That is the error-correction level, and the four settings say how much of the code can be unreadable before a scanner gives up: L about 7 per cent, M 15, Q 25, H 30. The redundancy is not free: it is stored in the code itself, so raising the level at a fixed data length adds modules, and the pattern gets denser. Going from L to H on the same URL can push a code up several versions, which means smaller squares at the same printed size, which is its own kind of unreadable.
Which one to pick
M is the sensible default and what most generators use: it survives a scuff or a thumbprint and stays reasonably open. Use L when the code is on a screen or a clean flat print that nothing will touch, and you want the loosest possible pattern. A long URL at L is much easier to scan than the same URL at H. Use Q or H when the code will live in the physical world and take damage: a label that creases, a sticker on a curved bottle, a menu that gets wiped down, signage that will fade. H is also the level to use when you are putting a logo in the middle, because that logo is damage. You are deliberately covering modules, and only the redundancy makes it still readable. Keep the covered area under roughly the level you chose and test the finished code with a real phone before printing a thousand of them.
Questions
No. The data is in the pattern, so there is nothing to expire and nobody to keep paying.
No. Generation happens in this page and the finished code points straight at your data, with no redirect in between.
M unless you have a reason. L (7% recoverable) for screens and clean prints where you want the loosest pattern; M (15%) as the default; Q (25%) and H (30%) for labels that crease, curved surfaces, or anything outdoors. H is also what a logo overlay needs, because covering the middle is damage the redundancy has to absorb.
More data needs a higher version, which means more modules per side. The version number is shown under the preview.
SVG for anything going to print, because it is resolution-independent. PNG for slides, documents and messaging apps.