fileformer
search⌘KtranslateENexpand_moreupload_fileConvert
Converters8 file families · 44 direct conversions
What changes in a conversionarrow_forward
home/general-tools/qr-code-generator

Free QR Code Generator Online

QR code generator

Turn a link, Wi-Fi login, contact or message into a scannable code. Static codes never expire, never track scans and work offline.

linkLinknotesTextwifiWi-FimailEmailcallPhonesmsSMScontact_pageContactlocation_onLocation
Style
colour
error correction
LMQH
Level M recovers up to 15% of damage: balanced default for most uses. Higher levels add more squares.
~/codes-that-scan

Make it scan first time.

A QR code is a grid of black and white squares that a camera reads as text. These four things decide whether it works on a poster, a menu or a screen.

contrastKeep strong contrastDark squares on a light background. Light-on-dark or pale colours confuse many camera apps.
straightenPrint it big enoughAt least 2 × 2 cm for close scans; roughly 1/10 of the scanning distance for posters.
crop_freeLeave a quiet zoneKeep a clear margin around the code: scanners use it to find the edges.
short_textShorter data, simpler codeLong text makes a denser grid that’s harder to scan. Use a short link where you can.
verified_userStatic, private, permanentThe data is inside the code itself: no redirect through our servers, no scan tracking, and nothing to expire or pay for later.
~/anatomy

What's inside the squares.

Every QR code has the same fixed landmarks around its data. Your phone finds these first, then reads the rest. Pick a part to see where it lives in this real code for fileformer.com.

Finder patternsThree big squares in the corners. They tell the camera “a QR code is here”, how big it is and which way up it is, so it scans at any angle.Timing patternsAlternating dark and light dots between the finders. They act like a ruler, so the scanner knows the exact size of each square even on a warped or curved surface.Format informationTwo copies of a short code next to the finders, recording the error-correction level and the mask used. Two copies so one can be damaged.Data & error correctionEverything else: your text encoded as bits, plus recovery bits that let the code still scan when part of it is dirty, torn or covered.Dark moduleA single square that is always dark, next to the bottom-left finder. Scanners use it as a fixed reference point.Quiet zoneThe empty margin around the code. Without it, nearby text or graphics can blend into the edge and the scan fails.
~/from-text-to-bits

How your content becomes the bits inside the squares.

A QR code can store text in three main modes, and each packs characters differently. Digits only take 10 bits per 3 digits. Upper-case letters, digits and nine symbols take 11 bits per pair. Anything else is UTF-8 at 8 bits a byte. This is the exact bit stream for the content in the generator above, using the most compact mode that fits it. It also shows the smallest code version that can hold it at each error-correction level.

contenthttps://fileformer.commode chosenbyte (UTF-8)data bits188as plain bytes188 bits
the bit stream, before error correction
0100byte0001011022 bytes01101000h01110100t01110100t01110000p01110011s00111010:00101111/00101111/01100110f01101001i01101100l01100101e01100110f01101111o01110010r01101101m01100101e01110010r00101110.01100011c01101111o01101101m0000term + pad111011000xEC000100010x11111011000xEC000100010x11
■ mode indicator■ character count■ data■ terminator and padding to a byte■ pad bytes 11101100 00010001
error correctionsmallest versionbits usedfull
L · 7%version 2 · 25×25188 of 27269%
M · 15%version 2 · 25×25188 of 22484%
Q · 25%version 3 · 29×29188 of 27269%
H · 30%version 3 · 29×29188 of 20890%
lightbulbThis content is in byte mode only because it has lower-case letters. Written in capitals, it would fit alphanumeric mode, at 5.5 bits a character instead of 8. Domain names and URL schemes aren’t case-sensitive, which is why some printed QR links are upper case.
~/how-damage-is-survived

Error correction is polynomial division in a 256-number world.

The data bytes are treated as the coefficients of a polynomial, then divided by a fixed generator polynomial using arithmetic in the finite field GF(256). The remainder becomes the error-correction bytes. Type up to 17 characters for the smallest code, version 1, and pick a level. Your browser does the division, then lets you damage bytes and checks whether the reader would notice.

L7 EC bytesM10 EC bytesQ13 EC bytesH17 EC bytes
alphanumericeric mode · 74 data bits in 16 data codewords · 6 pad bytes
26 codewords · click any byte to damage it
20D15BD20BD378D4D1D572D6DCD74DD843D940D10ECD1111D12ECD1311D14ECD1511D16C4E123E227E377E4EBE5D7E6E7E7E2E85DE917E10
dataerror correctiondamaged by you
GENERATOR POLYNOMIAL · 10 roots, as exponents of αg(x) = α^0·x^10 + α^251·x^9 + α^67·x^8 + α^46·x^7 + α^61·x^6 + α^118·x^5 + α^70·x^4 + α^64·x^3 + α^94·x^2 + α^32·x^1 + α^45·x^0FIELDGF(256) built from x⁸ + x⁴ + x³ + x² + 1 (0x11D). Addition is XOR, so no carries. Multiplication uses log tables of α = 2, whose 255 powers give every non-zero byte exactly once.✓ Checked: HELLO WORLD at 1-M gives C4 23 27 77 EB D7 E7 E2 5D 17, matching the published test vector.
verifiedIntactEvery syndrome is zero. Click bytes in the grid to damage them.
SYNDROMES S₀…S₉ · all zero means the codeword is intact00 00 00 00 00 00 00 00 00 00
restart_altRepair everything
~/on-the-phone

What each type does when scanned.

