Skip to main content

QR Codes Module

Dynamic QR codes and barcode generation with scan analytics.

Base URL: https://app.proign.com/[tenant]/qr/api

Public API: https://app.proign.com/api/v1 (API Key required)

Overview

The QR module enables you to create dynamic QR codes that can be updated after printing, track scan analytics, and integrate with other PROIGN modules for product registration, warranty activation, and marketing campaigns.

Features

  • Dynamic QR Codes - Update destination URLs without reprinting
  • Scan Analytics - Track scans by location, device, and time
  • Custom Design - Brand QR codes with logos, colors, and shapes
  • Batch Generation - Create thousands of unique codes via CSV import
  • Templates - Save and reuse design settings
  • Folders - Organize QR codes into hierarchical folders
  • Short URLs - Custom domains for branded short links
  • Barcodes - Generate Code128, EAN-13, UPC-A and more

API Endpoints

QR Code Management

GET    /api/[tenant]/qr                    # List QR codes
POST   /api/[tenant]/qr                    # Create QR code
GET    /api/[tenant]/qr/[id]               # Get QR details
PATCH  /api/[tenant]/qr/[id]               # Update QR code
DELETE /api/[tenant]/qr/[id]               # Delete QR code
PATCH  /api/[tenant]/qr/[id]/destination   # Update destination URL
GET    /api/[tenant]/qr/[id]/download      # Download as PNG/SVG/PDF
POST   /api/[tenant]/qr/preview            # Preview without saving

Analytics

GET    /api/[tenant]/qr/[id]/analytics     # Single QR analytics
GET    /api/[tenant]/analytics             # Dashboard overview
GET    /api/[tenant]/analytics/realtime    # Real-time scan data
GET    /api/[tenant]/analytics/export      # Export as CSV/JSON

Templates & Folders

GET    /api/[tenant]/templates             # List templates
POST   /api/[tenant]/templates             # Create template
PATCH  /api/[tenant]/templates/[id]        # Update template
DELETE /api/[tenant]/templates/[id]        # Delete template
POST   /api/[tenant]/templates/[id]/apply  # Apply to QR codes

GET    /api/[tenant]/folders               # List folders
POST   /api/[tenant]/folders               # Create folder
PATCH  /api/[tenant]/folders/[id]          # Update folder
DELETE /api/[tenant]/folders/[id]          # Delete folder

Barcodes

GET    /api/[tenant]/barcode               # List barcodes
POST   /api/[tenant]/barcode               # Create barcode
GET    /api/[tenant]/barcode/[id]          # Get barcode (or image)
DELETE /api/[tenant]/barcode/[id]          # Delete barcode

Batch Operations

GET    /api/[tenant]/batch                 # List batch jobs
GET    /api/[tenant]/batch?template=qr     # Download CSV template
POST   /api/[tenant]/batch                 # Create batch job (CSV upload)
GET    /api/[tenant]/batch/[id]            # Get job status
GET    /api/[tenant]/batch/[id]?download=true  # Download results ZIP
DELETE /api/[tenant]/batch/[id]            # Delete batch job

Settings & Configuration

GET    /api/[tenant]/settings              # Get tenant settings
PATCH  /api/[tenant]/settings              # Update settings
GET    /api/[tenant]/logo                  # List uploaded logos
POST   /api/[tenant]/logo                  # Upload logo
GET    /api/[tenant]/logo/[id]/image       # Get logo image
GET    /api/[tenant]/domains               # List custom domains
POST   /api/[tenant]/domains               # Add domain
DELETE /api/[tenant]/domains/[id]          # Remove domain
GET    /api/[tenant]/api-keys              # List API keys
POST   /api/[tenant]/api-keys              # Create API key
DELETE /api/[tenant]/api-keys/[id]         # Revoke API key

Public API (v1)

External integrations can use the Public API with Bearer token authentication:

# Header: Authorization: Bearer prgn_xxxxx

GET    /api/v1/qr                          # List QR codes
POST   /api/v1/qr                          # Create QR code
GET    /api/v1/qr/[id]                     # Get QR details
PATCH  /api/v1/qr/[id]                     # Update QR code
DELETE /api/v1/qr/[id]                     # Delete QR code
GET    /api/v1/qr/[id]/analytics           # Get analytics

Request Examples

Create QR Code

POST /api/[tenant]/qr
Content-Type: application/json

{
  "name": "Product Landing Page",
  "destination_url": "https://example.com/product/123",
  "type": "dynamic",
  "design_settings": {
    "size": 1024,
    "errorCorrection": "M",
    "color": {
      "dark": "#000000",
      "light": "#FFFFFF"
    },
    "logo": {
      "enabled": true,
      "imageData": "data:image/png;base64,...",
      "size": 0.25
    }
  },
  "folder_id": "folder_abc123",
  "tags": ["product", "marketing"]
}

Response

{
  "qr_code": {
    "id": "qr_abc123def456",
    "name": "Product Landing Page",
    "type": "dynamic",
    "short_code": "Abc12xyz",
    "destination_url": "https://example.com/product/123",
    "status": "active",
    "scan_count": 0,
    "design_settings": { ... },
    "created_at": "2026-01-11T10:00:00Z"
  },
  "short_url": "https://prgn.cc/Abc12xyz"
}

Query Parameters

ParameterTypeDescription
statusstringFilter: active, paused, archived
folder_idstringFilter by folder (use 'null' for root)
searchstringSearch in name
limitnumberItems per page (default: 50, max: 100)
offsetnumberPagination offset
sort_bystringSort field: created_at, name, scan_count

Download Formats

Use query parameters with /api/[tenant]/qr/[id]/download:

ParameterValuesDescription
formatpng, svg, pdfOutput format (default: png)
size100-4096PNG size in pixels (default: 1024)
page_sizea4, letterPDF page size (default: a4)
include_labeltrue, falseInclude label in PDF (default: true)

Integration with Other Modules

  • Aftersale - QR codes for warranty registration
  • Support - Pre-filled support ticket creation
  • Campaign - Track marketing campaign scans
  • Docs - Link to product documentation
  • Analytics - Aggregate QR scan data

Rate Limits

Endpoint TypeLimit
Read operations (GET)100 requests/minute
Write operations (POST/PATCH)30 requests/minute
Public API (v1)Configurable per API key

Related