Update QR Code
Updates a QR code. Requires the qr:write scope.
Dynamic codes: name, target.destination, target.utm, design,
folder_id, tags, is_active. Changing the design re-renders the
stored image; changing the destination does not require reprinting
— the short URL stays the same.
Static codes: only name, folder_id and design (the payload is
baked into the printed code).
curl --request PATCH \
--url https://api.useqrkit.com/v1/qr-codes/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"target": {
"destination": "<string>",
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
},
"design": {
"error_correction": "Q",
"colors": {
"foreground": "#000000",
"background": "#ffffff"
},
"gradient": {
"start": "#005ae0",
"end": "#00c2ff",
"type": "linear-top-to-bottom"
},
"shapes": {
"body": "square",
"eye_frame": "square",
"eye_ball": "square"
},
"eye_colors": {
"frame": "#005ae0",
"ball": "#004bb8"
},
"logo": {
"url": "<string>",
"clear_background": false
},
"transparent_background": false
},
"folder_id": "<string>",
"tags": [
"<string>"
],
"is_active": true
}
'import requests
url = "https://api.useqrkit.com/v1/qr-codes/{id}"
payload = {
"name": "<string>",
"target": {
"destination": "<string>",
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
},
"design": {
"error_correction": "Q",
"colors": {
"foreground": "#000000",
"background": "#ffffff"
},
"gradient": {
"start": "#005ae0",
"end": "#00c2ff",
"type": "linear-top-to-bottom"
},
"shapes": {
"body": "square",
"eye_frame": "square",
"eye_ball": "square"
},
"eye_colors": {
"frame": "#005ae0",
"ball": "#004bb8"
},
"logo": {
"url": "<string>",
"clear_background": False
},
"transparent_background": False
},
"folder_id": "<string>",
"tags": ["<string>"],
"is_active": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
target: {
destination: '<string>',
utm: {
source: '<string>',
medium: '<string>',
campaign: '<string>',
term: '<string>',
content: '<string>'
}
},
design: {
error_correction: 'Q',
colors: {foreground: '#000000', background: '#ffffff'},
gradient: {start: '#005ae0', end: '#00c2ff', type: 'linear-top-to-bottom'},
shapes: {body: JSON.stringify('square'), eye_frame: 'square', eye_ball: 'square'},
eye_colors: {frame: '#005ae0', ball: '#004bb8'},
logo: {url: '<string>', clear_background: false},
transparent_background: false
},
folder_id: '<string>',
tags: ['<string>'],
is_active: true
})
};
fetch('https://api.useqrkit.com/v1/qr-codes/{id}', 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.useqrkit.com/v1/qr-codes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'target' => [
'destination' => '<string>',
'utm' => [
'source' => '<string>',
'medium' => '<string>',
'campaign' => '<string>',
'term' => '<string>',
'content' => '<string>'
]
],
'design' => [
'error_correction' => 'Q',
'colors' => [
'foreground' => '#000000',
'background' => '#ffffff'
],
'gradient' => [
'start' => '#005ae0',
'end' => '#00c2ff',
'type' => 'linear-top-to-bottom'
],
'shapes' => [
'body' => 'square',
'eye_frame' => 'square',
'eye_ball' => 'square'
],
'eye_colors' => [
'frame' => '#005ae0',
'ball' => '#004bb8'
],
'logo' => [
'url' => '<string>',
'clear_background' => false
],
'transparent_background' => false
],
'folder_id' => '<string>',
'tags' => [
'<string>'
],
'is_active' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.useqrkit.com/v1/qr-codes/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"target\": {\n \"destination\": \"<string>\",\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n },\n \"design\": {\n \"error_correction\": \"Q\",\n \"colors\": {\n \"foreground\": \"#000000\",\n \"background\": \"#ffffff\"\n },\n \"gradient\": {\n \"start\": \"#005ae0\",\n \"end\": \"#00c2ff\",\n \"type\": \"linear-top-to-bottom\"\n },\n \"shapes\": {\n \"body\": \"square\",\n \"eye_frame\": \"square\",\n \"eye_ball\": \"square\"\n },\n \"eye_colors\": {\n \"frame\": \"#005ae0\",\n \"ball\": \"#004bb8\"\n },\n \"logo\": {\n \"url\": \"<string>\",\n \"clear_background\": false\n },\n \"transparent_background\": false\n },\n \"folder_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"is_active\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.useqrkit.com/v1/qr-codes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"target\": {\n \"destination\": \"<string>\",\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n },\n \"design\": {\n \"error_correction\": \"Q\",\n \"colors\": {\n \"foreground\": \"#000000\",\n \"background\": \"#ffffff\"\n },\n \"gradient\": {\n \"start\": \"#005ae0\",\n \"end\": \"#00c2ff\",\n \"type\": \"linear-top-to-bottom\"\n },\n \"shapes\": {\n \"body\": \"square\",\n \"eye_frame\": \"square\",\n \"eye_ball\": \"square\"\n },\n \"eye_colors\": {\n \"frame\": \"#005ae0\",\n \"ball\": \"#004bb8\"\n },\n \"logo\": {\n \"url\": \"<string>\",\n \"clear_background\": false\n },\n \"transparent_background\": false\n },\n \"folder_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"is_active\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useqrkit.com/v1/qr-codes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"target\": {\n \"destination\": \"<string>\",\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n },\n \"design\": {\n \"error_correction\": \"Q\",\n \"colors\": {\n \"foreground\": \"#000000\",\n \"background\": \"#ffffff\"\n },\n \"gradient\": {\n \"start\": \"#005ae0\",\n \"end\": \"#00c2ff\",\n \"type\": \"linear-top-to-bottom\"\n },\n \"shapes\": {\n \"body\": \"square\",\n \"eye_frame\": \"square\",\n \"eye_ball\": \"square\"\n },\n \"eye_colors\": {\n \"frame\": \"#005ae0\",\n \"ball\": \"#004bb8\"\n },\n \"logo\": {\n \"url\": \"<string>\",\n \"clear_background\": false\n },\n \"transparent_background\": false\n },\n \"folder_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"is_active\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "qr_123",
"object": "qr_code",
"name": "<string>",
"short_code": "AB3D5",
"short_url": "https://scan.useqrkit.com/AB3D5",
"target": {
"type": "<string>",
"destination": "<string>"
},
"design": {
"colors": {
"foreground": "<string>",
"background": "<string>"
},
"gradient": {
"start": "<string>",
"end": "<string>",
"type": "<string>"
},
"shapes": {
"body": "<string>",
"eye_frame": "<string>",
"eye_ball": "<string>"
},
"eye_colors": {
"frame": "<string>",
"ball": "<string>"
},
"has_logo": true,
"transparent_background": true
},
"folder_id": "fld_12",
"tags": [
"<string>"
],
"image_url": "https://img.useqrkit.com/qr-AB3D5-1717000000000.svg",
"download_url": "/v1/qr-codes/qr_123/download",
"is_active": true,
"scan_count": 123,
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}Authorizations
API key in the Authorization header: Bearer qr_live_… or Bearer qr_test_…. Token endpoints take a Clerk session JWT instead.
Path Parameters
Body
255Show child attributes
Show child attributes
Visual customization. Stored with the code, so the dashboard shows exactly what the API created.
Show child attributes
Show child attributes
Folder id, or null to remove from its folder.
10Pause/resume scanning (dynamic codes only).
Response
Updated QR code
qr_… for dynamic, sqr_… for static.
"qr_123"
"qr_code"
dynamic, static url, text, email, sms, wifi, event, vcard "AB3D5"
null for static codes.
"https://scan.useqrkit.com/AB3D5"
Show child attributes
Show child attributes
Show child attributes
Show child attributes
"fld_12"
"https://img.useqrkit.com/qr-AB3D5-1717000000000.svg"
"/v1/qr-codes/qr_123/download"
null for static codes (no tracking).
UTM parameters (null unless set on a dynamic url code).
Show child attributes
Show child attributes
curl --request PATCH \
--url https://api.useqrkit.com/v1/qr-codes/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"target": {
"destination": "<string>",
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
},
"design": {
"error_correction": "Q",
"colors": {
"foreground": "#000000",
"background": "#ffffff"
},
"gradient": {
"start": "#005ae0",
"end": "#00c2ff",
"type": "linear-top-to-bottom"
},
"shapes": {
"body": "square",
"eye_frame": "square",
"eye_ball": "square"
},
"eye_colors": {
"frame": "#005ae0",
"ball": "#004bb8"
},
"logo": {
"url": "<string>",
"clear_background": false
},
"transparent_background": false
},
"folder_id": "<string>",
"tags": [
"<string>"
],
"is_active": true
}
'import requests
url = "https://api.useqrkit.com/v1/qr-codes/{id}"
payload = {
"name": "<string>",
"target": {
"destination": "<string>",
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
}
},
"design": {
"error_correction": "Q",
"colors": {
"foreground": "#000000",
"background": "#ffffff"
},
"gradient": {
"start": "#005ae0",
"end": "#00c2ff",
"type": "linear-top-to-bottom"
},
"shapes": {
"body": "square",
"eye_frame": "square",
"eye_ball": "square"
},
"eye_colors": {
"frame": "#005ae0",
"ball": "#004bb8"
},
"logo": {
"url": "<string>",
"clear_background": False
},
"transparent_background": False
},
"folder_id": "<string>",
"tags": ["<string>"],
"is_active": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
target: {
destination: '<string>',
utm: {
source: '<string>',
medium: '<string>',
campaign: '<string>',
term: '<string>',
content: '<string>'
}
},
design: {
error_correction: 'Q',
colors: {foreground: '#000000', background: '#ffffff'},
gradient: {start: '#005ae0', end: '#00c2ff', type: 'linear-top-to-bottom'},
shapes: {body: JSON.stringify('square'), eye_frame: 'square', eye_ball: 'square'},
eye_colors: {frame: '#005ae0', ball: '#004bb8'},
logo: {url: '<string>', clear_background: false},
transparent_background: false
},
folder_id: '<string>',
tags: ['<string>'],
is_active: true
})
};
fetch('https://api.useqrkit.com/v1/qr-codes/{id}', 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.useqrkit.com/v1/qr-codes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'target' => [
'destination' => '<string>',
'utm' => [
'source' => '<string>',
'medium' => '<string>',
'campaign' => '<string>',
'term' => '<string>',
'content' => '<string>'
]
],
'design' => [
'error_correction' => 'Q',
'colors' => [
'foreground' => '#000000',
'background' => '#ffffff'
],
'gradient' => [
'start' => '#005ae0',
'end' => '#00c2ff',
'type' => 'linear-top-to-bottom'
],
'shapes' => [
'body' => 'square',
'eye_frame' => 'square',
'eye_ball' => 'square'
],
'eye_colors' => [
'frame' => '#005ae0',
'ball' => '#004bb8'
],
'logo' => [
'url' => '<string>',
'clear_background' => false
],
'transparent_background' => false
],
'folder_id' => '<string>',
'tags' => [
'<string>'
],
'is_active' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.useqrkit.com/v1/qr-codes/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"target\": {\n \"destination\": \"<string>\",\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n },\n \"design\": {\n \"error_correction\": \"Q\",\n \"colors\": {\n \"foreground\": \"#000000\",\n \"background\": \"#ffffff\"\n },\n \"gradient\": {\n \"start\": \"#005ae0\",\n \"end\": \"#00c2ff\",\n \"type\": \"linear-top-to-bottom\"\n },\n \"shapes\": {\n \"body\": \"square\",\n \"eye_frame\": \"square\",\n \"eye_ball\": \"square\"\n },\n \"eye_colors\": {\n \"frame\": \"#005ae0\",\n \"ball\": \"#004bb8\"\n },\n \"logo\": {\n \"url\": \"<string>\",\n \"clear_background\": false\n },\n \"transparent_background\": false\n },\n \"folder_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"is_active\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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.useqrkit.com/v1/qr-codes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"target\": {\n \"destination\": \"<string>\",\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n },\n \"design\": {\n \"error_correction\": \"Q\",\n \"colors\": {\n \"foreground\": \"#000000\",\n \"background\": \"#ffffff\"\n },\n \"gradient\": {\n \"start\": \"#005ae0\",\n \"end\": \"#00c2ff\",\n \"type\": \"linear-top-to-bottom\"\n },\n \"shapes\": {\n \"body\": \"square\",\n \"eye_frame\": \"square\",\n \"eye_ball\": \"square\"\n },\n \"eye_colors\": {\n \"frame\": \"#005ae0\",\n \"ball\": \"#004bb8\"\n },\n \"logo\": {\n \"url\": \"<string>\",\n \"clear_background\": false\n },\n \"transparent_background\": false\n },\n \"folder_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"is_active\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.useqrkit.com/v1/qr-codes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"target\": {\n \"destination\": \"<string>\",\n \"utm\": {\n \"source\": \"<string>\",\n \"medium\": \"<string>\",\n \"campaign\": \"<string>\",\n \"term\": \"<string>\",\n \"content\": \"<string>\"\n }\n },\n \"design\": {\n \"error_correction\": \"Q\",\n \"colors\": {\n \"foreground\": \"#000000\",\n \"background\": \"#ffffff\"\n },\n \"gradient\": {\n \"start\": \"#005ae0\",\n \"end\": \"#00c2ff\",\n \"type\": \"linear-top-to-bottom\"\n },\n \"shapes\": {\n \"body\": \"square\",\n \"eye_frame\": \"square\",\n \"eye_ball\": \"square\"\n },\n \"eye_colors\": {\n \"frame\": \"#005ae0\",\n \"ball\": \"#004bb8\"\n },\n \"logo\": {\n \"url\": \"<string>\",\n \"clear_background\": false\n },\n \"transparent_background\": false\n },\n \"folder_id\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"is_active\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "qr_123",
"object": "qr_code",
"name": "<string>",
"short_code": "AB3D5",
"short_url": "https://scan.useqrkit.com/AB3D5",
"target": {
"type": "<string>",
"destination": "<string>"
},
"design": {
"colors": {
"foreground": "<string>",
"background": "<string>"
},
"gradient": {
"start": "<string>",
"end": "<string>",
"type": "<string>"
},
"shapes": {
"body": "<string>",
"eye_frame": "<string>",
"eye_ball": "<string>"
},
"eye_colors": {
"frame": "<string>",
"ball": "<string>"
},
"has_logo": true,
"transparent_background": true
},
"folder_id": "fld_12",
"tags": [
"<string>"
],
"image_url": "https://img.useqrkit.com/qr-AB3D5-1717000000000.svg",
"download_url": "/v1/qr-codes/qr_123/download",
"is_active": true,
"scan_count": 123,
"utm": {
"source": "<string>",
"medium": "<string>",
"campaign": "<string>",
"term": "<string>",
"content": "<string>"
},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "<string>",
"doc_url": "<string>",
"request_id": "<string>"
}
}
