QR Code Generator
Generate a QR code for a URL, email, phone, SMS or WhatsApp - free, instant.
What this tool does
Pick what you're encoding - a URL or text, an email address, a phone number, an SMS or a WhatsApp message - fill in the fields, and a QR code updates instantly, ready to download as a PNG or SVG.
Generates a QR code for six payload types: URL/text, email (with subject and body), phone number, SMS (with a pre-filled message), and WhatsApp (with a pre-filled message).
Builds the correct URI scheme for each type - mailto: for email, tel: for phone, sms: for text messages, wa.me for WhatsApp - so scanning the code opens the right app with the right fields already filled, not just a block of text.
Updates the preview live as you type, with adjustable error correction and output size.
Runs entirely in your browser using the qrcode JavaScript library - no code is generated on a server, and nothing you type is transmitted anywhere.
Builds in a fixed 4-module quiet zone (the clear space a scanner needs to find the code's edges) at every size and error-correction level, matching the specification's minimum.
How to use it
- Choose what you're encoding.
- Fill in the fields for that type.
- Download the code as PNG or SVG.
Why use this generator
A QR code saves typing a link, number or message, but each type needs the right format. Choosing the type builds it correctly, so scanning opens the right app.
Why we built it
We built the QR code generator to build the exact URI scheme for each payload, so a WhatsApp code opens a chat and a phone code dials. Make many at once with the bulk QR code generator and read codes with the QR code scanner.
Handy alongside this: the vCard Generator and the Barcode Generator.
Who this tool is for
- Businesses and event organisers linking to pages
- Teachers and students sharing resources
- Anyone sharing a phone number or WhatsApp chat
When to use it
- Linking posters and flyers to a web page.
- Putting a phone number or email on a card.
- Starting an SMS or a WhatsApp chat.
- Sharing text.
Why the payload type matters, not just the text
A QR code that just encodes readable text isn't the same as one built with the right URI scheme.
Any QR code can encode plain text, and a scanner will show that text on screen - but a code built with the correct URI scheme does something more useful: scanning a phone-number code offers to dial the number directly, scanning an email code opens a pre-addressed draft, and scanning a WhatsApp code opens a chat with the message already typed. That's the difference between 'a code containing some text' and 'a code that does the thing you actually wanted' - this tool builds the latter for every payload type it offers, using the same URI schemes phones and messaging apps already recognise.
The preview size and the downloaded size aren't the same thing
The Size dropdown controls your download, not what you see while editing.
The live preview on this page is always drawn at a fixed, small size, purely so it updates instantly as you type. The Size dropdown (256, 512 or 1024 pixels) doesn't change that preview at all - it sets the resolution of the file you actually get when you click Download PNG. The SVG download is different again: it's built as real vector markup, not a raster image, so it scales to any print size - a wall poster or a business card - without ever going blurry.
If you're picking a size for print, go by the download, not the on-screen preview - they're rendered separately.
What you give it, and what you get back
| Item | Details |
|---|---|
| Input | A type and its details. |
| Types | URL or text, email, phone, SMS and WhatsApp. |
| Output | A QR code to download. |
Issues you may run into
| What you see | Why it happens | What to do |
|---|---|---|
| A code does not scan | It is small or low contrast. | Print larger with dark on light. |
| WhatsApp code fails | The number needs a country code and no symbols. | Use digits only with the country code. |
| Many codes needed | This makes one. | Use the bulk generator. |
Assumptions and limitations
- This site also has a Bulk QR Code Generator for URL/text, WiFi and vCard batches - use that one instead if you need more than one code at a time, or a WiFi/contact-card code.
- A WhatsApp code needs the number as country code plus digits only, with no plus sign, spaces or leading zero - an incorrectly formatted number will fail to open a chat even though the code itself scans fine.
Frequently asked questions
How do I make a QR code online for free?
Pick what you're encoding, fill in the fields, and download the code as PNG or SVG - it updates live as you type.
Can I make a QR code that opens WhatsApp with a message already typed?
Yes - choose WhatsApp, enter the number (country code plus digits, no plus sign or spaces) and an optional message, and scanning the code opens a chat with that message pre-filled.
Can I make a QR code for an email or phone number?
Yes - the Email option builds a mailto: link (with optional subject and body) and the Phone option builds a tel: link, so scanning either opens the right app directly rather than just showing text.
What does the error correction level do?
Higher levels rebuild the code from a partial scan if it's scratched, dirty or partly covered - useful for print - but the code gets visually denser at the same size, so pick the lowest level your use case can tolerate.
Is my data uploaded anywhere?
No. The QR code is generated entirely in your browser - nothing you type is sent to a server.
Does the Size dropdown change the preview?
No - the on-screen preview is always drawn at a fixed size for speed. The Size dropdown (256, 512 or 1024px) only controls the resolution of the PNG file you download.
Does the downloaded code already have a quiet zone around it?
Yes - every code is generated with a 4-module margin of clear space built in, matching the specification's minimum quiet zone, so you don't need to add your own border before printing it.