Retrieve a QR code
curl --request GET \
--url https://management.scanova.io/qrcode/{qrid}/ \
--header 'Authorization: <api-key>'import requests
url = "https://management.scanova.io/qrcode/{qrid}/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://management.scanova.io/qrcode/{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://management.scanova.io/qrcode/{qrid}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://management.scanova.io/qrcode/{qrid}/"
req, _ := http.NewRequest("GET", 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.get("https://management.scanova.io/qrcode/{qrid}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://management.scanova.io/qrcode/{qrid}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": 88231,
"qrid": "QR7K9M2XN",
"name": "Product launch flyer",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": { "id": 1, "name": "Website URL", "slug": "url" },
"info": "{\"type\":\"url\",\"data\":{\"url\":\"https://example.com\"}}",
"pattern_info": null,
"dynamic_url_object": {
"url_hash": "a1b2c3",
"complete_url": "https://qr.link/a1b2c3",
"visit_count": 1042
},
"thumbnail": "https://cdn.scanova.io/thumbnails/QR7K9M2XN.png",
"is_active": true,
"folder": null,
"created": "2026-06-02T14:03:11Z",
"modified": "2026-08-10T08:41:02Z",
"tags_list": ["campaign-2026", "print"],
"is_password_protected": false,
"published_at": "2026-06-02T14:05:00Z",
"is_currently_draft": false
}
管理 API — 二维码
获取
GET /qrcode//
GET
/
qrcode
/
{qrid}
/
Retrieve a QR code
curl --request GET \
--url https://management.scanova.io/qrcode/{qrid}/ \
--header 'Authorization: <api-key>'import requests
url = "https://management.scanova.io/qrcode/{qrid}/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://management.scanova.io/qrcode/{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://management.scanova.io/qrcode/{qrid}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
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://management.scanova.io/qrcode/{qrid}/"
req, _ := http.NewRequest("GET", 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.get("https://management.scanova.io/qrcode/{qrid}/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://management.scanova.io/qrcode/{qrid}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"id": 88231,
"qrid": "QR7K9M2XN",
"name": "Product launch flyer",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": { "id": 1, "name": "Website URL", "slug": "url" },
"info": "{\"type\":\"url\",\"data\":{\"url\":\"https://example.com\"}}",
"pattern_info": null,
"dynamic_url_object": {
"url_hash": "a1b2c3",
"complete_url": "https://qr.link/a1b2c3",
"visit_count": 1042
},
"thumbnail": "https://cdn.scanova.io/thumbnails/QR7K9M2XN.png",
"is_active": true,
"folder": null,
"created": "2026-06-02T14:03:11Z",
"modified": "2026-08-10T08:41:02Z",
"tags_list": ["campaign-2026", "print"],
"is_password_protected": false,
"published_at": "2026-06-02T14:05:00Z",
"is_currently_draft": false
}
在 Management API 主机(
management.scanova.io)上获取、更新或删除单个二维码,使用您的原始 Management API 密钥进行身份验证。
GET https://management.scanova.io/qrcode/{qrid}/
PUT https://management.scanova.io/qrcode/{qrid}/
PATCH https://management.scanova.io/qrcode/{qrid}/
DELETE https://management.scanova.io/qrcode/{qrid}/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
同一个视图也可以通过
/qr/{qrid}/ 访问(即与列出/创建端点使用相同的路径前缀)——两个路径解析到完全相同的视图和行为。本参考文档以 /qrcode/{qrid}/ 为准,因为这是本文档集所核实的路径,但两者均可使用。GET 返回完整的详情数据结构——创建/更新序列化器所接受的每一个字段,外加计算字段,但不包含 AI 助手相关字段(ai_qr_code、ai_session_id、ai_chat_history)以及列表端点同样省略的跨数据库响应计数字段。
{
"id": 88231,
"qrid": "QR7K9M2XN",
"name": "Product launch flyer",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": { "id": 1, "name": "Website URL", "slug": "url" },
"info": "{\"type\":\"url\",\"data\":{\"url\":\"https://example.com\"}}",
"pattern_info": null,
"dynamic_url_object": {
"url_hash": "a1b2c3",
"complete_url": "https://qr.link/a1b2c3",
"visit_count": 1042
},
"thumbnail": "https://cdn.scanova.io/thumbnails/QR7K9M2XN.png",
"is_active": true,
"folder": null,
"created": "2026-06-02T14:03:11Z",
"modified": "2026-08-10T08:41:02Z",
"tags_list": ["campaign-2026", "print"],
"is_password_protected": false,
"published_at": "2026-06-02T14:05:00Z",
"is_currently_draft": false
}
作用范围与错误
此处的每个方法都只对该密钥所属账户拥有的二维码生效——请求一个您不拥有的(或不存在的)qrid 会返回 404,而非 403,因此您无法利用此端点探测其他账户的二维码是否存在。
相关内容
- 更新 — 同一端点的另一个操作。
- 删除 — 同一端点的另一个操作。
- 列出二维码 —— 查找要在此处获取的
qrid。 - 创建二维码 —— 创建二维码会返回相同的完整详情结构。
- 下载二维码图片 —— 将此二维码渲染为图片文件。
- 列出回收站中的二维码 —— 在此处执行
DELETE后二维码会落入的位置。
授权
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. management.scanova.io) — the same key sent to the regular API host will not authenticate.
路径参数
响应
200
QR code detail
此页面对您有帮助吗?
⌘I