Printing a link on physical material
Posters, packaging and business cards. Keep the URL short so the matrix stays coarse enough to scan from the intended distance.
Generates QR codes from any text or URL, fully in your browser.
14 chars · Level M Error Correction
Generates QR codes from any text or URL, fully in your browser.
https://yas.sh/launch
A QR code image you can download as PNG or SVG
Generated locally with the qrcode library.
Scanning the QR opens the encoded content.
Your input is processed entirely in your browser and never sent to a YAS server.
curl -X POST "https://yas.sh/api/v1/tools/qr-generator" \
-H "Content-Type: application/json" \
-d '{"input":"https://yas.sh","size":256}'const res = await fetch("https://yas.sh/api/v1/tools/qr-generator", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"input": "https://yas.sh",
"size": 256
}),
});
const data = await res.json();import requests
r = requests.post("https://yas.sh/api/v1/tools/qr-generator", json={"input":"https://yas.sh","size":256})
data = r.json()| Field | Type | Required | Description |
|---|---|---|---|
| input | string | Yes | http/https URL (≤ 2048 chars) |
| size | integer | No (default 512) | 128–1024 px |
{ "slug": "qr-generator", "result": "data:image/png;base64,..." }Render a QR code for an http/https URL as a PNG data-URL.
400 VALIDATION_ERROR — invalid input or unsupported option.413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).A QR code encodes data into a matrix of modules with Reed–Solomon error correction, which is why a partly obscured or printed-and-scuffed code still scans. Four correction levels trade capacity against robustness: L recovers about 7% of codewords, M 15%, Q 25% and H 30%. Higher correction means more modules for the same payload, producing a denser code that needs to be printed larger.
Capacity depends on both the version (matrix size, 21×21 up to 177×177) and the encoding mode. Numeric data is packed most efficiently, then alphanumeric — which uses a restricted 45-character set including uppercase letters only — then byte mode for everything else. A URL containing lowercase letters therefore falls into byte mode and consumes noticeably more capacity than the same URL uppercased.
Posters, packaging and business cards. Keep the URL short so the matrix stays coarse enough to scan from the intended distance.
The WIFI: schema lets a phone join a network without typing a passphrase — useful for guest networks and far less error-prone than reading it aloud.
A vCard payload saves a contact in one scan, though it is large and produces a dense code that needs generous print size.
Combine with the UTM Builder so scans are attributable, and use a short link so the matrix stays scannable.
What this tool deliberately does not do, and where it will disagree with other implementations.