Free dynamic QR codes you can edit anytime.

Static QR codes free forever. Editable destinations without reprinting.

https://
Options
Preview
Live preview

Generate a QR above to see it preview here.

Logo · optional
Size
Foreground
#1D1D1B
Background
#FFFFFF
0
QR codes generated

Dynamic QR codes.
Edit the destination forever.

Print it on a menu, a flyer, a business card — then change where it points to without reprinting. First one's free.

Static QR
URL is baked into the image. Change the URL → reprint.
Dynamic QR
Image stays the same. Change the destination from your dashboard.

Or use the API

One GET request. No auth, no signup. Drop the URL into an <img> tag from any origin.

Endpoint

GET https://www.qrth.is/api/generate

Parameters

ParamDefaultDescription
urlreqThe URL to encode. https:// is prepended if missing.
size512Image size in px (square). Min 64, max 2048.
formatpngOutput format: png or svg.
color000000Foreground hex color, no #.
bgtransparentBackground hex color (no #) or 'transparent'.
margin2Quiet zone in module units.

Examples

Basic
https://www.qrth.is/api/generate?url=example.com
Custom colors
https://www.qrth.is/api/generate?url=example.com&color=4CAF50&bg=FFFFFF
SVG output, 1024px
https://www.qrth.is/api/generate?url=example.com&format=svg&size=1024

Response

Returns the image bytes directly with image/png or image/svg+xml content type. Cached for 24 hours. CORS open to all origins.

Rate limits

100 requests per day per IP on the free tier. The 101st request returns 429. Every response includes:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715000000

Errors

400Missing or invalid URL, color, or format
429Rate limit exceeded
500Generation failed