Free QR Code Generator
Make a QR code for a link, Wi-Fi network, contact card, email or plain text. Free, no sign-up, no watermark. Choose a content type in the generator, fill in the fields, and download a PNG or SVG.
Symbology
Any text or URL. Longer payloads grow the symbol automatically.
QR Code
Not rendered.
/api/barcode?type=qr&data=https%3A%2F%2Farkalabel.io&module=7&quietx=20&quiety=20&rotation=0&dpmm=8&ecc=Q
/barcodes?type=qr&data=https%3A%2F%2Farkalabel.io&module=7&quietx=20&quiety=20&rotation=0&dpmm=8&ecc=Q
^XA ^CI28 ^FO20,20 ^BQN,2,7,Q ^FH_^FDQA,https://arkalabel.io^FS ^XZ
QR Code fact sheet
- Created in
- 1994
- Created by
- A team led by Masahiro Hara
- Created at
- Denso Wave (Japan)
- Barcode type
- 2D matrix
- Data allowed
- Numeric, alphanumeric, 8-bit binary and kanji modes
- ECI supported
- Yes
- GS1 data
- Yes, as GS1 QR and GS1 Digital Link
- Error correction
- Reed-Solomon at four levels: L, M, Q and H
- Specified by
- ISO/IEC 18004
- Popularity
- Very high
What you can put in a QR code
Each content type builds the text a phone expects, so the camera offers the right action: open a page, join a network, save a contact.
- Plain text
- Any text, encoded exactly as typed.
- URL
- A web address. https:// is added when the scheme is missing.
- Contact (vCard)
- A contact card most phone cameras offer to save.
- Contact (MECARD)
- The compact contact format older readers understand.
- Wi-Fi network
- Scanning offers to join the network.
- Calendar event
- A single event a reader can add to a calendar.
- Location
- A map pin.
- Opens a pre-addressed message.
- SMS
- Opens a pre-written text message.
- Phone number
- Dials the number.
- SEPA payment (EPC)
- A euro credit transfer request, as European banking apps read it.
- Swiss QR-bill
- The payment slip payload used on Swiss invoices.
- ZATCA e-invoice
- The Saudi e-invoicing seal: a TLV sequence in base64.
- GS1 Digital Link
- A GTIN as a resolvable URL. Pairs with the GS1 data mode.
Quiet zone and error correction
The quiet zone is the blank margin around the code. Scanners use it to find where the code begins, so keep at least four modules of empty space on every side, and do not let text or artwork run into it.
Error correction lets a scanner read a code that is partly damaged. QR Code has four levels: L recovers about 7% of the code, M about 15%, Q about 25% and H about 30%. More correction means more modules for the same data, so the code grows denser.
Making codes that scan first time
- Use dark modules on a light background. Inverted or low-contrast colours fail on many phones.
- Print at least 2 cm (about 0.8 in) across for scanning at arm's length; larger for posters read from a distance.
- Keep the payload short. A short URL makes a simpler code that scans faster and from further away.
- Test the printed code with more than one phone before you print a run.
- Download SVG when the code will be scaled, so it stays sharp at any size.
Other barcodes and the API
Need a Code 128, EAN, UPC, Data Matrix or PDF417 instead? The barcode generator makes all 38 types. To create QR codes from your own software, see the barcode API documentation.
Frequently asked questions
Is this QR code generator free?
Yes. It is free to use in your browser without an account, there is no watermark, and the codes may be used commercially. To generate QR codes from your own software, create a free account for an API key.
Do the QR codes expire?
No. The code holds your data directly, not a link through our servers, so it keeps working for as long as whatever it points to does.
Which error-correction level should I choose?
Q, the default, suits most printed codes. Choose H if the code may be scratched, smudged or partly covered, and L or M to keep a long payload smaller. Higher levels make a denser code for the same data.
How do I make a Wi-Fi QR code?
Choose the Wi-Fi content type, enter the network name, password and security type, and download the PNG. Most phone cameras offer to join the network when they scan it.
Is my data stored?
No. What you type is sent to our engine to draw the code, held in memory for that request, and not stored.