QR Code Factory avatar

QR Code Factory

Pricing

$5.00/month + usage

Go to Apify Store
QR Code Factory

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

Web Harvester

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

๐Ÿ“ฑ Generate beautiful QR codes or decode existing ones. Batch processing, custom colors, multiple formats. No ads, no limits, no tracking.

Apify Actor License: MIT

๐ŸŽฏ 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 CaseExample
MarketingQR codes linking to landing pages
WiFi SharingEncode network credentials
Event TicketsGenerate unique ticket codes
Product LabelsLink to product information
Business CardsvCard contact information
InventoryAsset tracking codes
PaymentsPayment 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

ParameterTypeDefaultDescription
contentsarray-Strings to encode as QR codes
sizeinteger400Image size in pixels (100-2000)
formatstringpngOutput format: png or svg
errorCorrectionstringMError correction: L/M/Q/H
darkColorstring#000000QR module color (hex)
lightColorstring#FFFFFFBackground color (hex)

Error Correction Levels

LevelRecoveryBest For
L~7%Maximum data capacity
M~15%General use (default)
Q~25%Light damage tolerance
H~30%Logos/heavy damage

Read Options

ParameterTypeDescription
imageFilestringUpload image directly
imageUrlsarrayURLs 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;;

Email

mailto:email@example.com?subject=Hello

Phone

tel:+1234567890

SMS

sms:+1234567890?body=Hello

vCard Contact

BEGIN:VCARD
VERSION:3.0
FN:John Doe
ORG:Company
TEL:+1234567890
EMAIL:john@example.com
END:VCARD

Calendar Event

BEGIN:VEVENT
SUMMARY:Meeting
DTSTART:20240115T100000Z
DTEND:20240115T110000Z
END:VEVENT

๐Ÿš€ Quick Start

Using Apify Console

  1. Select mode: generate or read
  2. Enter content or upload images
  3. Configure options
  4. Click Start
  5. Download from Key-Value Store

Using API

# Generate QR codes
curl -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 codes
curl -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 codes
const 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 ApifyClient
client = ApifyClient('YOUR_TOKEN')
# Generate QR codes
run = 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().items
for item in items:
print(f"Download: {item['qrCode']}")

๐Ÿ’ก Advanced: Batch Generation

Generate hundreds of unique QR codes:

const products = await fetchProducts(); // Your product list
const 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 codes
const { items } = await client.dataset(run.defaultDatasetId).listItems();

๐Ÿ’ฐ Cost Estimation

QR CodesApprox. TimeCompute 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 size for print materials
  • Use H error 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.