API for dynamic codes
Make, change, pause and count your dynamic QR codes from your own software, for example a shop system that makes a code for every new product. The API is on the Business and Agency plans.
1. Make a key
Sign in, open Dashboard, Integrations, and press Make a key under API keys. Choose Read only to look at codes, or Read and write to also make, change, pause and delete them. The key is shown once. We keep only a scrambled copy, so we cannot show it again. If it is lost or leaked, revoke it and make a new one.
2. Send it with every call
curl https://freeqrstudio.in/api/links \ -H "Authorization: Bearer qrs_your_key_here"
Call the API from your server, never from a web page or an app that others can open, because anyone who sees the key can use it.
What a key can do
| Call | Address | What it does |
|---|---|---|
| GET | /api/links | Your dynamic codes, each with its scan totals. |
| POST | /api/links | Make a code. Send { "label": "Shop menu", "target": "https://example.com/menu" }. Optional: slug, expiresAt, maxScans, folder, tags. |
| PATCH | /api/links/{id} | Change a code: label, target (where it sends people), active (false pauses it), expiresAt, maxScans, folder, tags. |
| DELETE | /api/links/{id} | Delete a code. A printed code stops working. |
| GET | /api/links/summary | Totals for your account: active codes, scans this week and last. |
| GET | /api/links/analytics | Scan numbers across your codes. |
A key works only with these addresses. It cannot reach billing, your account, forms, signing or anything else, and it cannot make more keys.
Make a code
curl -X POST https://freeqrstudio.in/api/links \
-H "Authorization: Bearer qrs_your_key_here" \
-H "Content-Type: application/json" \
-d '{"label":"Shop menu","target":"https://example.com/menu"}'The answer is { "link": { "id": "…", "slug": "…", … } }. The address people scan is https://freeqrstudio.in/r/<slug>. A new code counts against your plan's number of dynamic codes, the same as one made in the dashboard.
Point a printed code somewhere new
curl -X PATCH https://freeqrstudio.in/api/links/CODE_ID \
-H "Authorization: Bearer qrs_your_key_here" \
-H "Content-Type: application/json" \
-d '{"target":"https://example.com/new-menu"}'Limits and errors
- Calls a minute: 60 on Business Lite, 120 on Business, 180 on Business Plus, and 300 or more on Agency. Over the limit you get
429and aretry-afterheader. - 401: the key is wrong or was revoked. 403: the key is read-only for that call, the address is not one a key may use, or your plan no longer includes the API.
- The same rules as the dashboard apply to every call: your plan's number of codes, how often a destination can be changed, and the safety checks on addresses.
- Errors come back as
{ "error": "…" }with a plain sentence.
Need something the API does not do yet? Tell us at [email protected].