Retrieve QR Code
Retrieve one QR code by id.
target.editable tells you whether the code can be re-pointed through
PATCH /v1/qr-codes/{id}. Codes authored in the QRKit dashboard — link
pages, forms, menus, app-store and smart-URL codes, and uploaded
file/audio/video codes — report editable: false; their
target.destination is the public hosted page URL (the same value
as short_url) rather than the stored document or file key, and
linkpage, form and menupage additionally carry a small
target.summary.
Authorizations
API key in the Authorization header: Bearer qr_live_… or Bearer qr_test_…. Token endpoints take a Clerk session JWT instead.
Path Parameters
qr_… (dynamic) or sqr_… (static).
Response
The QR code
qr_… for dynamic, sqr_… for static.
"qr_123"
"qr_code"
dynamic, static The stored type: any target.type the API creates (a review is stored as linkpage), gs1, or a dashboard-only type such as file, menupage, form or smarturl. Treat unknown values as opaque.
"url"
"AB3D5"
null for static codes. On the workspace custom domain when the code was created on one. For a dynamic GS1 code this is the Digital Link URI itself, not <host>/<short_code>.
"https://qrkit.to/AB3D5"
The custom domain short_url is on, or null for the default host (and for static codes).
"dom_3"
Present on GS1 codes only. The identifier half is READ-ONLY (R4 — it is
printed); links and overrides are the editable half.
"fld_12"
"https://img.useqrkit.com/qr-AB3D5-1717000000000.svg"
"/v1/qr-codes/qr_123/download"
Dynamic codes: whether the redirect is on. Static codes: false while the code is in the Trash (the printed payload itself keeps working).
null for static codes (no tracking).
UTM parameters (null unless set on a dynamic url code).
null for a live code. Set while the code is in the Trash (or paused by a plan downgrade); restore it with POST /v1/qr-codes/{id}/restore.

