Skip to content
UseQR
ESC

Jump to

MOVEOPEN50 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"
}