QR Code Generator
Generate QR codes for URLs, plain text, email, phone numbers and Wi-Fi credentials — instantly in your browser. Customise the size, error-correction level and colours, then download as PNG or SVG. Nothing is uploaded or stored.
Enter text above and click Generate.
Error correction levels
| Level | Max damage tolerated | Best for |
|---|---|---|
| L | 7% | Clean digital displays, minimal data |
| M (default) | 15% | Most everyday uses |
| Q | 25% | Industrial labels, outdoor signage |
| H | 30% | Print, logo overlaid on code, harsh environments |
QR code content formats
These standard text formats are recognised automatically by most phone cameras — paste them into the input and click Generate:
| Type | Format |
|---|---|
| URL | https://example.com/ |
mailto:you@example.com | |
| Phone | tel:+1234567890 |
| Wi-Fi | WIFI:T:WPA;S:NetworkName;P:Password;;T = WPA, WEP or nopass; omit P if open network. |
| SMS | SMSTO:+1234567890:Your message here |
| vCard | BEGIN:VCARD |
| Geo-location | geo:51.5,-0.12 (latitude,longitude) |
The history of the QR code
The QR code was invented in 1994 by a team led by engineer Masahiro Hara at Denso Wave, a subsidiary of the Japanese automotive-components giant Denso (historically part of the Toyota group). The problem it solved was mundane but pressing: car factories needed to track a growing number of parts, and the conventional one-dimensional barcode could only hold around 20 characters. Scanning a part often meant reading several barcodes in sequence, which was slow on a busy production line. Hara's team wanted a single symbol that held far more data and could be read almost instantly from any angle — hence the name QR, for "Quick Response."
The most recognisable feature, the three nested squares in the corners, exists to make reading
fast and orientation-independent. Hara has recounted that the black-and-white grid of the board
game Go helped inspire the matrix layout, and that the corner markers use a
1:1:3:1:1 ratio of dark-to-light because his team analysed printed material and
found that proportion was the least likely to occur by accident in ordinary text and pictures.
That careful choice is why a scanner can lock onto a QR code in a fraction of a second without
being fooled by surrounding artwork.
QR codes were standardised as a Japanese Industrial Standard (JIS X 0510) in 1999 and as an international standard, ISO/IEC 18004, first published in 2000 and most recently revised in 2024. Crucially, although Denso Wave holds patents on the technology, it chose not to exercise its patent rights for the standardised code, leaving it free for anyone to generate and use. ("QR Code" itself remains a registered trademark of Denso Wave.) That openness, combined with the spread of smartphones with built-in cameras and on-device decoding, turned a factory-floor tool into a global standard. Adoption accelerated sharply during the COVID-19 pandemic, when contactless menus, payments and check-ins became commonplace; by 2022 an estimated 89 million people in the United States alone scanned a QR code with their phones.
How a QR code is structured
A QR code is a grid of small black and white squares called modules. The pattern looks random, but every region has a job. Understanding the anatomy explains why these codes are so robust:
- Finder (position-detection) patterns. The three large concentric squares in
the top-left, top-right and bottom-left corners let a scanner instantly locate the code and
work out its rotation, so it reads correctly whether the code is upright, sideways or upside
down. Their distinctive
1:1:3:1:1ratio shows up identically along any line that crosses them, which is what makes reading omnidirectional. - Alignment patterns. Smaller nested squares (present from version 2 onward) help the decoder correct for perspective distortion when the code is printed on a curved bottle, a creased label or photographed at an angle.
- Timing patterns. Alternating black-and-white lines running between the finder patterns act like a ruler, telling the scanner the size of one module and the exact coordinates of the grid.
- Quiet zone. A blank margin (at least four modules wide) around the symbol separates it from surrounding graphics so the scanner can tell where the code begins and ends. This generator adds a margin automatically.
- Format and version information. Reserved strips next to the finder patterns encode which error-correction level and mask were used, plus the version, so the decoder knows how to interpret everything else.
- Data and error-correction modules. The remaining area holds your actual content interleaved with redundant recovery data (described below).
Before the final image is produced, the encoder applies one of eight mask patterns, which flips a regular checkerboard of modules to break up large blank areas and sequences that might be mistaken for a finder pattern. The mask that yields the most balanced, readable result is chosen automatically.
Versions, modules and data capacity
The standard defines 40 versions, from the compact Version 1 at
21×21 modules up to Version 40 at 177×177 modules.
Each step adds four modules per side — the side length is always
4 × version + 17 modules. A larger version holds more data but needs more
space and a higher-resolution camera to read reliably, so a good encoder uses the smallest
version that fits your content at the chosen error-correction level.
How much you can store also depends on the encoding mode, because digits pack more tightly than arbitrary text. The four modes and their maximum capacities (at the largest version, lowest error correction) are:
| Mode | Content | Max characters |
|---|---|---|
| Numeric | Digits 0–9 only | 7,089 |
| Alphanumeric | 0–9, A–Z (uppercase) and nine symbols | 4,296 |
| Byte | Any 8-bit data (UTF-8 text, URLs) | 2,953 |
| Kanji | Japanese double-byte characters | 1,817 |
Most everyday content — a website address, an email or a Wi-Fi string — uses byte mode and is comfortably short, so you will rarely approach these limits. There is also a family of smaller relatives: Micro QR codes start at 11×11 modules for very small payloads, and rectangular variants exist for narrow label spaces.
Reed–Solomon error correction explained
The single most important reason QR codes are so reliable is their built-in Reed–Solomon error correction — the same mathematical family of codes used on CDs and DVDs and in deep-space communication. When a code is generated, extra redundant data is woven in alongside your content. If part of the symbol is later scratched, smudged, partly hidden or poorly printed, the decoder can mathematically reconstruct the missing pieces from that redundancy, up to a known fraction of the total.
You choose how much protection to add by picking one of four levels. The trade-off is simple: more recovery capacity means more redundant modules, so for the same content the code becomes denser (a higher version). The recovery capacities are L ≈ 7%, M ≈ 15%, Q ≈ 25% and H ≈ 30%. This is also the trick behind QR codes with a company logo in the middle: the logo deliberately covers some modules, and a high error-correction level (Q or H) supplies enough redundancy that the code still scans despite the obstruction. For clean on-screen use, level L or M is plenty; for printed labels, outdoor signage or logo overlays, choose Q or H.
QR codes versus traditional barcodes
A familiar retail barcode (UPC, EAN or Code 128) is one-dimensional: it stores data only in the varying widths of parallel vertical lines, is read across a single direction, and typically holds about 20–25 characters with little or no error correction. A QR code is two-dimensional, storing data in both the horizontal and vertical axes, which is what gives it dramatically higher capacity in a far smaller footprint.
| Property | 1D barcode | QR code (2D) |
|---|---|---|
| Data direction | Horizontal only | Horizontal & vertical |
| Typical capacity | ~20–25 characters | Thousands of characters |
| Error correction | Minimal or none | Built-in (up to ~30%) |
| Reading angle | Must be aligned | Omnidirectional |
| Damage tolerance | Low | High |
Staying safe: QR codes and "quishing"
A QR code is an opaque container: unlike a written link, you cannot read its destination with your eyes before you act on it. Attackers exploit exactly this. "Quishing" (QR-code phishing) hides a malicious URL inside a normal-looking code that, once scanned, can open a fake login page, trigger a download, silently join a Wi-Fi network or pre-fill a payment. Because the payload is an image rather than a clickable link, it often slips past the email and web filters that would normally flag a suspicious address.
The threat has grown quickly: security researchers have reported roughly a 900% increase in QR-code phishing between 2021 and 2024, with thousands of malicious codes detected every day, frequently embedded inside PDF attachments to evade scanning. A common physical tactic is to print a fraudulent sticker and paste it over a legitimate code on a parking meter, restaurant table or poster. A few sensible habits keep you safe: preview the decoded URL before opening it (most modern phone cameras show the link first), check that the domain is the one you expect, be wary of any code that immediately demands a login or payment, avoid scanning codes from untrusted stickers or unsolicited messages, and keep your phone's operating system up to date. The codes you create with this generator are safe by construction — they are built locally in your browser from the exact text you type, with no redirect service in between.
Frequently asked questions
- Are the QR codes I generate here safe to use commercially?
- Yes. QR codes are an open standard (ISO/IEC 18004). This generator creates them entirely in your browser using the open-source qrcode library — no proprietary services, no watermarks, no upload. You own the output completely.
- What is the error correction level and which should I choose?
- Error correction lets a QR code be scanned even when part of it is damaged or obscured. Level L tolerates 7% damage — good for clean screens. M (the default) tolerates 15% — suitable for most uses. Q tolerates 25% — better for noisy or industrial environments. H tolerates 30% — best for printed labels or when a logo is overlaid on the code. Higher correction makes the code denser (more modules) for the same data.
- How much text can a QR code hold?
- At the lowest error-correction level a QR code can store up to 7,089 numeric characters, 4,296 alphanumeric characters, or 2,953 binary/UTF-8 bytes. For most uses (URLs, phone numbers, short text) you are well within this limit. If the input is too long for the selected level, try switching to level L.
- What size should I generate?
- For on-screen use, 256 px is usually enough. For print, use the SVG download (vector — scales without pixelation) or select 512–1024 px and export as PNG. As a practical rule, the minimum reliable print size is 2 cm × 2 cm; scale up for posters and banners.
- Can I use a light code on a dark background (inverted QR code)?
- Yes — swap the dark and light colours using the ⇅ button. Most modern phone cameras handle inverted QR codes correctly. Test on your target device before wide deployment, as some older scanners may fail on light-on-dark codes.
- Do I need to register or create an account?
- No. The QR code is generated locally in your browser using the open-source qrcode library bundled into this page. Nothing is uploaded, no account is needed, and there is no usage limit.