{"openapi":"3.1.0","info":{"title":"QRForge API","version":"1.0.0","description":"Generate QR codes for URLs, text, WiFi, email, SMS, phone, vCard and geo. Free GET returns SVG/PNG/JSON; paid x402 POST adds batch and high-res."},"servers":[{"url":"https://qr.wrapper-agency.com"}],"paths":{"/api/v1/qr":{"get":{"summary":"Generate a QR code (free)","parameters":[{"name":"type","in":"query","required":true,"schema":{"type":"string","enum":["url","text","wifi","email","phone","sms","vcard","geo"],"example":"url"}},{"name":"data","in":"query","required":false,"schema":{"type":"string","example":"https://example.com"},"description":"for type=url|text"},{"name":"ssid","in":"query","required":false,"schema":{"type":"string"},"description":"for type=wifi"},{"name":"password","in":"query","required":false,"schema":{"type":"string"},"description":"for type=wifi"},{"name":"encryption","in":"query","required":false,"schema":{"type":"string","enum":["WPA","WEP","nopass"]},"description":"for type=wifi"},{"name":"email","in":"query","required":false,"schema":{"type":"string"},"description":"for type=email|vcard"},{"name":"phone","in":"query","required":false,"schema":{"type":"string"},"description":"for type=phone|sms|vcard"},{"name":"lat","in":"query","required":false,"schema":{"type":"number"},"description":"for type=geo"},{"name":"lng","in":"query","required":false,"schema":{"type":"number"},"description":"for type=geo"},{"name":"format","in":"query","required":false,"schema":{"type":"string","enum":["svg","png","json"],"default":"svg"}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","example":512}},{"name":"ecLevel","in":"query","required":false,"schema":{"type":"string","enum":["L","M","Q","H"],"default":"M"}}],"responses":{"200":{"description":"QR image (svg/png) or JSON { type, payload, svg, dataURL }","content":{"image/svg+xml":{},"image/png":{},"application/json":{"example":{"type":"url","payload":"https://example.com","svg":"<svg ...>","dataURL":"data:image/png;base64,..."}}}},"400":{"description":"Invalid type or missing required field"}}}},"/api/v1/pro/qr":{"post":{"summary":"Generate QR codes — batch & high-res (paid, x402)","description":"Per-call USDC on Base via x402. Body is a single { type, ...fields } object or { items: [...] } for batch. Optional format (svg|png), size, dark, light, ecLevel.","requestBody":{"content":{"application/json":{"example":{"items":[{"type":"url","data":"https://example.com"},{"type":"wifi","ssid":"Cafe","password":"x","encryption":"WPA"}],"format":"png","size":2048}}}},"responses":{"200":{"description":"Rendered QR(s) as SVG markup or PNG data-URL(s)"},"402":{"description":"Payment required (x402)"}}}}}}