Put dynamic QR codes inside your own product
Your customers want a QR code for their listing, menu, invoice or event. Rather than building redirects, analytics and image rendering yourself, create the codes through our API and show the results in your interface.
curl -X POST https://api.qravio.app/api/public/v1/qrcodes/bulk \
-H "Authorization: Bearer $QRAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"name": "Listing 5521",
"type": "website",
"category": "dynamic",
"content": {
"url": "https://example.com/listings/5521"
},
"destinations": [
{
"target_url": "https://example.com/listings/5521"
}
],
"client_ref": "acct-19:listing-5521"
},
{
"name": "Listing 5522",
"type": "website",
"category": "dynamic",
"content": {
"url": "https://example.com/listings/5522"
},
"destinations": [
{
"target_url": "https://example.com/listings/5522"
}
],
"client_ref": "acct-19:listing-5522"
}
]
}'How the integration works
Your backend creates a code when a customer asks for one, with your own record ID as the client_ref and a folder per customer account. You show the preview_url image in your UI and read scan analytics from the API to display alongside it.
- 1Create an API key under Developers and keep it on your server, never in a browser.
- 2Create a folder per customer account with POST /folders.
- 3Create codes as customers ask for them, with your record ID as client_ref and the customer folder_id.
- 4Show preview_url in your UI and read /qrcodes/{id}/analytics for the scan numbers.
What you get
No redirect service to run
Short links, edge redirects, scan counting and bot filtering are ours to operate.
Folders per customer
Keep each of your accounts in its own folder, and list or count by folder through the API.
Your own domain
Serve codes from a verified custom domain so your customers see your brand in the link.
Events into your product
Scan and lead webhooks post to your backend, signed, so you can notify your own users.
What each plan allows
Every call counts against the monthly quota, and a bulk request counts one call per item. Static codes use calls but not the dynamic QR allowance.
| Plan | API calls | Dynamic QRs | Webhooks |
|---|---|---|---|
| Free, Starter | No API access | n/a | No |
| Pro | 3,000 a month | 300 | Scan, lead, scan limit |
| Agency | 25,000 a month | No cap | Adds scan milestones |
Prices are on the pricing page.
SaaS products API FAQ
Is there a separate account per customer of mine?
No. The codes live in your workspace; folders keep your customers apart. Your application decides which customer sees which folder.
Can I call the API from the browser?
No. A key acts with full rights on the workspace, so it belongs on your server.
How is usage counted?
Every call counts against your monthly quota, and a bulk request counts one call per item. Pro allows 3,000 calls a month; Agency 25,000.
Other things teams build
Packaging
Generate a unique, editable QR code per SKU or production batch from your ERP. Repoint printed boxes after they ship and see scans by country.
Tickets
Issue a unique QR code per ticket from your booking system, stop it working after the event, and pause it when a ticket is refunded.
Restaurant tables
Generate a QR code for every table across every outlet from your POS, and see which tables and outlets get scanned, and when.
Inventory
Tag every asset with a QR code generated from your inventory system. Static codes for permanent labels, dynamic codes when the record can move.
Certificates
Put a verification QR code on every certificate you issue, generated from your LMS or credential system. Static codes do not count against your plan allowance.
Loyalty
Issue a personal QR code per loyalty member from your CRM, and receive a webhook each time it is scanned.
Campaigns
Generate a tracked QR code for every placement, store or channel in a campaign, with UTM tags and a schedule, from your own tools.
Start generating codes
Create an account, upgrade to Pro or Agency, and make a key under Developers in your workspace.