Generate scannable QR codes for URLs, text, WiFi credentials, contacts, email, and phone numbers. Customize colors, add your logo, pick the error correction level, and download as PNG or SVG. Everything runs in your browser -- nothing is uploaded anywhere.
Last updated: March 2026 | Free to use, no signup required
A QR code (Quick Response code) is a two-dimensional barcode that stores data in a grid of black and white squares. Denso Wave, a subsidiary of the Toyota supplier Denso, invented the format in 1994 for tracking automotive parts during manufacturing. Unlike traditional barcodes that only encode data horizontally, QR codes encode data both horizontally and vertically, allowing them to store significantly more information in a smaller space.
QR codes can hold up to 7,089 numeric characters or 4,296 alphanumeric characters. They are readable by smartphone cameras, dedicated scanners, and most modern camera apps without requiring a separate scanning application. The format is an open standard (ISO/IEC 18004), which means anyone can generate and read QR codes without licensing fees.
A QR code consists of several functional components. Three large squares in the corners (finder patterns) help scanners locate and orient the code regardless of rotation. Timing patterns (alternating black and white modules between the finder patterns) help the scanner determine the grid dimensions. The data itself is encoded using one of four modes: numeric, alphanumeric, byte, or kanji. Each mode uses a different number of bits per character to maximize efficiency.
After the raw data is encoded, Reed-Solomon error correction codes are appended. These allow the QR code to remain readable even when portions of the symbol are damaged, obscured, or dirty. The error correction level determines how much of the code can be lost while still being readable, ranging from 7% to 30%. Finally, a masking pattern is applied to the data area to balance the distribution of black and white modules, preventing large blocks of same-color modules that would confuse scanners.
QR codes can encode different types of structured data, not just plain text. The content type determines what happens when someone scans the code:
QR codes use Reed-Solomon error correction, which adds redundant data to the encoded content. If part of the QR code is damaged, smudged, or covered (for example, by a logo placed in the center), the scanner can reconstruct the missing data from the redundant information. There are four error correction levels:
Keep the content short. Shorter data produces smaller, simpler QR codes that scan more reliably from a distance. If you need to encode a long URL, use a URL shortener first. When choosing colors, maintain high contrast between the foreground and background. Dark foreground on light background works best -- avoid low-contrast combinations like light gray on white. The foreground color should always be darker than the background because scanners look for dark modules on a light field.
Leave sufficient quiet zone (margin) around the QR code. The quiet zone is the blank space surrounding the code that helps scanners distinguish the QR code from its surroundings. Two to four modules of margin is standard. When printing, ensure the QR code is large enough for the intended scanning distance. A general rule is that the scanning distance is roughly ten times the width of the QR code, so a 2.5 cm (1 inch) QR code works at about 25 cm (10 inches).
Test every QR code before deploying it. Scan it with at least two different devices and apps, under different lighting conditions, and from the distances your users will actually use. If you add a logo, always use the H (High) error correction level and keep the logo to no more than 20% of the total QR code area.
Most smartphones made after 2017 can scan QR codes directly through the default camera app without installing a third-party scanner. On iPhone, open the Camera app and point it at the QR code -- a notification banner appears with the encoded content. On Android, the Google Lens integration in most camera apps provides the same functionality. Samsung, Pixel, OnePlus, and other major brands all support native QR scanning through their camera apps.
For desktop use, browser extensions and built-in features handle QR scanning. Google Chrome on Android can scan QR codes from the address bar. Some password managers and authenticator apps include QR scanners for specific use cases like two-factor authentication setup. If the QR code contains a URL, the device will typically offer to open it in the browser. For WiFi codes, the device prompts to join the network. For contact cards, it offers to save the contact information.
Yes, completely free with no account required, no watermarks, and no limits on the number of QR codes you can generate. The tool runs entirely in your browser using JavaScript, so your data never leaves your device. There are no ads, no tracking, and no premium tier.
No. QR codes generated here are static, meaning the data is encoded directly into the image. They do not expire and do not depend on any server or subscription. As long as the encoded content remains valid (for example, the URL still works), the QR code will continue to function indefinitely.
Yes. Upload a logo image using the logo upload button in the customization panel. The tool automatically switches to H (High) error correction when a logo is added, which provides 30% data redundancy. This allows the scanner to read the QR code despite the logo covering some of the data modules. Keep the logo relatively small compared to the overall QR code for best results.
PNG is a raster image format with fixed resolution. The QR code is exported at the pixel size you set with the size slider. PNG works well for web use, social media, and documents. SVG is a vector format that scales to any size without losing quality. SVG is the better choice for print materials, large format displays, and any situation where you need to resize the QR code after generating it.
The maximum capacity depends on the data type and error correction level. At the lowest error correction (L), a QR code can store up to 7,089 numeric digits, 4,296 alphanumeric characters, or 2,953 bytes of binary data. Higher error correction levels reduce the available capacity because more space is used for redundancy. In practice, keeping content under 300 characters produces QR codes that are small, clean, and scan reliably at a distance.
The most common causes are low contrast between foreground and background colors, insufficient quiet zone (margin), the QR code being printed too small for the scanning distance, or encoding too much data which creates a very dense grid. Try increasing the size, using standard black on white colors, adding more margin, or shortening the encoded content. Also ensure the foreground color is darker than the background, as inverted QR codes are not supported by all scanners.