URL API
Every option of the generator can be driven by the page URL. Opening a link with a data (or text) parameter generates the code immediately, applies the style and starts the animation. Use Copy shareable link in the app to get a link for any design.
Examples
- /?data=https%3A%2F%2Fexample.com
- /?text=Hello%20World&fg=%23ff0000&bg=%23ffffff&size=400
- /generate/?data=WIFI:T:WPA;S:MyNetwork;P:password123;;&ec=H&anim=pulse
- /?data=https%3A%2F%2Fgithub.com&module=dots&eye=circle&gradient=linear-45-800020-0a1f44&anim=wave
- /?data=Hello&frame=label&frameText=SCAN%20ME&frameColor=800020&module=vbars
- /?data=https%3A%2F%2Fexample.com&anim=colorCycle&embed=1
Parameters
| Parameter | Description | Example |
|---|---|---|
| data / text | Content to encode (required to generate). URL-encode it. | https%3A%2F%2Fexample.com |
| ec | Error correction: L · M · Q · H | H |
| size | Export size in px (128–2048) | 512 |
| margin | Quiet zone in modules (0–10) | 4 |
| fg / bg | Foreground / background colour (hex, # optional). bg also accepts transparent | %23ff5500 |
| gradient | linear-<angle>-<from>-<to> or radial-<from>-<to> | linear-45-ff0-f0f |
| module | square · rounded · dots · diamond · star · vbars · hbars | dots |
| eye | square · rounded · circle · leaf | rounded |
| eyeColor | Colour of the three corner eyes | 800020 |
| logo | http(s) image URL — the server must send CORS headers | https://…/logo.png |
| logoSize | Logo width as a fraction of the code (0.08–0.3) | 0.22 |
| frame | none · square · rounded · label | label |
| frameText / frameColor | Label text (max 40 chars) and frame colour | SCAN%20ME |
| anim | none · pulse · wave · fade · rotate · colorCycle · scan · reveal · particle | pulse |
| duration | Loop duration in ms (300–10000) | 2000 |
| fps | Frames per second (5–60) | 15 |
| loop | GIF loop count, 0 = forever | 0 |
| format | png · svg · jpeg · gif · webm · mp4 — preselected download format | gif |
| c / config | Full config as lz-string (compressToEncodedURIComponent) or base64url JSON | N4Ig… |
| embed | 1 = show only the code (for iframes) | 1 |
Parameter names are case-insensitive. Invalid values are ignored and fall back to defaults. Simple parameters override values inside c, so you can tweak a shared link by appending e.g. &anim=scan.
Safety & limits
- Content is limited to 2048 characters (and to what fits in a QR code at the chosen error-correction level).
- Content from a link starting with
javascript:,vbscript:,data:orfile:is blocked. - Logos must be http(s) URLs (or images uploaded in the app). Colours must be hex values.
- Everything is rendered locally in the browser; no data is sent to any server.