curl --request POST \
--url 'https://api.scanova.io/forms/F8a9b0c1d2e3f4g5h/link-qrs/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{ "qr_ids": ["Q07afe81aa0034c01", "Qa91d"] }'
{
"id": 376,
"form_id": "F8a9b0c1d2e3f4g5h",
"name": "Booth Signup",
"created": "2026-08-16T20:46:12.554000+05:30",
"is_active": true,
"usage_count": 2,
"linked_qrs": [
{ "qr_code__id": 9021, "qr_code__qrid": "Q07afe81aa0034c01", "qr_code__name": "docs-v2-first-qr-code", "qr_code__qr_type": "dy" }
],
"entries_count": 3,
"conversion": 12.5,
"modified": "2026-09-08T10:12:00.000000+05:30"
}
Leads & Forms
Link QR Codes to a form
POST /forms//link-qrs/
POST
/
forms
/
{form_id}
/
link-qrs
/
curl --request POST \
--url 'https://api.scanova.io/forms/F8a9b0c1d2e3f4g5h/link-qrs/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{ "qr_ids": ["Q07afe81aa0034c01", "Qa91d"] }'
{
"id": 376,
"form_id": "F8a9b0c1d2e3f4g5h",
"name": "Booth Signup",
"created": "2026-08-16T20:46:12.554000+05:30",
"is_active": true,
"usage_count": 2,
"linked_qrs": [
{ "qr_code__id": 9021, "qr_code__qrid": "Q07afe81aa0034c01", "qr_code__name": "docs-v2-first-qr-code", "qr_code__qr_type": "dy" }
],
"entries_count": 3,
"conversion": 12.5,
"modified": "2026-09-08T10:12:00.000000+05:30"
}
Sets the full set of QR Codes attached to a form.
Only dynamic QR Codes (
This call replaces the entire link set — every QR Code currently linked to this form is unlinked first, then exactly the QR Codes you send are linked. To keep an existing link, include its
qrid in the request.Requires only account authentication — unlike most write endpoints on this resource, no
MANAGEMENT_API quota or LEAD_GENERATION_CAN_EDIT permission check is applied here.string
required
The form’s
form_id.array
required
Array of QR
qrid strings — the full set of QR Codes the form should be linked to afterward.curl --request POST \
--url 'https://api.scanova.io/forms/F8a9b0c1d2e3f4g5h/link-qrs/' \
--header 'Authorization: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{ "qr_ids": ["Q07afe81aa0034c01", "Qa91d"] }'
{
"id": 376,
"form_id": "F8a9b0c1d2e3f4g5h",
"name": "Booth Signup",
"created": "2026-08-16T20:46:12.554000+05:30",
"is_active": true,
"usage_count": 2,
"linked_qrs": [
{ "qr_code__id": 9021, "qr_code__qrid": "Q07afe81aa0034c01", "qr_code__name": "docs-v2-first-qr-code", "qr_code__qr_type": "dy" }
],
"entries_count": 3,
"conversion": 12.5,
"modified": "2026-09-08T10:12:00.000000+05:30"
}
qr_type: "dy") owned by this account can be linked — a qrid for a static or foreign QR Code is silently dropped from the target set rather than raising an error.
Related
- Retrieve a form — view the current link set.
- Create a form — attach one QR Code at creation time via
qr_id. - Management API overview — the auth scheme and quota architecture this endpoint is part of.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Response
200
Form with the updated link set.
Was this page helpful?