QR Code Generator

Generate QR codes online for free. Create custom QR codes for URLs, text, WiFi.

✓ Free✓ No sign-up✓ Works in browser

Advertisement

QR Code Type

Customize

Enter data to generate

Encoded data

https://freetoolkit.io

QR codes update automatically as you type

Advertisement

How to Use This Tool

1

Enter Your Content

Type or paste the URL, text, phone number, or any content you want to encode into the QR code.

2

Set the Size

Use the size slider to choose from 128×128 to 512×512 pixels depending on your use case — print requires larger sizes.

3

Download Your QR Code

Click Download QR Code to save the PNG image. Use it on print materials, websites, or marketing assets.

Advertisement

Related Tools

Frequently Asked Questions

What can I put in a QR code?
QR codes can encode URLs, plain text, phone numbers, email addresses, SMS messages, WiFi credentials, calendar events, and more.
How long do QR codes last?
QR codes themselves never expire. As long as the URL or content they point to is active, the QR code will keep working.
What size should I make my QR code?
For print materials like flyers, use at least 300×300px. For large format print like banners, use 512×512px or higher. For digital/web use, 256×256px is sufficient.
Is this QR code generator free?
Yes, completely free with no daily limits, no sign-up, and no watermarks on downloaded QR codes.

About QR Code Generator

Your restaurant is reprinting 400 laminated table tents tomorrow morning and each one needs a QR that opens the menu PDF on a phone. Or marketing wants 12 tracking QRs for a trade-show booth, each pointing to a different UTM-tagged landing page, and they need to scan reliably from across a 15-foot aisle under fluorescent lights. This generator encodes URLs, plaintext, WiFi credentials (WPA2 / WPA3 SSID + password bundles that auto-join on iOS 11+ and Android 10+), vCard contact cards, calendar VEVENT blocks, and SMS pre-fill payloads directly in the browser using the qrcode-generator library. You pick error-correction level L / M / Q / H, output size from 128 to 2048 pixels, margin quiet-zone width, and foreground / background colours. The result is a static QR: the payload is baked into the pixels, so it never expires — but it also cannot be redirected later without reprinting, which matters if the destination URL changes.

How it works

  1. 1

    Payload encoded into a module matrix

    The input string is byte-encoded (UTF-8 for URLs, Shift-JIS for pure Latin to save modules when shorter), wrapped with the chosen error-correction Reed-Solomon blocks, and laid out into a 21x21 to 177x177 module grid depending on version. WiFi, vCard, and VEVENT payloads are formatted per the ZXing conventions that iOS and Android camera apps both recognize.

  2. 2

    Error correction picked against print conditions

    Level L recovers 7 percent module loss, M 15 percent, Q 25 percent, H 30 percent. Higher levels add more redundancy modules so the code scans through dirt, folds, or a centered logo overlay — at the cost of a denser grid that needs a larger print size to keep each module at least two pixels wide on the scanning camera sensor.

  3. 3

    Rendered to canvas, exported as PNG or SVG

    The module grid draws to an HTMLCanvasElement at your requested pixel size with nearest-neighbour scaling so modules stay sharp-edged rather than anti-aliased (anti-aliasing confuses some older scanners). SVG export gives infinitely scalable output for vector print workflows where the final size is not yet decided.

Pro tips

Quiet zone is not optional

Every QR spec requires a four-module-wide white margin around the code. Printers routinely crop this to save paper and the QR stops scanning — not a defect in the code, a defect in layout. When you hand the PNG to a designer, tell them the whitespace around the black modules is part of the code and must not be trimmed. If you are overlaying on a dark background, keep that white border intact rather than matching the background colour.

Test on the worst phone, not your own

Your iPhone 15 Pro scans a low-contrast QR from six feet in dim light because its sensor is excellent. Your customer's four-year-old budget Android with a cracked lens needs a high-contrast code at level Q and 512+ pixels to scan from two feet in the same light. Before printing a thousand of anything, test-scan from five feet, from an angle, and in both bright and dim conditions with the oldest phone you can find on the team.

Static codes cannot be redirected — plan the URL

The URL is baked permanently into the pixels. If you print 5,000 menus pointing to example.com/menu.pdf and then change the PDF filename, every printed QR is dead. Publish through a short redirector you control (yourdomain.com/m) so the printed URL never changes even when the destination moves. If the campaign will need metrics and A/B rotation later, spend 10 dollars a month on a dynamic-QR service that adds that indirection server-side.

Honest limitations

  • · Static only — once generated, the destination is fixed in the pixels and cannot be edited without reprinting the code.
  • · No built-in click analytics or scan tracking; use a redirector URL (bit.ly, your own /go/ route) if you need counts per campaign.
  • · Payloads above roughly 2,000 characters produce a version-40 code with tiny modules that older phone cameras struggle to scan at practical print sizes.

Frequently asked questions

Which error correction level should I pick?

Default to M (15 percent recovery) for screen and clean print where nothing will overlay the code. Bump to Q (25 percent) if you intend to place a small logo inside the code or if printing on textured paper that may have fibre speckle. Use H (30 percent) for outdoor signage, laminated menus, or anywhere the code will collect fingerprints and coffee rings. Level L (7 percent) is only appropriate for short-lived digital displays in controlled lighting — a website footer, a clean slide deck — where you want the densest possible modules for design reasons.

Will a QR code ever expire?

The code itself does not expire — static QRs are just pixel patterns encoding your payload and they will scan correctly indefinitely. What expires is the destination. If the URL you encoded is taken offline, the QR still scans but leads to a 404. Domain ownership lapses, CMS migrations that change URL structure, and PDF filename changes are the three ways a printed QR goes dead. Point your codes at a redirector on a domain you control rather than a third-party shortener that might discontinue free tiers.

Can I put a logo in the middle of my QR code?

Yes, if you use level H error correction and keep the logo under roughly 20 to 25 percent of the code's total area. The Reed-Solomon redundancy reconstructs the obscured modules from the surrounding ones. Keep the logo centred (corner finder patterns must remain intact) and give it a small white padding ring so scanning algorithms can still identify the code's shape. Test-scan with multiple phones before committing to print — logo overlays that work in lab conditions sometimes fail on older camera sensors in poor light.

What is the maximum amount of data a QR code can hold?

A version-40 code with level L error correction can encode up to 2,953 bytes of binary data, 4,296 alphanumeric characters, or 7,089 numeric digits. In practice, keep QR payloads under 300 characters. Longer payloads produce denser grids where individual modules get so small that phone cameras cannot reliably focus on them at normal scanning distances. If you need to encode a long string, host it on a URL instead and encode the short URL — scanning reliability is vastly higher.

Does QR generation happen in my browser or on your server?

Entirely in your browser. The qrcode-generator library runs on the client, takes your payload string, computes the module matrix, and draws it to a canvas for download. No fetch call, no analytics on the payload contents, no server log of the URL or WiFi password you encoded. For a WiFi QR with a real password, this matters — the password literally never leaves the tab. You can verify by opening devtools Network panel during generation and confirming zero outbound requests fire while you click Generate.

QR generation often sits alongside barcode and link workflows. The barcode-generator covers Code-128, EAN-13, and UPC-A output for retail or inventory workflows where a QR is overkill. For marketing landing pages behind a QR, pair with ip-address-lookup if you need to approximate where scans are originating. image-compressor trims the exported PNG before sending to a printer who charges by file size. Print-oriented PDFs with embedded QRs can be assembled via images-to-pdf to batch many codes onto one sheet.

Advertisement