Update a QR code (partial)
curl --request PATCH \
--url https://api.scanova.io/qr/{qrid}/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.scanova.io/qr/{qrid}/"
headers = {"Authorization": "<api-key>"}
response = requests.patch(url, headers=headers)
print(response.text)const options = {method: 'PATCH', headers: {Authorization: '<api-key>'}};
fetch('https://api.scanova.io/qr/{qrid}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scanova.io/qr/{qrid}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scanova.io/qr/{qrid}/"
req, _ := http.NewRequest("PATCH", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.scanova.io/qr/{qrid}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scanova.io/qr/{qrid}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_bodyLead List Management
Detach Lead List from QR Code
PATCH
/
qr
/
{qrid}
/
Update a QR code (partial)
curl --request PATCH \
--url https://api.scanova.io/qr/{qrid}/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.scanova.io/qr/{qrid}/"
headers = {"Authorization": "<api-key>"}
response = requests.patch(url, headers=headers)
print(response.text)const options = {method: 'PATCH', headers: {Authorization: '<api-key>'}};
fetch('https://api.scanova.io/qr/{qrid}/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.scanova.io/qr/{qrid}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.scanova.io/qr/{qrid}/"
req, _ := http.NewRequest("PATCH", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.scanova.io/qr/{qrid}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.scanova.io/qr/{qrid}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_bodyOverview
Detaches a lead list from a QR code. After detaching, users will access the QR code content directly without being prompted to fill out a lead capture form.Path Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
qrid | string | Yes | QR code ID | Qc3ca09e1a5574caf |
Request Body
| Field | Type | Required | Description | Example |
|---|---|---|---|---|
lead_list | null | Yes | Set to null to detach lead list | null |
Examples
Detach Lead List from QR Code
curl -X PATCH "https://management.scanova.io/qr/Qc3ca09e1a5574caf/" \
-H "Authorization: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"lead_list": null
}'
Response
Returns the updated QR code object with the lead list information removed from thedynamic_url_object.
Behavior After Detaching
When a lead list is detached from a QR code:- User scans QR code
- Direct access to the original QR code content
- No lead capture form is displayed
- No lead data is collected
- Faster user experience (no form to fill out)
Important Notes
- Immediate Effect: Changes take effect immediately
- No Data Loss: Previously captured leads remain in the lead list
- Lead List Preserved: The lead list itself is not deleted, only detached
- Can Reattach: You can attach the same or different lead list later
Use Cases
- Campaign End: Stop lead capture when campaign ends
- A/B Testing: Test QR codes with and without lead capture
- User Experience: Remove lead capture for better user experience
- Temporary Disable: Temporarily disable lead capture without deleting data
- Content Access: Allow direct access to content without barriers
Detaching a lead list does not delete the lead list or any previously captured data. The lead list remains available and can be reattached to the same or different QR codes later.
Once detached, the QR code will no longer capture leads. If you need to resume lead capture, you’ll need to reattach a lead list using the attach endpoint.
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: YOUR_API_KEY. 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.
Path Parameters
Response
200
QR code updated
Was this page helpful?