Decode a QR code from an image
API · /qrdecode-api
QR Code Reader API
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.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 98 ms
- Server probes · 24h
- Subscribers
- 4,810
- active
- Total calls
- 28
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 1,750 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 1,750 calls/month
- 2 req/sec
- URL + base64 input
- No credit card
Starter
€9.00 /month
- 38,000 calls / month
- 8 requests / second
- Hard cap (429 above quota, no overage)
- 38k calls/month
- 8 req/sec
- Up to 10 MB images
- Email support
Pro
€29.50 /month
- 210,000 calls / month
- 20 requests / second
- Hard cap (429 above quota, no overage)
- 210k calls/month
- 20 req/sec
- Document / screenshot scanning
- Priority support
Mega
€65.00 /month
- 1,040,000 calls / month
- 50 requests / second
- Hard cap (429 above quota, no overage)
- 1.04M calls/month
- 50 req/sec
- Platform scale
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Base45 API
Encode and decode Base45 (RFC 9285) — the compact binary-to-text encoding designed to pack densely into the alphanumeric mode of QR codes, best known as the carrier for the EU Digital COVID Certificate. The encode endpoint turns text (UTF-8) or raw bytes given as hex into a Base45 string; the decode endpoint turns a Base45 string back into bytes, returned as hex and — when the bytes are valid UTF-8 — as text. It uses the official 45-character alphabet (0-9, A-Z and a handful of symbols), packs two bytes into three characters (or one byte into two), and validates length and value ranges strictly so malformed input is rejected rather than silently mangled. Everything is computed locally and deterministically, so it is instant and private. Ideal for QR-code payloads, digital health and travel certificates, alphanumeric-mode encoders, and any binary data that must survive an uppercase-only channel. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 3 endpoints. This is Base45 specifically; for base64, base32, hex, URL or HTML entity encoding use a general encoding API.
api.oanor.com/base45-api
vCard API
Generate and parse vCard (.vcf) contact cards. Build a standards-compliant vCard 3.0 from simple fields — name (or first/last), organisation, job title, one or more phone numbers and emails, websites, a postal address, birthday, note and a photo URL — ready to download as a .vcf or embed in a contact QR code (pair it with the QR API for "scan to save contact"). Or go the other way: parse any vCard string back into clean structured fields. Pure local processing — no key, no third-party service, nothing stored. Live. 3 endpoints. Built for digital business cards, contact QR codes, address-book import/export, CRM integrations and email-signature tools.
api.oanor.com/vcard-api
QR Code with Logo API
Generate branded QR codes with a centre logo overlay, custom foreground and background colors, chosen size and error-correction level, as PNG or SVG. When a logo is supplied the error-correction level is raised automatically so the code stays scannable, and the logo is placed on a rounded white plate in the centre. Includes one-call helpers that build the correct payload for you: a Wi-Fi-join QR (SSID, password, encryption, hidden), a vCard contact QR (name, phone, email, organisation, title, URL, address) and a batch endpoint that returns up to 100 QR codes in a single request. Supply a logo by public URL, base64 or a raw binary body; receive results as base64 PNG/SVG JSON or, with raw=1, the raw image bytes. Pure server-side rendering (qrcode + sharp), no third-party upstream. Ideal for marketing and packaging, business cards and events, restaurant menus, Wi-Fi sharing and app onboarding.
api.oanor.com/qrlogo-api
QR Code API
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.
api.oanor.com/qr-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for QR Code Reader API?
What's the rate limit for QR Code Reader API?
How much does QR Code Reader API cost?
Can I cancel my subscription anytime?
Is QR Code Reader API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/qrdecode-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/qrdecode-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/qrdecode-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/qrdecode-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.