Skip to content

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.