One GET request. No auth, no signup. Drop the URL into an <img> tag from any origin.
GET https://www.qrth.is/api/generate
| Param | Default | Description |
|---|---|---|
| urlreq | — | The URL to encode. https:// is prepended if missing. |
| size | 512 | Image size in px (square). Min 64, max 2048. |
| format | png | Output format: png or svg. |
| color | 000000 | Foreground hex color, no #. |
| bg | transparent | Background hex color (no #) or 'transparent'. |
| margin | 2 | Quiet zone in module units. |
https://www.qrth.is/api/generate?url=example.com
https://www.qrth.is/api/generate?url=example.com&color=4CAF50&bg=FFFFFF
https://www.qrth.is/api/generate?url=example.com&format=svg&size=1024
Returns the image bytes directly with image/png or image/svg+xml content type. Cached for 24 hours. CORS open to all origins.
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