QR Code API (bulk, image/logo support)
Pricing
$4.99 / 1,000 results
QR Code API (bulk, image/logo support)
$0.004 API to generate QR codes with various customization options including colors and custom logo / image.
Pricing
$4.99 / 1,000 results
Rating
5.0
(1)
Developer

Practical Tools
Actor stats
0
Bookmarked
5
Total users
0
Monthly active users
a month ago
Last modified
Categories
Share
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/.

