Developers

QR Studio API

Generate styled QR code PNGs straight from your code — no account, no API key. One public endpoint takes JSON and returns an image.

Generate a QR code

POST /api/qr/guest/export?size=512 — returns an image/png. size is the pixel width (max 1024).

cURL

curl -X POST "https://qrcode.warlet.fr/api/qr/guest/export?size=512" \
  -H "Content-Type: application/json" \
  -o qr.png \
  -d '{
    "name": "My QR",
    "qr_type": "url",
    "data": "https://example.com",
    "style": {
      "fg_color": "#0d0d0f",
      "bg_color": "#ffffff",
      "dot_shape": "rounded",
      "corner_roundness": 0.5,
      "ec_level": "M"
    }
  }'

JavaScript (fetch)

const res = await fetch("/api/qr/guest/export?size=512", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    name: "My QR",
    qr_type: "url",
    data: "https://example.com",
    style: { fg_color: "#0d0d0f", bg_color: "#ffffff", dot_shape: "rounded" }
  })
})
const blob = await res.blob() // image/png

Request body

Top-level fields: name, qr_type (url, text, email, phone, sms, whatsapp, geo, wifi, contact, app), data, and a style object:

fg_colorstringData module color, e.g. "#0d0d0f".
eye_colorstring?Finder (corner) ring color. Defaults to fg_color.
eye_center_colorstring?Finder center color. Defaults to eye_color.
bg_colorstringBackground color. Ignored if transparent_bg is true.
transparent_bgboolExport with a transparent background.
dot_shapestringsquare | rounded | dot | diamond | star.
corner_roundnessfloat0–1, rounds square modules.
module_marginfloatSpacing between modules (0–4).
ec_levelstringError correction: L | M | Q | H.
logo_urlstring?Public image URL to place in the center.
logo_size_pctintLogo size as % of the code (10–35).

Need saved codes, tracked redirects and scan analytics? Those live behind the authenticated /api/qr routes — create a free account.

Build with QR Studio

Try the visual editor, then automate it with the API.