QR codes
Base route: /api/v1/qr-codes
| Method | Route | Scope | Purpose |
|---|---|---|---|
GET |
/api/v1/qr-codes |
qr:read |
List and filter campaigns. |
GET |
/api/v1/qr-codes/{id} |
qr:read |
Retrieve one campaign and its SVG. |
POST |
/api/v1/qr-codes |
qr:write |
Create a static or dynamic campaign. |
PUT |
/api/v1/qr-codes/{id} |
qr:write |
Update name, content, and design. |
PUT |
/api/v1/qr-codes/{id}/status |
qr:write |
Activate or pause a campaign. |
GET |
/api/v1/qr-codes/{id}/download?format=png |
qr:read |
Download png or svg. |
DELETE |
/api/v1/qr-codes/{id} |
qr:delete |
Soft-delete a campaign so it is no longer available. |
POST |
/api/v1/qr-assets |
qr:write |
Upload an inspected image or passive PDF before creating a paperless page. |
DELETE |
/api/v1/qr-assets/{id} |
qr:write |
Remove an upload that has not yet been attached to a QR. |
Create example
{
"name": "Autumn landing page",
"mode": "Dynamic",
"payloadType": "Url",
"content": "https://example.com/autumn",
"style": {
"templateCode": "QRalto",
"experienceTemplateCode": "None",
"foregroundColor": "#102A2A",
"secondaryColor": "#357466",
"backgroundColor": "#FFFFFF",
"frameColor": "#102A2A",
"moduleShape": "Rounded",
"eyeFrameShape": "Rounded",
"eyeBallShape": "Rounded",
"frameStyle": "None",
"centerBadge": "None",
"errorCorrection": "Quartile",
"drawQuietZones": true,
"pixelsPerModule": 16
}
}
Dynamic QR codes encode the QRalto redirect address. A successful scan records analytics and then redirects to the current destination. Static codes encode their content directly and cannot provide redirect analytics.
Hosted paperless pages use the Menu, Document, or Memory payload types and must be Dynamic. See Paperless pages for the secure upload-first workflow and JSON payloads.