{"openapi":"3.1.0","info":{"title":"QR Code Reader API","version":"1.0.0","description":"Read (decode) a QR code from an image — the inverse of a QR generator. Pass an image URL (we fetch it) or a base64 image (a data-URI or raw base64) and get back the decoded text or URL, the QR version and the corner coordinates of the code within the image. PNG, JPEG, BMP, TIFF and GIF are supported (up to 10 MB); large images are downscaled automatically so decoding stays fast. Decoding runs locally (no third-party scan service) and nothing is stored. Every call is live. 2 endpoints. Built for scanning uploaded QR codes, processing screenshots and documents, ticket and coupon validation, and back-end automation. No upstream key.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/qrdecode-api","description":"oanor gateway"}],"tags":[{"name":"QR"},{"name":"Meta"}],"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/decode":{"get":{"operationId":"get_v1_decode","tags":["QR"],"summary":"Decode a QR code from an image","description":"","parameters":[{"name":"image","in":"query","required":true,"description":"Base64 image (data-URI or raw) — or use url","schema":{"type":"string"},"example":"iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AQMAAAADqqSRAAAABlBMVEX///8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAxElEQVQ4jbWUTQrEIAyFH7hw6RE8ihcrWOjFPIpHcNlFIZOfDnS20yQLyVfBV/NMQBJAp2HZWz4BtExXGZr5c6XVVM+yEM60F09GjWOtz0wLz3r5sbqa51aefjuyRd3xE/8zn7ka8f83FfHniTLy7EQnuEgB3G8pzmi85rMeiz8mOb9Lf3ozuvTPJpdIAayh9+Hla7Ij3+8x3U31mq1r6sUivBHAOl/EZNQjkFlM6+PEkPcYwrB5pT4sfzZ/ZZ5n6y9f/gBI+a9yCkn8CAAAAABJRU5ErkJggg=="},{"name":"url","in":"query","required":false,"description":"Image URL to fetch instead of base64","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"data":"OANOR","bytes":5,"found":true,"image":{"width":120,"height":120},"format":"QR_CODE","version":1,"location":{"topLeft":{"x":-0.4999999999999951,"y":-0.4999999999999951},"topRight":{"x":119.5,"y":-0.4999999999999984},"bottomLeft":{"x":-0.4999999999999984,"y":119.5},"bottomRight":{"x":119.50000000000003,"y":119.50000000000003}}},"meta":{"timestamp":"2026-06-02T16:52:04.749Z","request_id":"2340e116-8547-432d-a5a8-e64b994bd2db"},"status":"ok","message":"Decode a QR code from an image","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/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream; this gateway requires x-api-key","name":"QR Code Reader API","note":"Decode a QR code from an image. Pass ?url= an image URL, or ?image= a base64 image (data-URI or raw). Returns the decoded text, the QR version and the corner locations. Supports PNG, JPEG, BMP, TIFF and GIF (max 10 MB). The inverse of qr-api (which generates QR codes). Live, nothing stored.","source":"Local decode (Jimp + jsQR) — no third-party decode service, no key","endpoints":2},"meta":{"timestamp":"2026-06-02T16:52:04.859Z","request_id":"24c60e38-ce07-4457-afad-9a5630a5bf09"},"status":"ok","message":"Meta","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"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1750,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":900,"monthly_call_quota":38000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2950,"monthly_call_quota":210000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6500,"monthly_call_quota":1040000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/qrdecode-api"}