Free · PNG

QR codes, from a URL.

Put /qr?text= and any link or text into an img tag and get back a scannable PNG, up to 4000 px square. Every code uses the highest error correction level, so it still scans with a scuff, a fold or a sticker over one corner. No key, no account.

imgsrc.pub · QR code
Link or text
Start from
Size, px

The preview is the real response from that URL, exactly what your page would load.

https://imgsrc.pub/qr?text=https%3A%2F%2Fimgsrc.pub&size=300
Live response from imgsrc.pub
200 OKimage/pngloading…
Use cases

A code for every link, without a library.

The code is generated from the URL, so any template that can print a link can print a QR code for it.

01

Tickets, receipts and invoices

Build the URL in your email or PDF template, such as /qr?text=https://example.com/t/8F3K2, and every ticket gets its own code. There's no QR package to add to your stack and no images to store.

02

Menus, posters and packaging

Ask for a big PNG, size=2000 or more, so the code stays crisp in print. High error correction means a crease, a coffee ring or a logo sticker over part of it won't stop phones reading it.

03

Wi-Fi for guests

Encode WIFI:T:WPA;S:Studio;P:your-password;; and guests join by pointing their camera at the sign. The camera apps on current iPhones and Android phones read this format without an extra app.

04

Slides, READMEs and test builds

Put a code on a slide so the room can open your link, or in a README so testers can open a staging build on their phone straight from a desktop screen.

What you get

A static code, nothing in between.

The PNG is black on white with a one-module quiet zone, square at the size you ask for. It's generated at error correction level H, the highest of the four QR levels, which can recover roughly 30% of a damaged code. The smallest QR version that fits your text is chosen automatically, so short text gives bigger modules that scan from further away.

These are static codes: your text is encoded in the image itself. Scanning opens your link directly, without a redirect through imgsrc.pub, so the code never expires and nobody counts the scans. Each image is generated once and sent with a one-year immutable cache header.

<img
  src="https://imgsrc.pub/qr?size=240&text=https%3A%2F%2Fexample.com"
  width="240" height="240" alt="QR code for example.com">
Parameters

Two parameters. That's it.

Put them in any order. URL-encode the text so its own ? and & stay inside the code.

ParameterValuesDefaultWhat it does
textURL-encoded stringrequiredWhat the code contains: a link, plain text, or a structured payload such as WIFI:, mailto: or tel:. Leaving it out returns a 400.
size1–4000300Width and height of the PNG in pixels.
Examples

Point your camera at any of these.

Each code below is the live response to the URL under it. The long link shows how more text makes a denser pattern.

QR code for https://imgsrc.pub
Link
https://imgsrc.pub
/qr?text=https%3A%2F%2Fimgsrc.pub&size=300
QR code for WIFI:T:WPA;S:Studio;P:correct-horse;;
Wi-Fi
WIFI:T:WPA;S:Studio;P:correct-horse;;
/qr?text=WIFI%3AT%3AWPA%3BS%3AStudio%3BP%3Acorrect-horse%3B%3B&size=300
QR code for mailto:hello@imgsrc.pub?subject=Hello
Email
mailto:[email protected]?subject=Hello
/qr?text=mailto%3Ahello%40imgsrc.pub%3Fsubject%3DHello&size=300
QR code for https://example.com/events/2026/autumn-meetup/tickets?ref=poster&utm_source=print
Long link
https://example.com/events/2026/autumn-meetup/tickets?ref=poster&utm_source=print
/qr?text=https%3A%2F%2Fexample.com%2Fevents%2F2026%2Fautumn-meetup%2Ftickets%3Fref%3Dposter%26utm_source%3Dprint&size=300
FAQ

QR codes, answered.

Is the QR code generator free?+

Yes. There is no account, no API key and no watermark, and nothing you need to renew.

Do the codes expire or track scans?+

No. They're static codes: the text you pass is stored in the pattern itself. A phone that scans one goes straight to your link, so a saved code keeps working even if imgsrc.pub is offline.

How do I encode a link that has its own query string?+

URL-encode it first, for example with encodeURIComponent in JavaScript. Otherwise an & inside your link is read as the start of the next parameter, and the code only contains the part before it.

What size should I ask for?+

For screens, 200 to 300 px is plenty. For print, keep the code at least 2 cm (about 0.8 in) across and request enough pixels for your printer: a 10 cm code at 300 dpi needs size=1200.

How much text fits in one code?+

At error correction level H, a code holds up to about 1,200 characters of ordinary text. The more you put in, the denser and harder to scan it gets, so keep links short where you can.

Can I change the colours or add a logo?+

No. Codes are always black on white, which is also the combination every scanner reads most reliably. If you print one on a busy background, leave a margin of plain white around it.

More tools

The rest of the toolbox.

Five more free tools, and three AI tools for when a placeholder won't do.

Every link deserves
a code.

Type the link, copy the URL, put it in an img tag.

4000 px
Largest size
H
Error correction
0
API keys