Developer Tools

Free QR Code Generator

Create QR codes for URLs, plain text, email, phone, SMS, WiFi networks, and vCard contacts. Free, no signup, no watermark, no limits. Customize colors and size. Download as PNG. 100% private: generated in your browser.

Last updated

Free: No Signup
Custom Colors
No Watermark
100% Private
Our networkLegalCost.usWhat will your legal case cost?Official formulas for all 50 states. Free, no signup.Check your state
QR
QR Code Generator
Free · No signup · No watermark · URL · WiFi · vCard · more
Customization
Enter content
to generate QR
PNG with quiet zone

How to Make a QR Code That Scans

Pick the type, enter the content and the code updates as you type. This generator stores content as UTF-8 bytes, so at the default error correction level M a code holds up to about 2,330 bytes, but short content makes a smaller grid that scans far more easily. Download the PNG, which includes the white margin scanners need, and test it on two phones before printing.

QR Code Capacity by Size and Error Correction

QR codes come in 40 versions. Version 1 is a 21 × 21 grid of modules (squares), and each version adds 4 modules per side, up to 177 × 177 for version 40. The generator picks the smallest version that fits your content. Maximum bytes per version:

VersionGridL (7%)M (15%)Q (25%)H (30%)
121 × 211714117
225 × 2532262014
329 × 2953423224
537 × 37106846044
1057 × 57271213151119
2097 × 97858666482382
30137 × 1371,7321,370982742
40177 × 1772,9532,3311,6631,273

These are byte-mode limits. The library behind this page reserves 3 bytes for a UTF-8 marker, so its real limit is 3 bytes lower. Plain English letters and digits take 1 byte each, accented letters 2, most Chinese and Japanese characters 3 and emoji 4. The often quoted 7,089 figure applies only to codes that hold nothing but digits in numeric mode, which this generator does not use.

What Error Correction Costs in Size

Error correction adds redundant data so a code still reads when part of it is scratched, dirty or covered. Level L can restore about 7% of the data, M 15%, Q 25% and H 30%. The price is a denser grid. Take a 100-character URL in this generator (103 bytes with the marker):

LevelVersionGridGood for
L537 × 37Screens and clean, large prints
M641 × 41Most uses (default)
Q849 × 49Packaging, outdoor signs
H1057 × 57Codes with a small logo on top

At the same printed size, a 57-module grid has modules about 35% smaller than a 37-module one, so it needs a better camera or a shorter distance. If you want a small print, shorten the URL before raising the error correction.

What Each Code Actually Contains

TypeEncoded text (example)What the phone does
URLhttps://calculatorshub.usOffers to open the page
Emailmailto:hi@example.com?subject=HelloOpens a new email
Phonetel:+15550000000Offers to call
SMSsms:+15550000000?body=HiOpens a new text message
WiFiWIFI:T:WPA;S:Cafe;P:pa\;ss;;Offers to join the network
vCardBEGIN:VCARD ... END:VCARDOffers to save the contact

In WiFi codes a backslash goes before any ; , : " or \ in the name or password, which the generator now adds for you. WPA covers WPA2 and most WPA3 networks. The password sits in the code as plain text, so treat a WiFi code like the password itself.

How This Generator Works and Your Privacy

The page uses the open-source qrcodejs library (version 1.0.0), which your browser downloads from the cdnjs content network like any other script. The code is then drawn on a canvas on your own device. The URL, WiFi password or contact details you type are not sent to our server or to any QR service, and nothing is stored. Codes are static: they contain your content directly, so they keep working for as long as that content (for example the web page) exists, with no account and no tracking redirect.

Two things the page now does for you: text with emoji or other non-English characters is written as proper UTF-8, and the downloaded PNG gets a quiet zone, the blank margin of 4 modules that scanners need to find the code.

Method and sources. Capacities and grid sizes: ISO/IEC 18004:2015 (QR Code bar code symbology), byte mode, as published by DENSO WAVE, the inventor of the QR code. Error correction recovery rates (about 7%, 15%, 25% and 30%) from the same standard. Payload formats: RFC 6068 (mailto), RFC 3966 (tel), RFC 5724 (sms), RFC 2426 (vCard 3.0) and the widely supported WIFI: format first documented by the ZXing project. The size example was checked by generating the codes with this page. The QR code is generated in your browser with qrcodejs; your content is not sent anywhere.

QR Code Guide

A QR code (Quick Response code) is a two-dimensional matrix barcode invented by Denso Wave in 1994. It stores data as a pattern of black and white squares arranged in a square grid. When a smartphone camera or QR scanner reads it, it decodes the pattern back into the original data: a URL, text, contact info, or other content. QR codes can store up to 7,089 numeric characters or 4,296 alphanumeric characters. They have built-in error correction so they can still be read even if up to 30% of the code is damaged (depending on error correction level). This tool generates QR codes entirely in your browser: no data is sent to any server.

URL: encodes a web address. Scanning opens the URL in the phone's browser. Text: encodes plain text that is displayed after scanning. Email: encodes a mailto: link that opens the mail app with the recipient, subject, and body pre-filled. Phone: encodes a tel: link that prompts a call to the number. SMS: encodes an sms: link that opens the messages app with a pre-filled number and optional message. WiFi: uses the WIFI:T:WPA;S:NetworkName;P:Password;; format that allows phones to join a WiFi network without typing the password (supported on iOS 11+ and Android). vCard: encodes a digital business card in the vCard 3.0 format that can be saved directly to the phone's contacts.

