Skip to content
UseQR
ESC

↑↓ MOVE↵ OPEN48 PLACES

GET

/api/v1/qr

Generate a QR code

GET /api/v1/qr turns any string into a QR code image with no key and no signup. Pass the payload as data (text, content, url and q also work), and optionally size, format, style, colours and error correction. Responses are deterministic and cache forever.

View as MarkdownPaste this page into any AI assistant — it is plain, portable Markdown.

Try it

GET/api/v1/qr?

Runs against this deployment. No key, no signup, nothing recorded.

Parameters

NameTypeDetail
dataREQUIREDstringWhat the code should contain. Anything up to 2,953 bytes.also accepts text, content, url, q, chl
sizeinteger · 512Pixel width of the rendered image. Ignored for svg and json.64–4096also accepts width, s, chs
formatenum · pngWhat comes back. svg-tiny is SVG Tiny 1.2, for Illustrator and cutters.png · svg · svg-tiny · json · base64also accepts type, output, f
styleenum · squareModule shape.square · rounded · dot · diamond · star · vertical-bars · horizontal-bars · organicalso accepts dots, modulestyle
eyeenumFinder-pattern shape.square · rounded · circle · leaf · diamondalso accepts eyes, eyestyle
colorstring · 000000Foreground, as a 3- or 6-digit hex value with or without the #.also accepts fg, dark, foreground
bgstring · ffffffBackground. `transparent` is accepted.also accepts light, background, bgcolor
ecenumError correction. H survives the most damage but makes a denser code.L · M · Q · Halso accepts ecc, level, errorcorrection
margininteger · 4Quiet zone in modules. The spec asks for 4.0–10also accepts quiet, quietzone, qz
verifyboolean · 0Run the full decode round-trip before responding and report it in x-qr-verified. Costs a rasterize and a decode, so it is off by default.1 · 0also accepts check

When you get it wrong

Errors are RFC 9457 problem+json with one addition: a fix field containing a corrected call you can run as-is.

{
  "type": "https://useqr.app/errors",
  "title": "Invalid parameter",
  "status": 400,
  "detail": "\"pink\" is not a color we understand",
  "fix": "use a hex color like color=0f172a (with or without #), e.g. ?data=hello&color=0f172a"
}