Skip to content
LookupOwl

Free QR code generator

Make a static QR code for a link, a line of text, an email, a phone number or a place, with no account, no expiry and no redirect that tracks scans.

Up to 2,953 bytes. The code holds exactly this: there is no redirect.

A static code: no account, no expiry and no redirect that tracks scansWith JavaScript on, the code is drawn on this page and what you type never leaves it. Without it, links and text are drawn by our server and not stored. A Wi-Fi code needs JavaScript so your password stays on your device. To build one by hand, put the text WIFI:T:WPA;S:name;P:password;; into a QR tool that runs on your own device.

What the code holds: text, url, wifi (the web page only: it needs a password, which is never sent to a server), email, tel, sms or geo.

More options

For email and SMS.

Wi-Fi codes are made in your browser, so this needs JavaScript.

wifi: WPA (covers WPA2 and WPA3 personal), WEP or nopass.

wifi: the network does not broadcast its name.

Higher error correction survives scratches and logos but makes the code denser.

Image size in pixels.

The blank border. 4 is the standard.

Foreground colour as hex, for example #000000.

Background colour as hex, for example #ffffff.

Why a static code never expires

A QR code is just a picture of some text. In a static code the picture holds your text itself, so it works for as long as someone can scan it. Nothing on our side has to stay switched on, and there is nothing to renew.

Most "free" generators make a dynamic code instead. The picture holds a short link to the maker's server, which then sends people on to your address. That lets them count scans and sell you a plan, and it also means your printed code stops working the day the trial ends or the company changes its mind. Below the code we show the exact text it holds, so you can check that there is no middleman.

How to make a code

  1. Pick what the code holdsA link opens a web page. Text shows a message. Email, phone number and SMS start a message or a call. A location opens a map. Wi-Fi lets guests join your network.
  2. Type or paste itThe code redraws as you type. A link should start with https:// so phones treat it as a web address. The page counts the bytes and shows how full the code is.
  3. Check it, then downloadScan it with a phone before you print it. Download a PNG for documents and screens, or an SVG for print, where it stays sharp at any size.

Error correction, size and colour

A QR code carries spare data so it can still be read when part of it is dirty, scratched or covered. You choose how much. Automatic picks the smallest code that fits your text and then the strongest level that does not make it any bigger.

LevelPart that can be damagedGood for
LAbout 7%Clean screens and short links
MAbout 15%Most printed codes
QAbout 25%Stickers, packaging and outdoor signs
HAbout 30%Codes that will get scuffed, or carry a logo

Higher levels survive more damage but make the code denser, so each square is smaller and harder to read at a distance. Keep the quiet zone, the blank border, at 4 modules, as the standard asks. Use a dark colour on a light background: phone cameras read that best, and the page warns you when your colours are too close or turned around.

How much a code can hold

The biggest code, version 40, is 177 by 177 modules. What fits depends on the kind of text and the error correction level. Plain text and links are stored as bytes. Digits alone and capital letters with a few symbols are packed tighter, and the generator uses the tighter form whenever your text allows it.

LevelBytes of textDigits only
L2,9537,089
M2,3315,596
Q1,6633,993
H1,2733,057

Shorter text makes a simpler code that scans faster and from further away. If you are putting a long address in a code, a short, clean address that you control works far better than a huge one.

Questions people ask

Do these codes expire?

No. The code holds your text itself, so it works as long as it can be scanned. There is no account, no trial and no server of ours that has to keep running for it to work.

Is what I type sent to you?

Not with JavaScript on: the code is drawn in your browser and nothing you type is sent to us or to analytics. Without JavaScript the page has to ask our server to draw a link or text code, which we do not store or log. Wi-Fi codes are never made on our server.

Will you count how often my code is scanned?

No, and we cannot. A static code goes straight from the phone to your address, so nobody in the middle sees a scan. If you want scan counts, add tracking to your own web page.

What is the difference between PNG and SVG?

A PNG is a picture made of pixels at the size you chose, good for documents and screens. An SVG is drawn with shapes, so it stays sharp at any size and suits print. Both hold the same code.

Why does my code look so dense?

A long text or a high error correction level needs more squares. Shorten the text, pick a lower level, or use a shorter link that you control. Capital letters and digits also pack tighter than mixed case.

Can I put a logo in the middle?

Not yet. If you add one yourself, use error correction level H and test the code on a few phones, because anything over the code covers data.

Can I use the codes in print and for business?

Yes. The code is your text in a standard format (ISO/IEC 18004), with no licence or branding of ours on it. QR Code is a registered trademark of Denso Wave.

Can an AI agent make a QR code with this?

Yes. The same tool is available through the REST API and the MCP server as qr_generate, which returns the SVG and the exact text. It refuses Wi-Fi, because a Wi-Fi password should never be sent to a server.

Use it from AI, the API or the command line

Every LookupOwl tool is also a free API and an MCP tool, with no key and no account. This one is qr_generate. Please be kind to the rate limits.

curl
curl "https://lookupowl.com/api/v1/tools/qr-generate?q=https%3A%2F%2Flookupowl.com%2F"
MCP
claude mcp add --transport http lookupowl https://lookupowl.com/mcp