{
  "slug": "qr",
  "title": "qr code generator",
  "description": "Text or URL → QR code as crisp SVG, with download. Decodes images too, where the browser can.",
  "category": "generate",
  "status": "live",
  "url": "https://aaronchartier.com/tools/qr",
  "keywords": [
    "qr",
    "qr code",
    "barcode",
    "svg",
    "generator",
    "decode",
    "scan"
  ],
  "samples": [
    {
      "label": "encode a url",
      "query": "text=https%3A%2F%2Fexample.com"
    },
    {
      "label": "high correction",
      "query": "text=hello%20world&ecc=H"
    }
  ],
  "privacy": "all computation is client-side; no input is transmitted",
  "pageApi": "window.__tools[\"qr\"] — run(input), describe(); output in #tool-output",
  "params": {
    "text": "text or URL to encode, up to 2953 bytes (`#text=` pre-fills and auto-runs)",
    "ecc": "error-correction level 'L' | 'M' | 'Q' | 'H' (default M; `#ecc=`)",
    "border": "quiet-zone width in modules, 0–10 (default 2; `#border=`)"
  },
  "returns": "{ ok, svg? (self-contained SVG string), size? (modules per side incl. border), version? (1–40), ecc, error? } — decoding is page-UI only (native BarcodeDetector, feature-detected)",
  "example": {
    "run": {
      "text": "https://example.com",
      "ecc": "M"
    }
  }
}