QR code error correction allows the code to be read even if part of it is damaged, dirty, or obscured. There are four levels: L (Low, 7%): smallest QR code, can recover 7% data loss. Best for clean digital displays. M (Medium, 15%): good balance, recommended for most uses. Q (Quartile, 25%): larger but more robust. Good for printed materials that may get scratched. H (High, 30%): most robust, largest QR code. Use when you plan to overlay a logo on top of the QR code (logos can cover up to 25 to 30% of the code and it still scans). Higher error correction makes the QR code denser and slightly harder to scan with very old devices.

Yes, but with important caveats. QR code scanners detect contrast between the dark and light modules. Rules for colored QR codes: (1) the dark color must be significantly darker than the background, (2) never make the background darker than the foreground, (3) avoid low-contrast combinations like yellow on white or dark blue on black. Always test a colored QR code with multiple scanner apps before printing it. Safe combinations: black on white (maximum contrast), dark purple on light purple, dark green on white, dark navy on light yellow. The most common mistake is inverting colors (white on black): most scanners handle this but some older apps fail. Test thoroughly before print runs.

The minimum recommended print size is 2 cm × 2 cm (about 0.8 inches). At this size, most modern smartphone cameras can scan the code from a distance of 20 to 30 cm. For optimal scanning: at 300 DPI print resolution, a 512px QR code from this tool prints at about 4.3 cm. For large-format printing (posters, banners), use the highest resolution export possible and maintain the ratio of at least 1:10 (code size to minimum viewing distance). For business cards, aim for 2.5 × 2.5 cm minimum. Add a quiet zone (white border) of at least 4 module widths around the QR code when embedding it in designs.

A static QR code (what this tool generates) encodes the destination directly in the code. If you want to change the URL, you must generate a new QR code. The content is fixed at generation time. A dynamic QR code encodes a short redirect URL. The actual destination is stored on a server and can be changed without printing a new code. Dynamic QR codes also provide analytics (scan counts, locations, devices). Dynamic QR codes require a paid service (QR.io, Bitly, QRtiger, etc.) and depend on that service staying online. Static QR codes work forever, require no subscription, and have no privacy risks from third-party tracking. For permanent uses (books, signage, business cards), static codes are more reliable.

Adding a logo to a QR code works because of error correction. Steps: (1) Generate the QR code with error correction level H (30%). (2) Download the PNG from this tool. (3) In a graphics editor (Canva, Photoshop, GIMP), place the logo in the center, covering well under 30% of the code (about 20% or less is a safer target) and keeping clear of the three large corner squares. (4) Always test the final image with multiple scanner apps before using it. Common mistakes: logo too large (covers more than 30%), logo has a white background that blends with the code's quiet zone, or logo color too similar to the QR modules. Keep the logo simple: a small square icon works better than a horizontal logo with text.

The WiFi QR format stores the network name (SSID), password, and security type in a standardized string: WIFI:T:WPA;S:YourNetwork;P:YourPassword;;. When a phone scans it, the OS offers to join that network automatically. On iPhone: use the Camera app (iOS 11+). On Android: most modern phones support it natively. Security considerations: the password is stored in plain text in the QR code data, so anyone who scans the code or reads its data can see the password. Do not share WiFi QR codes publicly for networks that also provide access to sensitive resources. They are ideal for guest networks, restaurants, and temporary setups where the network itself is relatively low-security.

This tool exports a PNG with the code drawn at up to 512 × 512 pixels, plus a blank quiet zone around it. For digital use (websites, presentations, emails): PNG at 256 to 512px is sufficient. For print use at small sizes (business cards, flyers): export at 512px and print at 300 DPI. At 512px ÷ 300 DPI = about 4.3 cm: adequate for most print needs. For large-format print (posters, banners): you ideally want an SVG or a higher-resolution PNG. For professional print work, recreate the QR code using Adobe Illustrator or a dedicated QR generator that exports SVG. Always test scan readability after resizing. Never upscale a raster QR code: blurry pixels break scannability faster than any other issue.

Yes, QR code usage increased dramatically during and after 2020 to 2021, driven by contactless menus and payment systems, and has remained elevated. Native camera QR scanning is now built into every major smartphone OS without needing a separate app. Usage has grown in: restaurant menus, retail payment (particularly in Asia), product packaging for traceability, event ticketing, marketing (print-to-digital bridge), business cards, and government documents. QR codes have effectively replaced many short-link use cases because they require zero typing. The main limitation remains: they require a smartphone camera and are not accessible to visually impaired users, so always provide a text alternative for critical content.

No, a static QR code like the ones made here never expires. It contains the URL or text itself, so it works as long as a phone can see it. What can stop working is the destination: if the web page moves or the WiFi password changes, the code still scans but leads nowhere useful. Codes from services that route scans through their own short link can stop working when the subscription ends.

The usual causes are, in order: too little contrast between the dark and light colors, no blank margin around the code, a print that is too small for the amount of data, a logo covering too much, or a light code on a dark background that some older apps cannot read. Try black on white with the downloaded quiet zone, shorten the content so the grid gets smaller, and print at least 2 cm (0.8 in) wide for short URLs.