QR Code Generator
Turn any link or text into a downloadable QR code — static, untracked, free and watermark-free.
How it works
- Enter content. Type the link or text you want the QR code to contain.
- Choose options. Pick a size and an error-correction level (higher survives more damage).
- Download PNG. The QR code appears instantly — download it as a PNG.
About this tool
Create a QR code for a URL, a Wi-Fi login, a phone number or any text. Choose the size and the error-correction level — higher correction means the code still scans even if part of it is dirty or covered — and download a clean PNG. The codes are static and contain only the data you type, so there's no redirect, no tracking and no expiry. No watermark, no signup, and nothing about your code is stored after the page renders it.
What people use it for
- Put a link to your site on a flyer, card or poster
- Share a Wi-Fi password guests can scan
- Add a menu or booking link to a table tent
- Link a product to a review or instructions page
Developer API
Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.
https://best.free/api/tools/qr-code-generator/
| Parameter | Example | Required | Notes |
|---|---|---|---|
text |
https://best.free |
Yes | URL or text to encode (≤2000 chars). |
size |
10 |
No | Module pixel size 4–20. |
ec |
M |
No | Error correction L/M/Q/H. |
curl -X POST https://best.free/api/tools/qr-code-generator/ \
-H 'Content-Type: application/json' \
-d '{"text": "https://best.free", "size": 10, "ec": "M"}'
import requests
r = requests.post(
"https://best.free/api/tools/qr-code-generator/",
json={"text": "https://best.free", "size": 10, "ec": "M"},
)
print(r.json())
const r = await fetch("https://best.free/api/tools/qr-code-generator/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ text: "https://best.free", size: 10, ec: "M" }),
});
const data = await r.json();
console.log(data);
Response: JSON with a base64 PNG data URI in "image".
{"ok": true, "image": "data:image/png;base64,iVBORw0KG..."}