QR code API
One GET renders a QR code with no key. A key saves dynamic codes you can re-point and count.
200 OK · …
curl -sS \
'https://app.qrsalt.com/api/qr?type=url&url=https%3A%2F%2Fexample.com%2Fmenu' \
-H "Authorization: Bearer $QRSALT_KEY" \
-o qr.svgNo card. It renders every code and barcode.
On this page
Free to render, paid for your account
The key you send decides what you can call. Two of the three levels cost nothing.
No key
No account
GET /api/qr/freedraws a code as SVG or PNG.POST /api/qr/decodereads one from an image.480 units an hour per caller
Free key
Free, no card
GET /api/qr: 12 code types, SVG, PNG, JPG, WebP, PDF, up to 2,000 px.GET /api/barcode: 12 symbologies.60 requests a minute
Starter key
From $5 a month
Everything above, plus your account: codes, short links, scans, domains and more.
600 requests a minute
Paid plans also carry a monthly count: 500 API requests a month on Starter, 5,000 on Pro and 100,000 on Business, a fair-use ceiling. Rendering doesn’t count towards it.
Make a key in Dashboard → API. We show it once and keep only a hash.
What a paid key adds
Each needs a Starter key or higher. A plan name marks the ones that start higher.
- Create and re-point codesSave a dynamic code, then send a new destination. Every printed copy follows.
- Scan countsPer code or per workspace, by day, country and device. City from Pro.
- Bulk changesUp to 500 ids a request: pause, move, re-tag or delete.
- Your own domainAdd and verify go.yourbrand.com from your own sign-up flow.
- Short linksThe same editable, counted link, without the picture.
- Folders, tags and UTM presetsCodes arrive already sorted and labelled.
- QR Form answersList your forms and page through what people sent.
- Hosted GS1 Digital LinksChange the page a printed GTIN opens.
- Webhooks · BusinessA signed POST on each scan, code change and form answer.
Keys, webhooks and domains, on screen
One key per integration
Each key shows who made it and when it was last used. Revoke one and the others keep working.

Every delivery, with your server’s answer
Each endpoint lists recent deliveries, attempts and results, and why it was switched off if it was.

The signature check, next to the secret
Copy the code that checks the x-qr-signature header straight into your handler.

DNS records, checked for you
A domain added over the API, with its TXT and CNAME records and a button to check them again.

Docs and other ways in
The API reference
Not writing code?
- MCP serverAsk Claude, Cursor or VS Code for codes.
- n8n and MakeQR steps inside a workflow.
- Bulk generatorA spreadsheet in, image files out.
Last reviewed , against the product as it works today.
QR code API questions
Does the API make static or dynamic QR codes?
Both. GET /api/qr returns a static image and stores nothing. POST /api/v1/codes saves a dynamic code you can re-point, or a static one if you send kind: "STATIC".
Can I upload a PDF through the API?
No. Upload the file in the dashboard, which checks it before the code exists. After that, the API can read, rename, pause, move or delete that code.
Is the rate limit per key or per workspace?
Per key, so a nightly import can’t slow down another integration. The monthly request count is per workspace and starts again at midnight UTC on the 1st.
How do I check that a webhook came from you?
Check the x-qr-signature header: an HMAC-SHA256 of the timestamp and the raw body, keyed with your endpoint’s secret. Refuse anything older than five minutes.
Build free, pay when you need the account
Choose by how many dynamic codes you need. The API costs nothing extra on any plan.
Free
$0/mo
Unlimited static codes. Three editable ones that never expire.
- Short links on their own, no QR code needed
- Up to 1 of the 3 can be a QR Menu
- Add your logo to QR codes
- Every shape, corner and frame
3dynamic codes
Starter
Recommended$5/mo
For one business with codes out in the world.
- 5 QR Menus
- QR Forms
- GS1 Digital Links we host, so a printed pack can be re-pointed
- Advanced tracking and analytics
100dynamic codes
Pro
$15/mo
For agencies and teams running codes at scale.
- 50 QR Menus
- Unlimited analytics history
- 10 custom domains
- 5,000 API requests a month
600dynamic codes
Business
$39/mo
For organisations running codes across many brands.
- 400 QR Menus
- 50 custom domains
- Up to 25 team members and team management
- Up to 10 workspaces
2,000dynamic codes
Unlimited scans on every plan. Cancel online in two clicks. Compare every plan and feature
The rest of the toolbox
Open a row to see the screen and which plan has it.
Separate workspaces
One subscription, a workspace per brand or client.Business
Each has its own codes, team and analytics, so one client never sees another’s. Up to 10 on one subscription.
Business

Priority email support
Paid plans’ emails are answered first.Starter and up
Messages from paid plans are answered before those from free accounts. That’s our order of work, not a reply-time promise.
Starter and up

Your data, to take or delete
A full export any time, and deletion you can take back.Every plan, Free included
Codes, history, scans, form answers and uploads as one .zip. Deleting the account gives you 30 days to change your mind, and printed codes work until then.
Every plan, Free included
