Free QR Code Generator
Create custom QR codes for URLs, text, Wi-Fi, contact details, email, phone numbers and more. Customize your QR code and download it instantly.
- Free
- No signup
- Instant generation
- Customizable
- Downloadable
Enter the URL you want to encode. If you leave off https:// it will be added.
Unicode is supported — Hindi, Chinese, Arabic and emoji all encode correctly.
A Wi-Fi QR code can reveal the encoded network credentials to anyone who scans it. Share it only with trusted people.
Include the country code for international use.
Style
Output & error correction
Higher error correction survives more damage but stores less data. The preview size and the export size are separate.
Logo
Adding a logo raises error correction to H automatically. The SVG export does not include the logo.
Scan to test before you print or share.
What can this QR code generator create?
This free QR code generator creates QR codes for URLs, text, Wi-Fi networks, email, phone numbers, SMS, contacts and locations. Every type listed is implemented and runs in your browser.
- URL QR codes
- Text QR codes
- Wi-Fi QR codes
- Email QR codes
- Phone QR codes
- SMS QR codes
- Contact / vCard QR codes
- Location QR codes
- WhatsApp QR codes
| Type | Use case | Encoded as |
|---|---|---|
| URL | Open a website | https://example.com |
| Text | Plain information | Hello World |
| Wi-Fi | Join a network | WIFI:T:WPA;S:Name;P:Pass;; |
| Compose an email | mailto:a@b.com?subject=Hi | |
| Phone | Start a call | tel:+919876543210 |
| SMS | Pre-filled message | SMSTO:+15551234567 |
| Contact | Save a contact | BEGIN:VCARD … END:VCARD |
| Location | Open a map pin | geo:28.4595,77.0266 |
| Open a chat | https://wa.me/919876543210 |
Creating and customising QR codes
What is a QR code?
A QR code is a two-dimensional barcode that stores data as a grid of black and white squares called modules. A camera reads the entire grid at once rather than sweeping across it, which is why a QR code holds far more than a traditional barcode and can be scanned at any angle.
How do I create a QR code?
- Choose a type at the top of the studio — URL, text, Wi-Fi, email, phone, SMS, contact, location or WhatsApp.
- Fill in the fields. The preview updates as you type.
- Adjust colours, error correction or add a logo if you want.
- Check the contrast and density warnings.
- Download as PNG or SVG, or press Print.
How do I create a Wi-Fi QR code?
Choose Wi-Fi, enter the network name and password, and pick the security type. Scanning the code offers to join the network. Characters such as semicolons, colons and commas in the name or password are escaped as the format requires — this is where simpler generators silently produce the wrong credentials.
Can I create a QR code with a logo?
Yes. Upload a PNG, JPG or WebP and it is placed in the centre. Error correction is raised to H automatically, because a logo covers modules the error correction then has to reconstruct. Keep it small: above roughly 30% of the width the code stops scanning reliably, and the tool refuses to go further.
Why won't my QR code scan?
Four causes account for almost all failures: too little contrast, a code printed too small for its data density, a missing quiet zone, or a logo covering too much of the pattern. Fall back to black on white at a larger size to work out which one it is.
Is my QR data uploaded?
No. Everything is generated in the page by a local library. Nothing you type — including Wi-Fi passwords and contact details — is sent anywhere, logged, or written to local storage.
Understanding QR codes
How QR codes work
The three large squares in the corners are finder patterns. A scanner locates those first, which is how it works out where the code is, how big it is and which way up. The smaller square near the fourth corner is an alignment pattern that corrects for the code being photographed at an angle or on a curved surface.
Around the edges run timing patterns — alternating light and dark modules that tell the scanner the module size. The remaining area holds the data, interleaved with error correction codewords using Reed–Solomon coding, which is what lets a partly damaged code still resolve.
The one thing that is not part of the pattern but is still required is the quiet zone: a blank margin of at least four modules on every side. Without it a scanner cannot tell where the symbol ends. It is the most commonly omitted requirement and the most common reason a technically valid code fails to read against a coloured background.
QR code types and what they encode
A QR code has no notion of type — it holds a string. What makes a Wi-Fi code different from a URL code is a convention about how that string is formatted, which scanners recognise and act on.
That is why the formatting has to be exact. WIFI:T:WPA;S:name;P:pass;; uses semicolons as separators, so a semicolon inside the network name has to be escaped as \; or the payload splits in the wrong place. vCard uses commas and semicolons structurally, so an organisation called "ToolAdda, Inc." needs its comma escaped. mailto: needs URL encoding so an ampersand in the subject does not start a new parameter.
Each of those escaping rules is implemented and tested here. It is unglamorous work and it is the difference between a code that does what you meant and one that quietly does something else.
Error correction levels
QR codes store redundant data so a damaged, dirty or partly covered symbol still resolves. There are four levels, and the trade is always the same: more redundancy means less room for your payload at a given symbol size.
- L — lowest redundancy, most capacity. Suitable for long payloads scanned from a screen.
- M — the default here, and a sensible choice for most screen and clean-print use.
- Q — for printed material that will be handled: packaging, tickets, table cards.
- H — highest redundancy. Required when a logo covers part of the pattern, and useful outdoors.
Raising the level does not make a code easier to scan in good conditions — it makes it more tolerant of bad ones. If your code fails on a clean screen, error correction is not the problem.
Choosing colours
Scanners look for a strong light–dark difference. The reliable arrangement is a dark foreground on a light background, and black on white is the most reliable of all.
The contrast ratio is calculated here from WCAG relative luminance as you pick colours. Below 3:1 the combination is refused, because it will not scan. Between 3:1 and 7:1 you get a warning — it may work on a good phone in good light and fail on a cheap camera in a dim restaurant. Above 7:1 you are safe.
Inverting — light modules on a dark background — is flagged rather than refused. Most modern scanners handle it, but not all older ones do, and it is worth knowing you have made that choice deliberately.
Two further cautions. A transparent background means the code takes on whatever is behind it, so a busy photograph can destroy the contrast entirely. And a mid-tone foreground that looks fine on screen often loses contrast once printed, because printing darkens light tones less than you expect.
QR codes with logos
Placing a logo in the centre works because Reed–Solomon error correction can reconstruct missing codewords. It is a deliberate use of redundancy, not a trick — but redundancy is finite.
Practical limits: keep the logo under about 20% of the width for comfort, and never above 30%. Use error correction H, which this tool switches to automatically when you add one. Give the logo a solid backing so it does not blend into surrounding modules — a white square or circle behind it helps scanners considerably. And never cover a finder pattern in a corner; that is what the scanner uses to find the code at all.
Then test it. A code with a logo that scans instantly on your phone can be unreliable on an older Android camera, and the only way to know is to try more than one device.
Size, density and printing
How large a code needs to be depends on how much data it holds and how far away it will be scanned. More data means more modules in the same square, so each module is physically smaller and the camera needs to be closer or better.
A widely used rule of thumb is that the printed code should be about one tenth of the intended scanning distance — roughly 3 cm for something read at arm's length, and much larger for a poster read from across a room. Treat that as a starting point rather than a specification.
The cheapest way to make a code more scannable is almost always to shorten the data. A long URL with tracking parameters produces a dense grid; the same link shortened can drop several versions and become noticeably easier to read at the same physical size.
For print, prefer the SVG export. It is a genuine vector — one path built from the module grid — so it stays perfectly crisp at any size, which matters on signage and packaging. And always print a test at final size before ordering a run.
PNG or SVG?
PNG is the right default for screens, documents, slides and most everyday printing. It is lossless, so module edges stay sharp, and it is universally supported.
SVG is better wherever the code will be scaled: posters, banners, vinyl, packaging artwork. Because it is a vector it has no resolution at all, and a print shop can enlarge it without any loss.
One thing to know: the SVG export here contains the QR symbol only. A centre logo is a raster image, and embedding it would make the file part-vector and part-bitmap while claiming to be a vector. If you need the logo, use the PNG.
JPG is deliberately not offered. Its lossy compression puts ringing artifacts along the hard edges between modules — exactly the wrong kind of damage for something a camera has to threshold into black and white.
Unicode and international text
Text is encoded as UTF-8, so Devanagari, Chinese, Japanese, Arabic, accented Latin and emoji all survive scanning intact.
This is worth checking in any generator you use. The widely used qrcode-generator library ships two byte encoders and defaults to a Latin-1 one, in which "नमस्ते" becomes six meaningless bytes rather than the correct eighteen. The code still builds, still scans, and decodes to mojibake. The UTF-8 encoder is selected explicitly here, and the test suite verifies the byte output against Node's own encoder for six scripts.
Security and privacy
A QR code is neither secure nor insecure. It is encoded data that anyone can decode, and it has no authentication of any kind. The risk lies in what it points to.
The practical attack is a sticker: someone covers a genuine code — on a parking meter, a restaurant table, a payment poster — with their own. Nothing about the pattern reveals this. The defence is on the scanning side: read the URL your phone previews before opening it, and be suspicious of a payment code that has visibly been stuck over something else.
Wi-Fi codes deserve particular care. The credentials are encoded in plain text, so anyone who scans or photographs the code has your password. A Wi-Fi QR on a café wall is exactly as public as writing the password on the wall — which is often fine, as long as it is a guest network and you meant to.
On this page, nothing you enter leaves the browser. There is no request carrying your data, no analytics event containing it, and nothing written to local storage — deliberately, because a QR generator routinely handles Wi-Fi passwords and personal contact details.
Static and dynamic codes
The codes here are static: the data is baked into the pattern. That has real advantages — they never expire, depend on no service, work offline for Wi-Fi and contact types, and cannot be tracked.
The limitation is that the destination cannot be changed afterwards. If you print ten thousand flyers pointing at a URL and the page moves, the codes are wrong. Dynamic QR services solve this by encoding a redirect URL they own, which lets them change the target and count scans — at the cost of a permanent dependency on that provider and their analytics.
A middle path worth knowing: point a static code at a URL you control and set up the redirect yourself. You keep the ability to change the destination without handing anyone else control of your printed material.
Common problems
- No quiet zone. The code was cropped tight to the modules. Every export here includes the four-module margin.
- Printed too small. Dense codes need physical size. Shorten the data or print larger.
- Low contrast. Pale foregrounds and mid-tone backgrounds fail in poor light.
- Logo too large. Past roughly 30% the error correction cannot recover the pattern.
- Distorted when placed. A code stretched to fit a layout is no longer square and may not resolve.
- Glossy or curved surface. Reflections defeat the camera; matte finishes scan better.
- Mojibake after scanning. The generator encoded non-ASCII text as Latin-1. Not an issue here.
Frequently asked questions
What is a QR code?
A QR code is a two-dimensional barcode that stores data as a grid of black and white squares called modules. A camera reads the whole grid at once, which is why it holds far more than a traditional barcode and can be scanned from any angle.
How do I create a QR code?
Pick a type — URL, text, Wi-Fi, email, phone, SMS, contact, location or WhatsApp — fill in the fields, and the preview updates as you type. Adjust colours or error correction if you want, then download as PNG or SVG.
Is this QR code generator free?
Yes. It is free, needs no account or email address, adds no watermark, and there is no limit on how many codes you create.
Do I need an account?
No. There is no sign-up at any point. The generator runs entirely in your browser, so there is nothing for an account to store.
How do I create a QR code for a website?
Choose the URL type and paste your address. If you leave off the scheme, https:// is added; a URL that already names a scheme is encoded exactly as typed, including any query string.
How do I create a Wi-Fi QR code?
Choose Wi-Fi, enter the network name and password, and pick the security type. Scanning the result offers to join the network. Characters such as semicolons and colons in the name or password are escaped correctly, which is where naive generators produce the wrong credentials.
Can I create a QR code for a Wi-Fi password?
Yes, and it works on both iOS and Android. Be aware that anyone who scans or photographs the code gets your password — it encodes the credentials in plain text, so treat a printed Wi-Fi QR the way you would treat the password written on a card.
Can I create a contact or vCard QR code?
Yes. Fill in name, organisation, job title, phone, email, website and address, and the code encodes a standard vCard 3.0. Scanning it offers to save a new contact. Commas and semicolons in your details are escaped so the fields do not split in the wrong places.
Can I create a QR code for email?
Yes. Enter an address and optionally a subject and message body. The code encodes a mailto: link, so scanning it opens a pre-filled email. The subject and body are URL-encoded, so ampersands and spaces survive.
Can I create a QR code for a phone number?
Yes. The Phone type encodes a tel: link, and scanning it starts a call to that number. International formats with a leading plus and spaces or brackets are accepted.
Can I create an SMS QR code?
Yes. Enter a number and an optional message, and scanning opens the messaging app with both pre-filled. The recipient still has to press send.
Can I create a location QR code?
Yes. Enter latitude and longitude and the code encodes a geo: URI that opens in the phone's map app. Latitude is validated to between -90 and 90, longitude to between -180 and 180.
Can I create a WhatsApp QR code?
Yes. Enter a phone number with country code and an optional message; the code encodes a wa.me link that opens a chat with the message pre-filled.
Can I add a logo to my QR code?
Yes. Upload a PNG, JPG or WebP and it is placed in the centre. Error correction is raised to H automatically, because a logo covers modules that the error correction then has to reconstruct. Keep the logo small — above about 30% of the width the code stops scanning reliably.
Can I change the QR code colours?
Yes, foreground and background are both adjustable, and there are presets. The contrast ratio is calculated as you change them and you are warned when the combination is likely to fail — under 3:1 it is refused as unscannable.
Can I change the QR code size?
Yes. The export size is separate from the on-screen preview, so you can work with a comfortable preview and still download at 1024 or 2048 pixels for print.
What is QR error correction?
QR codes store redundant data so they still scan when part of the symbol is damaged, dirty or covered. There are four levels — L, M, Q and H — with H holding the most redundancy and therefore the least payload for a given symbol size.
Which error correction level should I use?
M is a good default for screens and clean printing. Use Q or H for codes that will be printed on packaging, displayed outdoors, or that carry a logo. Use L only when the payload is long and the code will be scanned from a screen in good conditions.
Why is my QR code not scanning?
The usual causes are too little contrast between foreground and background, a code printed too small for its data density, a missing quiet zone — the light margin around the symbol — or a logo covering too much of the pattern. Try black on white at a larger size to isolate which one it is.
What is the quiet zone and why does it matter?
The quiet zone is the blank margin of at least four modules that must surround a QR code. Without it a scanner cannot tell where the symbol ends, and codes placed flush against coloured backgrounds often fail. Every code this tool produces includes the margin.
How can I make a QR code easier to scan?
Use dark on light, keep the quiet zone, print it larger than you think you need, shorten the data so the grid is less dense, and raise the error correction level. Then test it with more than one phone before printing a batch.
Can I download my QR code as PNG?
Yes, and PNG is the recommended format for screens, documents and most printing. It is lossless, so the module edges stay sharp.
Can I download my QR code as SVG?
Yes. The SVG is a genuine vector — one path built from the module grid, not a PNG wrapped in markup — so it scales to any size without losing sharpness. Note that a centre logo is not included in the SVG export.
Is SVG better for printing?
Usually yes. A vector prints crisply at any physical size, which matters for posters, signage and packaging where a raster would show soft edges. For a business card at a fixed size, a high-resolution PNG is equally fine.
Can I print my QR code?
Yes. The Print button produces a clean page containing only the QR code and a short label — no navigation, controls or page furniture.
Do QR codes expire?
No. A QR code is just an encoding of data; it has no expiry and needs no service to keep working. What can stop working is what it points at — if the URL inside it goes away, the code still scans but leads nowhere.
Are QR codes permanent?
The codes produced here are static: the data is baked into the pattern and cannot be changed afterwards. Editing the destination later requires a dynamic QR service that redirects through its own URL, which is a different product with its own tracking and dependency.
Does a QR code require internet?
Scanning does not — the data is in the image itself. Acting on it might: a URL code needs a connection to load the page, while a Wi-Fi, contact or SMS code works entirely offline.
Are QR codes secure?
A QR code is neither secure nor insecure by itself — it is just encoded data that anyone can decode. The risk is what it points to, since a scanner cannot tell a genuine code from a sticker placed over it. Check the URL your phone shows before opening it.
Is my QR data stored or uploaded?
No. The code is generated in your browser by a local library. Nothing you type — including Wi-Fi passwords and contact details — is sent anywhere, logged, or saved to local storage.
Does the generator support Hindi, Chinese or emoji?
Yes. Text is encoded as UTF-8, so Devanagari, Chinese, Japanese, Arabic, accented Latin and emoji all survive scanning intact. This is worth checking in any generator — a common library default encodes Latin-1 and silently turns non-ASCII text into mojibake.
How much data can a QR code hold?
Up to roughly 2,953 bytes at the lowest error correction level and about 1,273 at the highest. In practice much less is advisable: more data means a denser grid, which needs a larger print size to stay scannable. This tool refuses payloads that will not fit and warns when one is getting dense.
How large should a printed QR code be?
A common rule of thumb is that the code should be about a tenth of the scanning distance — roughly 3 cm for arm's length, and much larger for a poster read from across a room. Denser codes need to be bigger, so shortening the data is often the cheapest way to shrink the print size.
Can I use these QR codes for business?
Yes. There is no licence, watermark or attribution requirement on the codes you generate, and the QR standard itself is free to use. Menus, packaging, business cards and signage are all fine.
Can I use a transparent background?
Yes, for PNG and SVG. It is worth testing though — with a transparent background the code takes on whatever is behind it, and a busy or mid-tone surface can destroy the contrast a scanner needs.
Related tools
More ToolAdda utilities that run entirely in your browser.
QR codes are generated in your browser by a local library. Nothing you enter — including Wi-Fi passwords, contact details and URLs — is uploaded, logged or saved to storage, and the generator never fetches or visits the URLs you encode. Every code includes the four-module quiet zone the specification requires, and text is encoded as UTF-8. QR Code is a registered trademark of Denso Wave Incorporated; the standard itself is free to use.