List QR codes
curl --request GET \
--url https://management.scanova.io/qr/ \
--header 'Authorization: <api-key>'import requests
url = "https://management.scanova.io/qr/"
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/qr/', 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/qr/",
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/qr/"
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/qr/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://management.scanova.io/qr/")
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{
"count": 214,
"next": 2,
"previous": null,
"results": [
{
"id": 88231,
"qrid": "QR7K9M2XN",
"name": "Product launch flyer",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": {
"id": 1,
"name": "Website URL",
"slug": "url",
"description": "Link a QR code straight to any website.",
"preview_image": "https://cdn.scanova.io/categories/url.png",
"allowed_qr_types": ["dy", "st"],
"allowed_qr_types_display": ["Dynamic", "Static"],
"is_active": true
},
"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,
"is_age_restricted": false,
"created_by": { "full_name": "Jordan Lee" },
"published_at": "2026-06-02T14:05:00Z",
"is_currently_draft": false
}
]
}
管理 API — 二维码
列出二维码
GET /qr/
GET
/
qr
/
List QR codes
curl --request GET \
--url https://management.scanova.io/qr/ \
--header 'Authorization: <api-key>'import requests
url = "https://management.scanova.io/qr/"
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/qr/', 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/qr/",
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/qr/"
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/qr/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://management.scanova.io/qr/")
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{
"count": 214,
"next": 2,
"previous": null,
"results": [
{
"id": 88231,
"qrid": "QR7K9M2XN",
"name": "Product launch flyer",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": {
"id": 1,
"name": "Website URL",
"slug": "url",
"description": "Link a QR code straight to any website.",
"preview_image": "https://cdn.scanova.io/categories/url.png",
"allowed_qr_types": ["dy", "st"],
"allowed_qr_types_display": ["Dynamic", "Static"],
"is_active": true
},
"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,
"is_age_restricted": false,
"created_by": { "full_name": "Jordan Lee" },
"published_at": "2026-06-02T14:05:00Z",
"is_currently_draft": false
}
]
}
在 Management API 主机(
management.scanova.io)上列出或创建二维码,使用您的原始 Management API 密钥进行身份验证——如果您还没有设置好密钥,请参见概览。
GET https://management.scanova.io/qr/
POST https://management.scanova.io/qr/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
GET /qr/ 返回该密钥所属账户拥有的二维码的分页、可筛选列表。
查询参数
string
对二维码名称、
qrid、动态 URL slug 以及文件夹名称进行自由文本搜索。string
以逗号分隔的分类 slug,例如
url,event。匹配所列分类中的任意一个。string
以逗号分隔的标签名称。匹配所列标签中的任意一个。
string
以逗号分隔的二维码类型:
dy(动态)、st(静态)。integer
文件夹 ID——仅返回该文件夹中的二维码。
string
ISO 日期。返回在此日期当天或之后创建的二维码。
string
ISO 日期。返回在此日期当天或之前创建的二维码。
string
以逗号分隔的一个或多个字段:
name、created、qr_type、category__name。在字段前加 - 表示降序,例如 ordering=-created。integer
默认值:"1"
页码。
integer
默认值:"10"
每页结果数,最大为
100。{
"count": 214,
"next": 2,
"previous": null,
"results": [
{
"id": 88231,
"qrid": "QR7K9M2XN",
"name": "Product launch flyer",
"qr_type": "dy",
"qr_type_display": "Dynamic",
"category": {
"id": 1,
"name": "Website URL",
"slug": "url",
"description": "Link a QR code straight to any website.",
"preview_image": "https://cdn.scanova.io/categories/url.png",
"allowed_qr_types": ["dy", "st"],
"allowed_qr_types_display": ["Dynamic", "Static"],
"is_active": true
},
"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,
"is_age_restricted": false,
"created_by": { "full_name": "Jordan Lee" },
"published_at": "2026-06-02T14:05:00Z",
"is_currently_draft": false
}
]
}
next 和 previous 是页码(或 null),而不是完整的 URL——本 API 的分页方式在这一点上与普通的 DRF PageNumberPagination 不同。请通过 ?page=2 获取下一页,而不是跟随响应中的某个 URL。category 是完整的分类对象——上方展示的字段只是具有代表性的一个子集;同一个对象还携带 tags、is_new、has_landing_page、helpdesk_link、qr_name_pattern、created 和 modified。dynamic_url_object 仅在动态(dy)二维码中才存在。相关内容
- 创建二维码 — 同一端点的另一个操作。
- 获取 —— 对此列表中返回的单个二维码进行操作。
- 更新 —— 对此列表中返回的单个二维码进行操作。
- 删除 —— 对此列表中返回的单个二维码进行操作。
- 下载二维码图片 —— 将这些二维码之一渲染为 PNG/SVG/PDF 等格式。
- 列出回收站中的二维码 —— 从此列表中删除后二维码会去往何处。
- Management API 概览 —— 适用于本端点的身份验证方案与配额规则。
授权
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
List of QR codes
此页面对您有帮助吗?
⌘I