QR Code Factory
Pricing
$5.00/month + usage
QR Code Factory
Generate and read QR codes at scale. Create custom QR codes from URLs, text, WiFi credentials, vCards. Decode QR codes from images. Batch processing, custom colors, PNG/SVG output, configurable error correction. No ads, no limits, full API access.
Pricing
$5.00/month + usage
Rating
0.0
(0)
Developer

Web Harvester
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
๐ฑ Generate beautiful QR codes or decode existing ones. Batch processing, custom colors, multiple formats. No ads, no limits, no tracking.
๐ฏ What This Actor Does
A complete QR code solution with two modes:
Generate Mode
- Create QR codes from text, URLs, WiFi credentials, or any data
- Customize colors, size, and error correction level
- Output as PNG or SVG
- Batch generate hundreds of QR codes at once
Read Mode
- Decode QR codes from uploaded images
- Decode from image URLs
- Extract embedded data, links, or text
๐ Use Cases
| Use Case | Example |
|---|---|
| Marketing | QR codes linking to landing pages |
| WiFi Sharing | Encode network credentials |
| Event Tickets | Generate unique ticket codes |
| Product Labels | Link to product information |
| Business Cards | vCard contact information |
| Inventory | Asset tracking codes |
| Payments | Payment links and crypto addresses |
๐ฅ Input Examples
Generate QR Codes
{"mode": "generate","contents": ["https://apify.com","WIFI:T:WPA;S:MyNetwork;P:MyPassword;;","mailto:hello@example.com"],"size": 400,"format": "png","errorCorrection": "M","darkColor": "#000000","lightColor": "#FFFFFF"}
Read/Decode QR Codes
{"mode": "read","imageUrls": ["https://example.com/qr-code.png"]}
โ๏ธ Configuration
Generate Options
| Parameter | Type | Default | Description |
|---|---|---|---|
contents | array | - | Strings to encode as QR codes |
size | integer | 400 | Image size in pixels (100-2000) |
format | string | png | Output format: png or svg |
errorCorrection | string | M | Error correction: L/M/Q/H |
darkColor | string | #000000 | QR module color (hex) |
lightColor | string | #FFFFFF | Background color (hex) |
Error Correction Levels
| Level | Recovery | Best For |
|---|---|---|
| L | ~7% | Maximum data capacity |
| M | ~15% | General use (default) |
| Q | ~25% | Light damage tolerance |
| H | ~30% | Logos/heavy damage |
Read Options
| Parameter | Type | Description |
|---|---|---|
imageFile | string | Upload image directly |
imageUrls | array | URLs to images containing QR codes |
๐ค Output
Generate Mode
{"mode": "generate","input": "https://apify.com","qrCode": "https://api.apify.com/v2/key-value-stores/.../records/qr-abc123.png","format": "png","size": 400,"status": "success","createdAt": "2024-01-15T10:30:00.000Z"}
Read Mode
{"mode": "read","input": "https://example.com/qr.png","decodedContent": "https://apify.com","status": "success","readAt": "2024-01-15T10:30:00.000Z"}
๐จ QR Code Data Types
URL
https://example.com
WiFi Network
WIFI:T:WPA;S:NetworkName;P:Password;;
mailto:email@example.com?subject=Hello
Phone
tel:+1234567890
SMS
sms:+1234567890?body=Hello
vCard Contact
BEGIN:VCARDVERSION:3.0FN:John DoeORG:CompanyTEL:+1234567890EMAIL:john@example.comEND:VCARD
Calendar Event
BEGIN:VEVENTSUMMARY:MeetingDTSTART:20240115T100000ZDTEND:20240115T110000ZEND:VEVENT
๐ Quick Start
Using Apify Console
- Select mode:
generateorread - Enter content or upload images
- Configure options
- Click Start
- Download from Key-Value Store
Using API
# Generate QR codescurl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~qr-code-factory/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "generate","contents": ["https://example.com"],"size": 500}'# Read QR codescurl -X POST "https://api.apify.com/v2/acts/YOUR_USERNAME~qr-code-factory/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"mode": "read","imageUrls": ["https://example.com/qr.png"]}'
Using JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });// Generate QR codesconst run = await client.actor('YOUR_USERNAME/qr-code-factory').call({mode: 'generate',contents: ['https://my-website.com','https://my-app.com/download'],size: 600,darkColor: '#1a365d',lightColor: '#ffffff'});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const item of items) {console.log(`QR for ${item.input}: ${item.qrCode}`);}
Using Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')# Generate QR codesrun = client.actor('YOUR_USERNAME/qr-code-factory').call(run_input={'mode': 'generate','contents': ['https://example.com'],'size': 400})items = client.dataset(run['defaultDatasetId']).list_items().itemsfor item in items:print(f"Download: {item['qrCode']}")
๐ก Advanced: Batch Generation
Generate hundreds of unique QR codes:
const products = await fetchProducts(); // Your product listconst run = await client.actor('YOUR_USERNAME/qr-code-factory').call({mode: 'generate',contents: products.map(p => `https://mystore.com/product/${p.id}`),size: 300,errorCorrection: 'H' // High for printing});// Download all QR codesconst { items } = await client.dataset(run.defaultDatasetId).listItems();
๐ฐ Cost Estimation
| QR Codes | Approx. Time | Compute Units |
|---|---|---|
| 10 | ~5 seconds | ~0.002 |
| 100 | ~20 seconds | ~0.01 |
| 1,000 | ~2 minutes | ~0.08 |
๐ง Technical Details
- Node.js: 22.x
- Libraries: qrcode, jsQR, sharp
- Max Size: 2000x2000 pixels
- Memory: 256MB-512MB
โ FAQ
What's the maximum content length?
QR codes can store up to 4,296 alphanumeric characters, but ~500 is practical for reliable scanning.
Can I add a logo to the QR code?
Not directly in this Actor. Generate with H error correction, then overlay a logo covering up to 30% of the center.
Why isn't my QR code scanning?
- Increase
sizefor print materials - Use
Herror correction for durability - Ensure sufficient contrast between colors
What image formats can be read?
PNG, JPEG, WebP, and most common formats supported by Sharp.
๐ License
MIT License - see LICENSE for details.