{"openapi":"3.1.0","info":{"title":"QR Code API","version":"1.0.0","description":"Generate QR codes on demand as a base64 PNG, an SVG, or a raw embeddable image. Customise size, quiet-zone margin, error-correction level and foreground/background colors. Encode URLs, text, Wi-Fi, vCards and more.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/qr-api","description":"oanor gateway"}],"tags":[{"name":"QR"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/generate":{"get":{"operationId":"get_v1_generate","tags":["QR"],"summary":"QR as base64 PNG / SVG (JSON)","description":"","parameters":[{"name":"data","in":"query","required":true,"description":"Text/URL to encode (max 2000 chars)","schema":{"type":"string"},"example":"https://oanor.com"},{"name":"size","in":"query","required":false,"description":"PNG width in px (50-1000)","schema":{"type":"integer"},"example":"400"},{"name":"margin","in":"query","required":false,"description":"Quiet-zone modules (0-20)","schema":{"type":"integer"},"example":"4"},{"name":"ec","in":"query","required":false,"description":"Error correction L|M|Q|H","schema":{"type":"string"},"example":"M"},{"name":"color","in":"query","required":false,"description":"Foreground hex","schema":{"type":"string"},"example":"000000"},{"name":"bgcolor","in":"query","required":false,"description":"Background hex","schema":{"type":"string"},"example":"ffffff"},{"name":"format","in":"query","required":false,"description":"png or svg","schema":{"type":"string"},"example":"png"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"data":"https://oanor.com","size":400,"image":"data:image/png;base64,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","format":"png","margin":4,"ec_level":"M"},"meta":{"timestamp":"2026-05-29T22:51:48.757Z","request_id":"8ca5f89f-a893-428a-b183-8d6d76157027"},"status":"ok","message":"QR code generated successfully","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/image":{"get":{"operationId":"get_v1_image","tags":["QR"],"summary":"QR as a raw PNG image","description":"","parameters":[{"name":"data","in":"query","required":true,"description":"Text/URL to encode (max 2000 chars)","schema":{"type":"string"},"example":"https://oanor.com"},{"name":"size","in":"query","required":false,"description":"PNG width in px (50-1000)","schema":{"type":"integer"},"example":"400"},{"name":"margin","in":"query","required":false,"description":"Quiet-zone modules (0-20)","schema":{"type":"integer"},"example":"4"},{"name":"ec","in":"query","required":false,"description":"Error correction L|M|Q|H","schema":{"type":"string"},"example":"M"},{"name":"color","in":"query","required":false,"description":"Foreground hex","schema":{"type":"string"},"example":"000000"},{"name":"bgcolor","in":"query","required":false,"description":"Background hex","schema":{"type":"string"},"example":"ffffff"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK"},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":2000,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":600,"monthly_call_quota":75000,"rps_limit":10,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1800,"monthly_call_quota":400000,"rps_limit":35,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":4400,"monthly_call_quota":2500000,"rps_limit":120,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/qr-api"}