QR Code Generator: Free, No Watermark, No Expiry, No Account
Generate a permanent QR code from any URL or text. Free, no watermark, no expiry — your data never touches a server.
Enter a URL or text
A scannable QR code will appear here. Try an example to see it instantly.
About QR Codes
A QR code (Quick Response code) is a 2D barcode that packs text, a URL, or other data into a grid of black and white squares. Any smartphone camera reads one without a dedicated app, which makes a QR code the fastest way to hand someone a link, a Wi-Fi password, or a contact card when typing it out isn't practical. This tool takes whatever you type into the input field and renders it as a QR image you can preview, download, and print.
How this generator works
You type a URL or a block of text, and the tool encodes it using the qrcode library directly in your browser. There's a short debounce so the code doesn't regenerate on every keystroke, then the preview updates and you can download the result as a PNG. The generator sets error correction level M, which means up to 15% of the pattern can be scratched, smudged, or covered by a logo and a scanner will still read it correctly. You can pick from three output sizes: 128px for compact digital use, 256px for general screen display, and 512px for print, where more pixels translate to a sharper edge on paper and better scan reliability from a few feet away.
Common uses
- 🔗Share a website URL on a poster, flyer, or slide so people can scan it instead of typing a long address
- 📶Encode a Wi-Fi password using the WIFI: format so guests connect without asking for the login
- 📇Encode vCard contact details so people add you to their contacts with one scan at a networking event
- 💳Point customers to a payment page, menu, or intake form in a physical space like a store, table, or waiting room
- 📦Label equipment, boxes, or assets with a code that opens a tracking page or spec sheet when scanned
What you can encode besides a plain URL
The input field accepts any text string, and a handful of standard formats turn that plain text into something a phone recognizes as a specific action rather than just a webpage. A Wi-Fi network encoded as WIFI:T:WPA;S:NetworkName;P:password;; prompts most phones to offer a one-tap connect instead of just opening a browser. An email address written as mailto:you@example.com opens the recipient's mail app with the address already filled in, and a phone number written as tel:+15551234567 opens the dialer ready to call. A vCard block, the same plain-text format contact apps use to export a contact, lets a single scan add a full name, phone number, and email to someone's address book at once. Try the two example buttons above the input to see the Wi-Fi format in action before you build your own.
How much data fits in a code
A QR code's grid grows denser as you encode more characters, and the version of the code, its grid size, scales up automatically to fit whatever you type. Error correction level M, the level this tool uses, strikes a middle ground: it tolerates real-world damage like a torn corner or a logo placed in the center while keeping the grid from getting more crowded than it needs to be. Encoding a short URL from a link shortener instead of a long tracking link with dozens of query parameters keeps the grid simpler, which in turn makes the printed code easier to scan from a distance or on a low-quality print job.
Tips for a reliable scan
Keep the destination URL short. Long strings pack more data into the same grid, which forces smaller, denser squares that are harder for a camera to resolve at a distance. Leave the white border, called the quiet zone, intact around the code when you place it in a design; cropping it tightly is a common reason a code that looks fine on screen refuses to scan once printed. Print at the 512px size and test on the actual paper stock and lighting you'll use before running off a large batch, since gloss finishes and low contrast between the code and its background both cause scan failures that a screen preview won't reveal.
Static codes, not tracked links
This tool generates a static QR code: the destination is baked directly into the pattern, and a scanning phone reads it straight from the image with no third-party redirect server involved. That means the code never expires and keeps working even years later, but it also means you can't edit the destination after printing or see scan analytics. If you need to change the link later or track how many people scan it, you'd point the code at a URL shortener you control instead of the final destination.
Everything happens locally. The text or URL you type is encoded into the image in your browser and never leaves your device.
Related: Barcode Generator for traditional 1D product and inventory barcodes, or Markdown Notes to log your generated codes.
Frequently Asked Questions
Is the QR Code Generator free?
Yes — completely free. No account, no watermark, and no scan limits.
Is my data sent to a server?
No. QR codes are generated entirely in your browser using the qrcode library. The URL or text you enter is encoded directly into the image and never transmitted anywhere.
Do I need an account?
No account, no login, and no signup required.
Do these QR codes expire?
No. Static QR codes encode the destination directly into the pattern — when someone scans it, their phone reads the URL from the code itself. There is no third-party server involved, so there is nothing to expire or go offline.
What size should I use for printing?
Use 512px and print at a minimum physical size of 1×1 inch. Larger physical codes scan more reliably from a distance and on low-contrast backgrounds. For screens only, 256px is sufficient.
Why won't my QR code scan reliably?
The most common causes: low contrast between the code and background, the quiet zone (white border) being cropped in your design, too much data encoded in a long URL, or low print resolution. Test on the actual material before printing a full run.