The camera app recognises the format of the text inside and offers the right action. Built into iOS and Android: no scanner app needed.

typephone offers to…stored as
linkLinkOpen the website in the browserhttps://…
notesTextShow or copy the messageplain text
wifiWi-FiJoin the network: no typing the passwordWIFI:T:WPA;S:name;P:pass;;
mailEmailOpen a new email with address and subject filled inmailto:…?subject=…
callPhoneCall the numbertel:+44…
smsSMSOpen a text message ready to sendSMSTO:number:message
contact_pageContactSave the person to contactsBEGIN:VCARD … END:VCARD
location_onLocationOpen the spot in the maps appgeo:lat,lng
~/where-they-work

Six places they pay off, and the settings to use.

restaurantMenus & tables
Link to a menu page rather than a PDF, it loads faster on mobile data.
LinkLevel M3 × 3 cm
Use these settingsnorth_east
wifiGuest Wi-Fi
Frame it by the door or on reception so visitors connect in one tap.
Wi-FiLevel Q4 × 4 cm
Use these settingsnorth_east
badgeBusiness cards
A vCard saves your details straight into their phone: no retyping.
ContactLevel M2 × 2 cm
Use these settingsnorth_east
campaignPosters & flyers
Big and simple: short link, high contrast and plenty of margin.
LinkLevel HA4 or bigger
Use these settingsnorth_east
inventory_2Packaging & labels
Curved or scuffed surfaces need extra recovery bits.
TextLevel Qmatte
Use these settingsnorth_east
eventEvents & tickets
Point to a location or a registration page from signage.
LocationLevel M3 × 3 cm
Use these settingsnorth_east
~/static-vs-dynamic

Why we only make static codes.

“Dynamic” QR services put their own short link in the code and redirect it. That's handy, until the subscription lapses and every printed code stops working.

check_circleStatic (this tool)Data lives inside the code: works foreverNo account, no subscriptionNo scan tracking or redirectsWorks offline once printed
sync_altDynamic (redirect services)Content can be changed after printingScan analytics via the redirectStops working if the service or plan endsEvery scan passes through a third party
~/reference

How much fits, and how phones read what's inside.

Capacities for versions 1 to 10, computed from the data codeword counts in ISO/IEC 18004. Version 40, the largest at 177 × 177, holds 2,953 bytes at level L. Below that are the payload formats phone cameras recognise and act on.

versionmodulesL · bytes / alnum / digitsMQH
121×2117 / 25 / 4114 / 20 / 3411 / 16 / 277 / 10 / 17
225×2532 / 47 / 7726 / 38 / 6320 / 29 / 4814 / 20 / 34
329×2953 / 77 / 12742 / 61 / 10132 / 47 / 7724 / 35 / 58
433×3378 / 114 / 18762 / 90 / 14946 / 67 / 11134 / 50 / 82
537×37106 / 154 / 25584 / 122 / 20260 / 87 / 14444 / 64 / 106
641×41134 / 195 / 322106 / 154 / 25574 / 108 / 17858 / 84 / 139
745×45154 / 224 / 370122 / 178 / 29386 / 125 / 20764 / 93 / 154
849×49192 / 279 / 461152 / 221 / 365108 / 157 / 25984 / 122 / 202
953×53230 / 335 / 552180 / 262 / 432130 / 189 / 31298 / 143 / 235
1057×57271 / 395 / 652213 / 311 / 513151 / 221 / 364119 / 174 / 288

Payload formats a camera understands

Web linkhttps://fileformer.comOpened in the browser. Phones show the domain first so you can check it.
Wi-FiWIFI:T:WPA;S:Cafe;P:latte42;H:false;;Joins the network. Escape \ ; , : and " in the name and password with a backslash.
ContactBEGIN:VCARDVERSION:3.0FN:Ana RuizTEL:+44…END:VCARDOffered as a new contact. MECARD:N:Ruiz,Ana;TEL:…;; is a shorter Japanese format.
Emailmailto:hello@example.com?subject=HiOpens a draft. Spaces in the subject must be %20.
Phone and SMStel:+442079460958 · SMSTO:+44…:HelloDials, or opens a text message with the body filled in.
Locationgeo:51.5074,-0.1278Opens the maps app at the point. RFC 5870 defines the format.
Calendar eventBEGIN:VEVENTSUMMARY:LaunchDTSTART:20261015T090000ZEND:VEVENTOffered as an event to add.
App storehttps://apps.apple.com/app/id…Store links open directly in the App Store or Google Play.
Numeric00013.33 bits per digit0 to 9 only. Three digits in 10 bits.
Alphanumeric00105.5 bits per character0-9, A: Z, space and $ % * + − . / : upper case only, so URLs typed in capitals pack tighter.
Byte01008 bits per byteAny data. Text is normally UTF-8; old readers assumed ISO-8859-1 unless an ECI header said otherwise.
Kanji100013 bits per characterShift JIS double-byte characters, packed into 13 bits each.

From car factories to restaurant menus

1994Denso WaveMasahiro Hara’s team designs QR codes to track car parts in Toyota factories.
1997AIM standardQR becomes an Automatic Identification and Manufacturers standard.
2000ISO/IEC 18004The first international standard for QR codes.
2002Camera phonesJapanese phones start shipping with QR readers built in.
2004Micro QRA small variant with one finder pattern for tiny labels.
2017Built into iOSiOS 11 reads QR codes in the standard Camera app; Android follows widely.
2020Contact tracingVenue check-ins and contactless menus put QR codes everywhere.
2024ISO/IEC 18004:2024The fourth edition of the standard.