{"openapi":"3.1.0","info":{"title":"QRMint by Harlo","version":"0.1.0","description":"QRMint generates static QR codes and 1-D barcodes (Code 128, EAN-13, UPC-A, EAN-8) as SVG, PNG or data URL. Use qr_payload_build for WiFi/vCard/mailto/tel/sms/geo/url strings, qr_inspect for version/ECC/capacity. Static codes only: no redirects, no dynamic/editable codes, no scan analytics. EAN/UPC output is format-valid (check digit) and is NOT GS1 registration. Scannability is not guaranteed (contrast, print size, quiet zone and reader all matter). Plans: Free $0/mo · 1,000 calls/mo; BASIC $5/mo · 25,000 calls/mo; PRO $15/mo · 250,000 calls/mo.","contact":{"name":"Harlo","email":"digitalpromohub.support@gmail.com"}},"servers":[{"url":"https://qrmint.mike-tusa.workers.dev"}],"components":{"securitySchemes":{"apiKey":{"type":"apiKey","in":"header","name":"x-api-key"},"bearer":{"type":"http","scheme":"bearer"}}},"paths":{"/v1/qr":{"post":{"operationId":"qr","summary":"Generate a static QR code as SVG (default, up to 2000 px), PNG base64 or data URL (up to 1024 px) from data or a payload object","description":"Generate a static QR code as SVG (default, up to 2000 px), PNG base64 or data URL (up to 1024 px) from data or a payload object. Bulk (/v1/qr/bulk, ≤50) is SVG-only, ≤256 bytes per item. Static codes only: no redirects, no dynamic/editable codes, no scan analytics. EAN/UPC output is format-valid (check digit) and is NOT GS1 registration. Scannability is not guaranteed (contrast, print size, quiet zone and reader all matter).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string"},"payload":{"type":"object"},"ecc":{"type":"string","enum":["L","M","Q","H"]},"format":{"type":"string","enum":["svg","png","dataurl"]},"size":{"type":"integer","minimum":64,"maximum":2000},"margin":{"type":"integer"},"fg":{"type":"string"},"bg":{"type":"string"}}}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid input"},"401":{"description":"Invalid API key"},"413":{"description":"Body too large"},"429":{"description":"Rate limited"}}}},"/v1/qr/bulk":{"post":{"operationId":"qr_bulk","summary":"qr/bulk endpoint.","description":"qr/bulk endpoint.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid input"},"401":{"description":"Invalid API key"},"413":{"description":"Body too large"},"429":{"description":"Rate limited"}}}},"/v1/qr/inspect":{"post":{"operationId":"qr_inspect","summary":"Return QR version, ECC, module count, capacity used % and quiet-zone/density warnings for data","description":"Return QR version, ECC, module count, capacity used % and quiet-zone/density warnings for data. No image.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string"},"payload":{"type":"object"},"ecc":{"type":"string","enum":["L","M","Q","H"]},"margin":{"type":"integer"}}}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid input"},"401":{"description":"Invalid API key"},"413":{"description":"Body too large"},"429":{"description":"Rate limited"}}}},"/v1/qr/payload":{"post":{"operationId":"qr_payload","summary":"Build and validate a QR payload string for type text/url/wifi/vcard/mailto/tel/sms/geo (e.g","description":"Build and validate a QR payload string for type text/url/wifi/vcard/mailto/tel/sms/geo (e.g. {\"type\":\"wifi\",\"ssid\":\"Cafe\",\"password\":\"...\"}). Returns the string only.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"payload":{"type":"object","properties":{"type":{"type":"string","enum":["text","url","wifi","vcard","mailto","tel","sms","geo"]}},"required":["type"]}},"required":["payload"]}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid input"},"401":{"description":"Invalid API key"},"413":{"description":"Body too large"},"429":{"description":"Rate limited"}}}},"/v1/barcode":{"post":{"operationId":"barcode","summary":"Code 128, EAN-13, UPC-A or EAN-8 as SVG/PNG/data URL","description":"Code 128, EAN-13, UPC-A or EAN-8 as SVG/PNG/data URL. EAN/UPC: pass digits without check digit to have it added, or with it to verify. Static codes only: no redirects, no dynamic/editable codes, no scan analytics. EAN/UPC output is format-valid (check digit) and is NOT GS1 registration. Scannability is not guaranteed (contrast, print size, quiet zone and reader all matter).","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"symbology":{"type":"string","enum":["code128","ean13","upca","ean8"]},"data":{"type":"string"},"height":{"type":"integer"},"format":{"type":"string","enum":["svg","png","dataurl"]},"size":{"type":"integer","minimum":64,"maximum":2000},"margin":{"type":"integer"},"fg":{"type":"string"},"bg":{"type":"string"}},"required":["symbology","data"]}}}},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid input"},"401":{"description":"Invalid API key"},"413":{"description":"Body too large"},"429":{"description":"Rate limited"}}}},"/v1/formats":{"get":{"operationId":"formats","summary":"formats endpoint.","description":"formats endpoint.","responses":{"200":{"description":"OK"},"400":{"description":"Invalid input"},"401":{"description":"Invalid API key"},"413":{"description":"Body too large"},"429":{"description":"Rate limited"}}}}}}