Practical Tools
QR Code API (bulk, image/logo support)
5.0 (1)

QR Code API (bulk, image/logo support)

API to generate QR codes with various customization options including colors and custom logo/image. Supports bulk generation, multiple formats (PNG/SVG), and automatic error correction.

Run on Apify

$4.99 per 1,000 results (i.e. $0.00499 per QR code) (pay-per-result)

QR Code Generator Actor

An Apify Actor that generates customizable QR codes with support for bulk generation, custom styling, and logo overlays.

Features

  • ✅ Generate QR codes for URLs, text, WiFi credentials, or any string content
  • Bulk generation - Generate multiple QR codes in a single run
  • Custom colors - Customize dark and light module colors
  • Multiple formats - Output as PNG (base64 data URL) or SVG
  • Logo overlay - Add your brand logo to the center of QR codes
  • Error correction - Automatic high error correction when using logos
  • Flexible sizing - Customize QR code and logo dimensions

Input

The Actor accepts the following input parameters:

Parameter Type Required Description Default
content array List of strings to encode as QR codes (URLs, text, etc.) ["https://example.com"]
format string Output format: png or svg png
size integer Width and height of the QR code in pixels (50-2000) 300
colorDark string Color of dark modules (hex format) #000000
colorLight string Color of light modules (hex format) #ffffff
errorCorrectionLevel string Error correction level: L (7%), M (15%), Q (25%), or H (30%) M (auto H with logo)
logoUrl string URL of a logo image to overlay on the QR code -
logoWidth integer Logo width in pixels (defaults to 15% of QR code size) -
logoHeight integer Logo height in pixels (defaults to 15% of QR code size) -

Input Example

{
  "content": [
    "https://example.com",
    "https://apify.com",
    "mailto:hello@example.com"
  ],
  "format": "png",
  "size": 400,
  "colorDark": "#1a237e",
  "colorLight": "#e8eaf6",
  "errorCorrectionLevel": "H",
  "logoUrl": "https://example.com/logo.png",
  "logoWidth": 60,
  "logoHeight": 60
}

Output

The Actor saves results to the default dataset. Each item in the output contains:

Field Type Description
originalContent string The original input content that was encoded
qrCodeDataUrl string Base64-encoded PNG data URL (when format is png)
qrCodeSvg string SVG markup string (when format is svg)

Output Example

[
  {
    "originalContent": "https://example.com",
    "qrCodeDataUrl": "data:image/png;base64,iVBORw0KGgoAAAANS..."
  },
  {
    "originalContent": "https://apify.com",
    "qrCodeDataUrl": "data:image/png;base64,iVBORw0KGgoAAAANS..."
  }
]

Usage Tips

Logo Overlay

When using a logo overlay:

  • The error correction level is automatically set to H (High - 30%) for better scannability
  • Logos are automatically sized to 15% of the QR code dimensions (customizable via logoWidth/logoHeight)
  • A white background is added around the logo for better contrast
  • Supported logo formats: PNG, JPG, SVG

Error Correction Levels

  • L (Low) - ~7% error resistance - Best for clean, controlled environments
  • M (Medium) - ~15% error resistance - Good general-purpose level
  • Q (Quartile) - ~25% error resistance - Better for outdoor use
  • H (High) - ~30% error resistance - Required for logos, best for damaged/dirty conditions

Bulk Generation

To generate multiple QR codes in one run, simply add multiple strings to the content array:

{
  "content": [
    "https://example.com/product1",
    "https://example.com/product2",
    "https://example.com/product3"
  ]
}

Each QR code will be saved as a separate item in the dataset with its originalContent for easy identification.

This reads input from storage/key_value_stores/default/INPUT.json and saves output to storage/datasets/default/.

Resources