Qr Code Generator avatar

Qr Code Generator

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Qr Code Generator

Qr Code Generator

Generate your Custom QR Code From 1$/1000. PNG & SVG output, 9 style presets (rounded, dots, neon, elegant…), custom label & logo overlay, Wi-Fi/vCard/URL payloads. Batch mode, ZIP download, REST API & Standby. No watermark.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(1)

Developer

Alexandre Manguis

Alexandre Manguis

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

QR Code Studio

Generate stylish, branded QR codes from URLs, WiFi credentials, vCards, emails, SMS, phone numbers, geo links, and calendar events. Export as PNG, SVG, or a ready-to-use ZIP archive. Run as a standard Actor run or as a persistent Standby HTTP API.


Style presets

9 ready-to-use visual styles — no design skills required.

QR Code Style Previews

PresetLook
classicBlack and white, square modules
roundedDark, soft rounded corners
dotsCircular dots with circular eyes
elegantSubtle rounded modules on a light grey background
neonCyan on dark navy, green eyes
softWarm yellow background, teal modules, red eyes
invertedWhite modules on a dark background
terminalGreen on black, monospace feel
brandBlue modules on white, brand-ready

Payload types

TypeWhat it encodes
rawAny plain text or URL as-is
urlURL with optional https:// normalization
wifiWiFi network credentials (SSID, password, encryption)
vcardContact card (name, phone, email, website, company)
emailPre-filled email with recipient, subject, and body
smsPre-filled SMS with phone number and message
phoneDirect phone dial link
geoGPS coordinates and optional altitude
eventiCalendar event (title, start, end, location, description)

Quick start

Single QR code — URL

{
"content": "https://apify.com",
"size": 512,
"format": "png",
"stylePreset": "rounded"
}

With a logo and label

{
"content": "https://apify.com",
"size": 768,
"format": "both",
"stylePreset": "elegant",
"logoUrl": "https://cdn.apify.com/apify_favicon.png",
"label": "Scan me",
"labelPosition": "bottom"
}

WiFi credentials

{
"payloadType": "wifi",
"payload": {
"ssid": "Guest WiFi",
"password": "change-me",
"encryption": "WPA",
"hidden": false
},
"stylePreset": "soft",
"size": 512
}

vCard contact

{
"payloadType": "vcard",
"payload": {
"fullName": "Jane Doe",
"organization": "Acme Corp",
"title": "Founder",
"phone": "+33123456789",
"email": "jane@acme.com",
"url": "https://acme.com"
},
"stylePreset": "brand"
}

Batch — multiple QR codes in one run

{
"size": 768,
"format": "both",
"zipOutput": true,
"requests": [
{ "name": "website", "content": "https://acme.com", "stylePreset": "rounded" },
{ "name": "wifi", "payloadType": "wifi", "payload": { "ssid": "Office", "password": "secret", "encryption": "WPA" }, "stylePreset": "dots" },
{ "name": "contact", "payloadType": "vcard", "payload": { "fullName": "Jane Doe", "phone": "+33123456789", "email": "jane@acme.com" }, "stylePreset": "brand" }
]
}

Input fields

FieldTypeDefaultDescription
contentstringText or URL to encode.
requestsarrayBatch mode — one QR code per item; each item can override any field.
payloadTypestringrawraw, url, wifi, vcard, email, sms, phone, geo, or event.
payloadobjectStructured payload for non-raw types.
formatstringpngpng, svg, both, dataUrl, or json.
sizeinteger512Output size in pixels (width and height).
margininteger4Quiet zone width. Keep 4 for best scanner compatibility.
errorCorrectionLevelstringHL, M, Q, or H. Use H with a logo.
stylePresetstringroundedOne of the 9 style presets listed above.
foregroundColorstringpresetModule color. Hex recommended.
backgroundColorstringpresetBackground color.
transparentBackgroundbooleanfalseTransparent background (PNG/SVG).
moduleStylestringpresetsquare, rounded, or dots.
eyeStylestringpresetsquare, rounded, or circle.
logoUrlstringPublic image URL for a center logo.
logoBase64stringBase64 or data URL logo.
logoSizeRationumber0.2Logo size relative to QR size (0.08–0.32).
logoBackgroundColorstringColor behind the logo (improves contrast).
labelstringShort text above or below the QR code.
labelPositionstringbottomtop or bottom.
labelFontSizeintegerautoFont size for the label in pixels.
storeFilesbooleantrueSave PNG/SVG files to the key-value store.
includeBase64booleanfalseEmbed data URLs directly in dataset rows.
zipOutputbooleantrueBundle all files into a QR_CODES_ZIP archive.
zipFilenamestringautoCustom ZIP archive filename.
filenamePrefixstringqrPrefix for all generated filenames.
normalizeUrlbooleantrueAuto-add https:// to bare domains.
failOnErrorbooleanfalseStop the run on the first error (default: log and continue).

Output

Dataset item (one row per QR code)

{
"success": true,
"index": 0,
"requestId": "website",
"content": "https://acme.com",
"payloadType": "raw",
"formats": ["png", "svg"],
"size": 768,
"width": 768,
"height": 820,
"stylePreset": "rounded",
"pngFileName": "qr-0001-website.png",
"pngUrl": "https://api.apify.com/v2/key-value-stores/.../records/...",
"svgFileName": "qr-0001-website.svg",
"svgUrl": "https://api.apify.com/v2/key-value-stores/.../records/...",
"generatedAt": "2026-01-01T12:00:00.000Z"
}

Key-value store records

KeyContent
QR_0001_...Individual PNG or SVG file
OUTPUTJSON summary with total count and per-item status
QR_CODES_ZIPZIP archive with all generated files (when enabled)

Standby HTTP API

When run in Standby mode, the Actor exposes a persistent HTTP endpoint. Useful for integrations that need on-demand QR codes without running a full Actor job.

Get an image directly

$curl "https://YOUR-STANDBY-URL/qr?content=https%3A%2F%2Fapify.com&format=png&stylePreset=rounded" --output qr.png

Get a JSON response

curl -X POST "https://YOUR-STANDBY-URL/generate" \
-H "Content-Type: application/json" \
-d '{"content":"https://apify.com","format":"both","stylePreset":"brand"}'

Batch endpoint

curl -X POST "https://YOUR-STANDBY-URL/batch" \
-H "Content-Type: application/json" \
-d '{"requests":[{"content":"https://apify.com"},{"content":"Hello"}]}'

Client examples

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('YOUR_USERNAME/qr-code-studio').call({
content: 'https://apify.com',
size: 512,
format: 'both',
stylePreset: 'rounded',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].pngUrl);

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR_USERNAME/qr-code-studio").call(run_input={
"content": "https://apify.com",
"size": 512,
"format": "both",
"stylePreset": "rounded",
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["pngUrl"])

Production tips

  • Use errorCorrectionLevel: "H" whenever you embed a logo — it allows the QR to remain scannable even with the logo covering part of the data.
  • Keep margin at 4 unless your design guarantees enough quiet zone around the code.
  • Always test transparent and custom-color QR codes with multiple phone cameras before printing.
  • For bulk runs, use storeFiles: true and zipOutput: true to download all files in one archive.
  • In batch mode, set name on each request for readable filenames and dataset rows.

Keywords

qr code generator, qr code apify, bulk qr codes, batch qr code, branded qr code, stylish qr code, qr code with logo, qr code png, qr code svg, qr code wifi, qr code vcard, qr code contact, qr code email, qr code sms, qr code geo, qr code calendar, qr code api, standby api, qr code zip, qr code dataset, qr code automation, qr code no-code, apify actor