GetQR API 目前处于 Beta 阶段,仅向部分工作区开放。正式发布前,细节可能会有所变化。
各类型的二维码数据
16 种类型各自的
data 格式。自定义设计
点样式、颜色、边框和 Logo。
访问规则
生效计划、扫描次数上限和密码。
二维码对象
除删除和下载外,所有二维码端点都会返回此对象。列表端点返回由此类对象组成的数组。string
二维码的唯一 ID,例如
qr_1EPcVfeHZAY2iNoVLsgW2Aqf。string | null
二维码的名称,显示在控制台中。
string | null
关于二维码的自由文本备注。
string
已保存的载荷。对于
wifi、vcard、social、multilink、event 和 sms,它就是您发送的载荷。对于其他类型,它是短链接,因此请从 url 读取目标地址。boolean
二维码已暂停时为
true。boolean
对于在控制台中创建、没有短链接的静态二维码为
true。API 始终创建动态二维码。string | null
完整的短链接,例如
https://getqr.sh/x7Kd2p1。string | null
短链接的域名。
string | null
短链接的路径(slug)。
boolean
路径为自行指定而非自动生成时为
true。string | null
短链接跳转到的目标地址。
string | null
iOS 访问者的目标地址,适用于
app 二维码。string | null
Android 访问者的目标地址,适用于
app 二维码。integer
扫描总次数。
string
只读。
custom 表示 API 可以完整编辑的设计。branded 和 ai 表示在控制台中创建的 Branded design 或 AI design。API 无法编辑其图案,但在您更改其他字段时会保留它。object | null
pdf、image 或 video 二维码的文件:id、name 和以字节为单位的 size。string | null
只读。在控制台中创建的
app 二维码的显示名称。object | null
只读。在控制台中创建、包含多个文件的
pdf 二维码:title、layout 和 files。object | null
只读。在控制台中创建、包含多张图片的
image 二维码:title、layout 和 files。string
创建日期,ISO 8601 格式。
string
最后更新日期,ISO 8601 格式。
password、userId、workspaceId、projectId)绝不会返回。
列出二维码
GET /api/v1/qrs
分页返回工作区中的二维码。
integer
默认值:"1"
要返回的页码,最小为 1。
integer
默认值:"100"
每页的二维码数量,1 到 100。更大的值会被拒绝。
string
匹配二维码的标题。长度超过 2 个字符的查询还会匹配已保存的
data。对于链接类类型,已保存的 data 是短链接,因此无法搜索目标 URL。string
默认值:"createdAt"
排序字段:
createdAt、updatedAt、clicks(扫描总数)、lastClicked(最近一次扫描)或 type。type 始终按降序排列,并忽略 sortOrder。string
默认值:"desc"
排序方向:
asc 或 desc。boolean
默认值:"false"
包含已暂停的二维码。
boolean
默认值:"false"
只返回已暂停的二维码。优先于
showArchived。true 或 false。只要 pagination.hasMore 为 true,就继续请求下一页。请参阅分页。
创建二维码
POST /api/v1/qrs
同时创建二维码及其短链接。返回 201 Created 和新建的二维码。
string
必填
二维码编码的内容类型,同时决定
data 必须采用的格式。取值为 website、pdf、image、video、whatsapp、social、wifi、app、feedback、vcard、sms、payment、location、multilink、email、event 之一。object
二维码所经由的短链接。可选:省略时,
link.url 取 data 的值。string
二维码的名称,显示在控制台中。会去除首尾空格,长度为 1 到 40 个字符。省略时二维码没有标题。
string
关于二维码的自由文本备注,最多 280 个字符。
string
string
要将其设计应用到新二维码上的模板。您发送的设计字段会合并到模板设计之上。Branded design 或 AI design 模板会返回
422(art_template_unsupported)。未知的模板或其他工作区的模板会返回 404。boolean
二维码是否已暂停。为
true 时,创建的二维码处于暂停状态:扫描会显示暂停页面,而不是目标页面。重试与重复请求
- 带键。 带上
Idempotency-Key请求头时,24 小时内会重放同一响应。 - 不带键。 30 秒内发送的相同请求体会被视为重复请求。
- 重放。 重放会返回已保存的响应,并带有
x-idempotent-replay: true。新创建的二维码则返回false。 - 处理中。 第一个请求仍在处理时发出的第二个请求会收到
409 conflict。 - 失败。 创建失败时会立即释放该键,因此您可以使用同一个键重试。
- 尽力而为。 如果这一保护机制不可用,创建请求会在无保护的情况下执行。
获取二维码
GET /api/v1/qrs/{qrId}
返回一个二维码,包括其短链接、访问规则、设计,以及(对于基于文件的类型)其文件。
string
必填
二维码的 ID,可从列表或创建接口的响应中获取。
更新二维码
PATCH /api/v1/qrs/{qrId}
更改二维码的内容、目标地址、设计或访问规则。只发送您要更改的字段。返回更新后的二维码。
string
必填
二维码的 ID。
templateId。 不接受。link。 部分更新。省略link.url时会保留当前目标地址。link.domain和link.key会返回422:已印刷的二维码编码的就是短链接,因此如需使用其他短链接,请创建新的二维码。data。 仅当data或qrType发生变化时,才会根据最终的类型进行校验。切换qrType但不提供匹配的data会被拒绝。请参阅切换类型。- 设计。
styles、frameOptions和logoOptions会合并到已保存的设计中,因此部分对象只会更改其中指定的内容。选择其他 Logo 会替换原 Logo,但保留其大小。 access。 每个键在发送时生效。null会清除对应规则。访问规则必须放在access下:放在link下会返回422。archived。 同时暂停或重新激活二维码及其短链接,效果与暂停和重新激活相同。
设置暂停状态
PUT /api/v1/qrs/{qrId}
直接设置暂停状态。暂停和重新激活的作用相同,而且语义更清晰。
string
必填
二维码的 ID。
boolean
必填
true 表示暂停二维码,false 表示重新激活。暂停二维码
POST /api/v1/qrs/{qrId}/pause
停止二维码跳转到目标地址:扫描会改为显示暂停页面。已印刷的二维码及其短链接仍然有效。无需请求体。
string
必填
二维码的 ID。
重新激活二维码
POST /api/v1/qrs/{qrId}/activate
让已暂停的二维码重新跳转到目标地址。已有的计划和扫描次数上限仍然适用。无需请求体。
string
必填
二维码的 ID。
复制二维码
POST /api/v1/qrs/{qrId}/duplicate
创建一个内容和设计都相同的副本。无需请求体。返回 201 Created 和新建的二维码。
string
必填
要复制的二维码的 ID。
- 短链接。 副本拥有自己的短链接,使用工作区默认域名(而不是源二维码的域名)上的随机路径。其扫描次数单独统计。
- 标题。 标题会加上
(Copy)后缀。结果不超过 40 个字符:过长的标题会先被截短。没有标题的二维码仍然没有标题。 - 不会复制的内容。 访问规则(密码、生效计划、扫描次数上限)和暂停状态。副本始终处于启用状态。
- 文件。 PDF 和图片文件(包括文件包和图库中的文件)会被复制,归副本所有。视频文件和设计文件(例如 Logo)则与源二维码共享。
删除二维码
DELETE /api/v1/qrs/{qrId}
删除二维码及其短链接。返回被删除的 ID。
string
必填
二维码的 ID。
string
被删除的二维码的 ID。
boolean
始终为
true。下载二维码图片
GET /api/v1/qrs/{qrId}/download
按二维码的设计进行渲染,并返回文件。
string
必填
要渲染的二维码的 ID,可从列表或创建接口的响应中获取。
string
默认值:"jpg"
输出格式:
jpg、png、svg、pdf(A4 页面)或 eps。Branded design 或 AI design 只能下载为 jpg、png 或 pdf。integer
默认值:"1024"
图片尺寸(像素):
1024、2048 或 4096。svg 和 pdf 会忽略该值。Branded design 或 AI design 只能以 1024 下载。- 响应体。 响应体就是文件本身。建议的文件名位于
Content-Disposition响应头中,根据标题生成;没有标题的二维码使用qr-code。 - 缓存。 响应带有
ETag和Cache-Control: private, max-age=3600, must-revalidate。在If-None-Match中回传ETag,即可在二维码未变化时获得304 Not Modified。 - 错误。 不支持的格式或分辨率会返回
400 bad_request。错误消息会注明原因:qr_download_invalid_format、qr_download_invalid_resolution、qr_download_art_format_unsupported或qr_download_art_resolution_unsupported。
访问规则
在创建或更新时发送access 对象,即可设置开始和结束时间、限制扫描次数或要求输入密码。省略的规则保持不变,null 会清除对应规则。完整的行为说明和示例请参阅访问规则。
设计对象
styles、frameOptions 和 logoOptions 用于设置点和定位角的形状、颜色、边框和 Logo。它们在二维码、模板和批量创建中的用法相同。未知的形状、边框或 Logo 会被拒绝。所有可接受的值和完整示例请参阅自定义设计。
常见问题
设置密码、生效计划或扫描次数上限时返回 422
设置密码、生效计划或扫描次数上限时返回 422
请将规则放在
access 下,而不是 link 下。更改 link.domain 或 link.key 时返回 422
更改 link.domain 或 link.key 时返回 422
短链接创建后无法更改,因为已印刷的二维码编码的就是它。请改为创建新的二维码。
422 "Expected … for qrType"
422 "Expected … for qrType"
data 与 qrType 的格式不匹配。请在各类型的二维码数据中查看该类型。创建二维码时返回 409 conflict
创建二维码时返回 409 conflict
相同的创建请求仍在处理中,或
link.key 已被占用。请等第一个请求完成后再重试。如果带有 Idempotency-Key,重试会返回原来的二维码。下载的是 JPEG 而不是 PNG
下载的是 JPEG 而不是 PNG
参数名为
format 和 resolution,并且 format 默认为 jpg。请发送 format=png。控制台中能看到的二维码返回 404
控制台中能看到的二维码返回 404
每个请求都在 API 密钥所属的工作区中执行。请确认该二维码属于这个工作区。请参阅身份验证。