Create Stunning QR Codes
with Pixel-Perfect Control
The most powerful QR code generation API. Design branded, artistic QR codes with custom shapes, gradients, logos, frames, and text overlays. Export in 4K resolution.
✨ Key Features
🎯 Use Cases
🚀 Quick Start
Generate your first branded QR code in seconds. Copy the example below:
curl -X POST "https://qr-branding-api.p.rapidapi.com/api/qr/generate" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{
"content": "https://mywebsite.com",
"moduleShape": "circle",
"primaryColor": "#6366f1"
}'
content field is required. All other parameters have sensible defaults. Start simple and add customizations as needed.
🔐 Authentication
This API is accessed through RapidAPI. All authentication is handled automatically by RapidAPI when you subscribe to the API.
X-RapidAPI-Key: YOUR_RAPIDAPI_KEY X-RapidAPI-Host: qr-branding-api.p.rapidapi.com
Generate Custom QR
The primary endpoint. Send a JSON configuration object to generate a fully customized QR code image. Returns a Base64-encoded image.
Complete Example Request
This example showcases all available customization options:
{
// === REQUIRED ===
"content": "https://mybrand.com",
// === OUTPUT SETTINGS ===
"eccLevel": "H",
"pixelsPerModule": 20,
"quietZone": true,
"outputWidth": 1024,
"outputHeight": 1024,
"fileFormat": "png",
"responseType": "base64",
// === QR SHAPE (MASK) ===
"qrShape": "circle",
"qrShapeRadius": 0,
// === COLORS & GRADIENTS ===
"primaryColor": "#6366f1",
"secondaryColor": "#ec4899",
"foregroundStyle": "linearGradient",
"gradientType": "linear",
"gradientDirection": "diagonal",
"gradientAngle": 45,
"gradientColors": ["#FF0000", "#00FF00", "#0000FF"],
"gradientOnEyes": false,
"backgroundColor": "#ffffff",
"transparentBackground": false,
// === MODULE SHAPES & PATTERNS ===
"moduleShape": "circle",
"moduleScale": 0.85,
"moduleRotation": 0,
"moduleStyle": "solid",
"moduleOutlineWidth": 2,
"modulePattern": "standard",
"moduleSizeVariation": 0,
// === FINDER PATTERNS (EYES) ===
"finderOuterShape": "circle",
"finderInnerShape": "circle",
"finderOuterColor": "#6366f1",
"finderInnerColor": "#ec4899",
"finderBorderRadius": 10,
"finderInnerScale": 0.43,
"finderStyle": "concentric-circles",
"finderConcentricRings": 3,
"finderInnerPattern": "none",
// Individual Eye Overrides
"eye1": {
"outerShape": "circle",
"innerShape": "circle",
"outerColor": "#6366f1",
"innerColor": "#ec4899",
"rotation": 0
},
"eye2": null,
"eye3": null,
// === FRAME ===
"frame": {
"enabled": true,
"shape": "speechbubble",
"color": "#1e3a5f",
"secondaryColor": "#4cc9f0",
"gradientType": "linear",
"fillColor": "#f8fafc",
"width": 8,
"cornerRadius": 25,
"style": "solid",
"padding": 20,
"speechBubbleDirection": "bottom",
"speechBubbleSize": 20
},
// === LOGO ===
"logoUrl": "https://example.com/logo.png",
"logoShape": "circle",
"logoBorderWidth": 3,
"logoBorderColor": "#ffffff",
"cleanBehindLogo": true,
"logoSizePercent": 18,
"logoPadding": 5,
"logoShadow": true,
"logoBackground": "solid",
"logoBackgroundColor": "#ffffff",
// === VISUAL EFFECTS ===
"effects": {
"shadow": true,
"shadowColor": "#00000040",
"shadowOffsetX": 5,
"shadowOffsetY": 5,
"shadowBlur": 10,
"glow": false,
"glowColor": "#00FF00",
"glowIntensity": 10,
"glowRadius": 15,
"edgeFade": false,
"edgeFadePercent": 25,
"edgeFadeType": "size",
"emboss": false,
"embossDepth": 3,
"noise": false,
"noiseIntensity": 0.1
},
// === CIRCULAR TEXT ===
"circularText": {
"topText": "SCAN ME",
"bottomText": "MY BRAND",
"color": "#000000",
"fontSize": 20,
"bold": true,
"letterSpacing": 5,
"margin": 10,
"radius": 0
},
// === SCAN CORNERS ===
"scanCorners": {
"enabled": true,
"color": "#6366f1",
"style": "brackets",
"length": 15,
"thickness": 3,
"offset": 10
},
// === CENTER TEXT STRIP ===
"centerText": {
"text": "BRAND",
"color": "#000000",
"backgroundColor": "#ffffff",
"backgroundOpacity": 1.0,
"orientation": "horizontal",
"height": 40,
"fontSize": 16,
"bold": true
},
// === CTA TEXT ===
"ctaText": "SCAN ME",
"ctaColor": "#000000",
"ctaFontSize": 24,
"ctaPosition": "bottom",
"ctaFontFamily": null
}
content is required. All other parameters have sensible defaults. Include only what you want to customize.
Response (Base64 Mode)
When responseType: "base64" (default), you receive a JSON response:
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 24680
}
Response Fields
| Field | Type | Description |
|---|---|---|
| success | bool | Whether the generation succeeded |
| qrBase64 | string | Base64-encoded file data |
| format | string | File extension (png, jpg, svg, pdf, etc.) |
| contentType | string | MIME type for the file |
| sizeBytes | int | File size in bytes |
Response (Binary Mode)
When responseType: "binary", you receive the file directly:
// Binary file data returned directly // Content-Disposition: attachment; filename="qrcode.png" // Content-Type: image/png (or image/svg+xml, application/pdf, etc.)
<img> tag:
<img src="data:{contentType};base64,{qrBase64}" />
responseType: "binary", the response is a direct file download. In JavaScript, handle it as a Blob:
const blob = await response.blob();
Example: Download PDF
curl -X POST "https://qr-branding-api.p.rapidapi.com/api/qr/generate" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{
"content": "https://mywebsite.com",
"fileFormat": "pdf",
"responseType": "binary",
"moduleShape": "circle",
"primaryColor": "#6366f1"
}' --output qrcode.pdf
Example: Get SVG as Base64
curl -X POST "https://qr-branding-api.p.rapidapi.com/api/qr/generate" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{
"content": "https://mywebsite.com",
"fileFormat": "svg",
"responseType": "base64",
"primaryColor": "#f72585"
}'
📤 Multipart Logo Upload
Instead of using logoUrl or logoBase64, you can upload your logo directly as a binary file using multipart/form-data. This is ideal when your logo isn't publicly accessible.
Multipart Request Structure
| Field | Type | Description |
|---|---|---|
| config REQ | text (JSON string) | The complete QR configuration as a JSON string |
| logoFile | file (binary) | Logo image file (PNG, JPG, etc.). Takes priority over logoUrl/logoBase64 |
cURL Example
curl -X POST "https://qr-branding-api.p.rapidapi.com/api/qr/generate" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com" \
-F 'config={"content":"https://mysite.com","moduleShape":"circle","primaryColor":"#f72585"}' \
-F "logoFile=@/path/to/logo.png"
📦 Basic Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| content REQ | string | — | The data to encode. Can be any text: URLs, WiFi strings, vCards, plain text, etc. |
| eccLevel | string | "H" |
Error correction level. Higher levels allow more damage/obstruction.
L
M
Q
H
|
| pixelsPerModule | int | 20 | Base resolution. Higher = sharper. Range: 5-100 |
| quietZone | bool | true | Add a white margin (4 modules) around the QR for better scanning. |
📐 Output & Resolution
Control the final image size, format, and response type for different use cases.
| Parameter | Type | Default | Description |
|---|---|---|---|
| outputWidth | int | 0 | Final image width in pixels. Use 3840 for 4K. 0 = auto (based on pixelsPerModule). |
| outputHeight | int | 0 | Final image height in pixels. Usually equals outputWidth for square QRs. 0 = auto. |
| fileFormat | string | "png" |
Output image/document format.
png
jpg
jpeg
webp
bmp
gif
tiff
svg
pdf
|
| responseType | string | "base64" |
How to receive the generated QR code.
base64
binary
|
Response Types Explained
| Type | Response | Use Case |
|---|---|---|
| base64 | JSON with Base64-encoded image string | Web apps, embedding in HTML, storing in databases |
| binary | Direct file download (PNG, SVG, PDF, etc.) | Direct file save, print workflows, design tools |
Format Comparison
| Format | Type | Best For | Features |
|---|---|---|---|
| PNG | Raster | Web, transparency needed | ✅ Transparency, ✅ Logos, ✅ All shapes |
| JPG | Raster | Photos, smaller file size | ❌ Transparency, ✅ Logos, ✅ All shapes |
| SVG | Vector | Scalable graphics, print | ✅ Infinite scale, ❌ Logos*, ⚠️ Basic shapes only |
| Document | Print, professional sharing | ✅ Print-ready, ✅ Logos, ✅ All shapes | |
| BMP/TIFF | Raster | Legacy systems, archival | ✅ Uncompressed, ✅ Logos, ✅ All shapes |
🎨 Colors & Gradients
| Parameter | Type | Default | Description |
|---|---|---|---|
| primaryColor | hex | "#000000" | Main foreground color for QR modules. Use hex format: #RRGGBB |
| secondaryColor | hex | null | Gradient end color. Required when using gradient styles. |
| foregroundStyle | string | "solid" |
Fill style for modules.
solid
linearGradient
radialGradient
|
| gradientType | string | "linear" |
Type of gradient when using gradient foregroundStyle.
linear
radial
|
| gradientDirection | string | "vertical" |
Direction for gradients.
vertical
horizontal
diagonal
diagonal-reverse
radial
custom
|
| gradientAngle | float | 0 | Custom gradient angle in degrees when gradientDirection is "custom". Range: 0-360. |
| gradientColors | array | null | Multi-color gradient. Array of hex colors, e.g., ["#FF0000", "#00FF00", "#0000FF"]. Overrides primaryColor/secondaryColor. |
| gradientOnEyes | bool | false | Apply the gradient to finder patterns (eyes) as well. When false, eyes use solid colors. |
🔵 QR Shape (Mask)
Transform the overall shape of your QR code. Perfect for creating circular QR codes like Spotify or Pepsi style.
| Parameter | Type | Default | Description |
|---|---|---|---|
| qrShape | string | "square" |
Overall shape/mask of the QR code.
square
circle
roundedsquare
|
| qrShapeRadius | int | 0 | Corner radius when qrShape is "roundedsquare". Range: 0-50. |
qrShape: "circle") work great with moduleShape: "circle" and concentric finder patterns for a cohesive look.
⬡ Module Shapes
Transform the individual data modules of your QR code into unique shapes.
| Parameter | Type | Default | Description |
|---|---|---|---|
| moduleShape | string | "square" |
Shape of each QR data module.
square
circle
roundedSquare
diamond
star
heart
hexagon
leaf
cross
|
| moduleScale | float | 0.85 | Scale of each module relative to cell size. Range: 0.5-1.0. Lower values = more spacing between modules. |
| moduleRotation | float | 0 | Rotation angle of modules in degrees. Range: 0-360. Great for diagonal effects. |
| moduleStyle | string | "solid" |
Rendering style of modules.
solid
outline
dotted
|
| moduleOutlineWidth | int | 2 | Stroke width when moduleStyle is "outline". Range: 1-5. |
| moduleSizeVariation | float | 0 | Random size variation. Range: 0-0.5. Higher = more varied module sizes. |
Module Patterns
Advanced module rendering patterns inspired by social media QR codes.
| Parameter | Type | Default | Description |
|---|---|---|---|
| modulePattern | string | "standard" |
Pattern style for rendering modules.
standard
vertical-lines
horizontal-lines
diagonal-lines
dots-random
dots-gradient
|
vertical-lines for YouTube-style QR codes, horizontal-lines for Twitter-style, and dots-random for Instagram-style. Always use eccLevel: "H" for maximum reliability.
👁️ Eye Customization
The three finder patterns (corners) can be styled globally or individually with advanced styles like concentric circles. Individual eye settings override global defaults.
Global Eye Defaults
| Parameter | Type | Default | Description |
|---|---|---|---|
| finderOuterShape | string | "square" |
Default shape for the outer frame of all finder patterns.
square
circle
roundedsquare
diamond
octagon
target
double
|
| finderInnerShape | string | "square" |
Default shape for the inner pupil of all finder patterns.
square
circle
roundedsquare
diamond
star
dot
|
| finderOuterColor | hex | null | Default outer frame color. Falls back to primaryColor if not set. |
| finderInnerColor | hex | null | Default inner pupil color. Falls back to primaryColor if not set. |
| finderBorderRadius | int | 0 | Corner radius for square/roundedSquare finder shapes. Range: 0-50. Higher = more rounded corners. |
| finderInnerScale | float | 0.43 | Scale of inner finder relative to outer. Range: 0.25-0.55. Lower = smaller inner, more padding from outer edge. |
Advanced Finder Styles
Create unique finder patterns like concentric circles (Pepsi style) or target patterns.
| Parameter | Type | Default | Description |
|---|---|---|---|
| finderStyle | string | "standard" |
Advanced rendering style for finder patterns.
standard
concentric-circles
target
|
| finderConcentricRings | int | 3 | Number of rings when finderStyle is "concentric-circles". Range: 2-5. |
| finderInnerPattern | string | "none" |
Decorative pattern inside the finder center.
none
cross
star
dot
|
Individual Eye Overrides
| Parameter | Type | Description |
|---|---|---|
| eye1 | object | Top-Left finder pattern override. |
| eye2 | object | Top-Right finder pattern override. |
| eye3 | object | Bottom-Left finder pattern override. |
Eye Object Structure
{
"outerShape": "circle", // Optional: "square" | "circle" | "roundedSquare" | etc.
"innerShape": "circle", // Optional: "square" | "circle" | "roundedSquare" | etc.
"outerColor": "#ff0000", // Optional: Hex color for outer frame
"innerColor": "#0000ff", // Optional: Hex color for inner pupil
"rotation": 45, // Optional: Rotation in degrees (0-360)
"iconUrl": "https://...", // Optional: Custom icon URL for finder center
"iconBase64": "iVBORw..." // Optional: Base64 icon for finder center
}
🖼️ Background Options
Customize the QR code background with solid colors, transparency, or images.
| Parameter | Type | Default | Description |
|---|---|---|---|
| backgroundColor | hex | "#FFFFFF" | Background color in hex format. |
| transparentBackground | bool | false | Make the background fully transparent. Requires PNG format for best results. |
| backgroundImageUrl | string | null | URL to a background/watermark image. Image will be stretched to fill. |
| backgroundImageBase64 | string | null | Base64-encoded background image. Can include or omit the data URI prefix. |
| backgroundOpacity | float | 1.0 | Opacity of the background image. Range: 0.0 - 1.0 |
🔲 Frame Options
Wrap the QR code in a decorative frame. Supports multiple shapes including speech bubbles, badges, and shields with gradient options.
| Parameter | Type | Default | Description |
|---|---|---|---|
| frame.enabled | bool | false | Enable the decorative frame. |
| frame.shape | string | "rectangle" |
Frame shape style.
rectangle
speechbubble
badge
shield
|
| frame.color | hex | "#000000" | Frame border color (primary color for gradients). |
| frame.secondaryColor | hex | null | Secondary color for gradient frames. |
| frame.gradientType | string | "none" |
Gradient type for the frame border.
none
linear
radial
|
| frame.fillColor | hex | null | Background fill color inside the frame (different from QR background). |
| frame.blendMode | string | "normal" |
Blend mode for the frame over background.
normal
multiply
screen
overlay
...
|
| frame.width | int | 10 | Border thickness in pixels. |
| frame.cornerRadius | int | 20 | Rounded corner radius. Use 0 for sharp corners. |
| frame.style | string | "solid" |
Border line style.
solid
dashed
dotted
double
|
| frame.padding | int | 20 | Space between the QR and the frame. Auto-adjusted when cornerRadius is large. |
Speech Bubble Options
When using frame.shape: "speechbubble", configure the pointer direction.
| Parameter | Type | Default | Description |
|---|---|---|---|
| frame.speechBubbleDirection | string | "bottom" |
Direction of the speech bubble pointer.
bottom
top
left
right
|
| frame.speechBubbleSize | int | 20 | Size of the speech bubble pointer in pixels. Range: 0-100. |
🏷️ Logo Integration
Embed a logo in the center of your QR code. The logo is automatically sized to ~22% of the QR area.
| Parameter | Type | Default | Description |
|---|---|---|---|
| logoUrl | string | null | URL to the logo image. Must be publicly accessible. |
| logoBase64 | string | null | Base64-encoded logo image. Supports data URI format. |
| logoShape | string | "square" |
Logo clipping shape.
square
circle
|
| logoBorderWidth | int | 0 | Border thickness around the logo. 0 = no border. |
| logoBorderColor | hex | "#FFFFFF" | Color of the logo border. |
| cleanBehindLogo | bool | true | Remove QR modules behind the logo for a cleaner look. Requires eccLevel: "H" for reliable scanning. |
| logoSizePercent | int | 18 | Logo size as percentage of QR code. Range: 5-40. Smaller = safer for scanning. |
| logoPadding | int | 5 | Internal padding around the logo in pixels. |
| logoShadow | bool | false | Add a drop shadow effect behind the logo. |
| logoBackground | string | "none" |
Background style behind the logo.
none
solid
blur
|
| logoBackgroundColor | hex | "#FFFFFF" | Color of the logo background when logoBackground is "solid". |
cleanBehindLogo: true, always use eccLevel: "H" (High error correction) to ensure the QR remains scannable.
✨ Visual Effects
Apply stunning visual effects to your QR code including shadows, neon glow, edge fading, and 3D emboss effects.
Shadow Effect
| Parameter | Type | Default | Description |
|---|---|---|---|
| effects.shadow | bool | false | Enable drop shadow effect on the QR code. |
| effects.shadowColor | hex | "#00000040" | Shadow color with alpha (RRGGBBAA format supported). |
| effects.shadowOffsetX | int | 5 | Horizontal shadow offset in pixels. |
| effects.shadowOffsetY | int | 5 | Vertical shadow offset in pixels. |
| effects.shadowBlur | int | 10 | Shadow blur radius. Range: 0-50. |
Neon Glow Effect
| Parameter | Type | Default | Description |
|---|---|---|---|
| effects.glow | bool | false | Enable neon glow effect around the QR modules. |
| effects.glowColor | hex | "#00FF00" | Glow color (neon effect color). |
| effects.glowIntensity | int | 10 | Glow brightness intensity. Range: 1-20. |
| effects.glowRadius | int | 15 | Glow expansion radius. Range: 1-50. |
Edge Fade Effect
Create a dispersing/fading effect where modules gradually fade toward the edges (like Instagram QR style).
| Parameter | Type | Default | Description |
|---|---|---|---|
| effects.edgeFade | bool | false | Enable edge fade/dispersion effect. |
| effects.edgeFadePercent | int | 25 | Percentage of QR affected by fade. Range: 10-50. |
| effects.edgeFadeType | string | "size" |
How modules fade at edges.
size
opacity
both
|
Additional Effects
| Parameter | Type | Default | Description |
|---|---|---|---|
| effects.emboss | bool | false | Enable 3D emboss/elevation effect. |
| effects.embossDepth | int | 3 | Depth of the 3D effect. Range: 1-10. |
| effects.noise | bool | false | Add subtle noise/texture to the QR. |
| effects.noiseIntensity | float | 0.1 | Noise intensity. Range: 0.0-1.0. |
| effects.blur | bool | false | Enable gaussian blur effect. |
| effects.blurRadius | int | 5 | Blur radius in pixels. Range: 1-20. |
| effects.colorFilter | string | "none" |
Apply color filter.
none
grayscale
sepia
invert
high-contrast
|
Path Effects
Advanced stroke effects for outline-style modules and decorative patterns.
| Parameter | Type | Default | Description |
|---|---|---|---|
| effects.dashEffect | bool | false | Enable dashed line effect for outline modules. |
| effects.dashLength | float | 5 | Length of dash segments. |
| effects.dashGap | float | 3 | Gap between dash segments. |
| effects.cornerEffect | bool | false | Enable corner rounding for paths. |
| effects.cornerRadius | float | 5 | Radius for corner smoothing. |
| effects.wiggleEffect | bool | false | Enable random distortion/wiggle effect for organic look. |
| effects.wiggleSegmentLength | float | 3 | Segment length for wiggle calculation. |
| effects.wiggleDeviation | float | 2 | Maximum deviation for wiggle effect. |
| effects.dotEffect | bool | false | Enable dotted line effect for outline modules. |
| effects.dotSize | float | 2 | Size of dots in dotted effect. |
| effects.dotSpacing | float | 4 | Spacing between dots. |
Advanced Connectivity
Create organic, liquid, or connected designs by linking adjacent modules.
| Parameter | Type | Default | Description |
|---|---|---|---|
| connectedStyle | string | "none" |
Connection style between neighbor modules.
none
fluid
sharp
round
|
| connectionThreshold | float | 0.5 | How much modules stretch to touch neighbors (0.0-1.0). |
| cornerRounding | int | 0 | Radius for smoothing connections. |
| isolatedModuleShape | string | null | Shape for modules without neighbors (e.g., "leaf", "circle"). Inherits moduleShape if null. |
Custom SVG Shapes
Extreme customization using standard SVG path data strings.
| Parameter | Type | Default | Description |
|---|---|---|---|
| customModuleSvg | string | null | SVG path data (d="M...") for data modules. |
| customFinderOuterSvg | string | null | SVG path data for finder outer ring. |
| customFinderInnerSvg | string | null | SVG path data for finder inner center. |
🔄 Circular Text
Add curved text around the QR code, perfect for "SCAN ME" badges like the circular QR designs.
| Parameter | Type | Default | Description |
|---|---|---|---|
| circularText.topText | string | null | Text displayed in a curve above the QR (e.g., "SCAN ME"). |
| circularText.bottomText | string | null | Text displayed in a curve below the QR. |
| circularText.color | hex | "#000000" | Text color. |
| circularText.fontSize | int | 20 | Font size in points. |
| circularText.fontFamily | string | null | Font family name (system fonts). |
| circularText.bold | bool | true | Use bold font weight. |
| circularText.letterSpacing | int | 5 | Space between characters. Range: 0-50. |
| circularText.margin | int | 10 | Distance from the QR edge. |
| circularText.radius | int | 0 | Custom curve radius. 0 = automatic based on QR size. |
📐 Scan Corners
Add decorative corner markers around the QR code, similar to camera viewfinder corners.
| Parameter | Type | Default | Description |
|---|---|---|---|
| scanCorners.enabled | bool | false | Enable decorative scan corners. |
| scanCorners.color | hex | "#000000" | Color of the corner markers. |
| scanCorners.style | string | "lines" |
Style of corner markers.
lines
brackets
dots
|
| scanCorners.length | int | 15 | Length of corner lines as % of QR size. Range: 5-25. |
| scanCorners.thickness | int | 3 | Line thickness. Range: 1-10. |
| scanCorners.offset | int | 10 | Distance from the QR edge. Range: 0-50. |
✍️ Text Overlays
Center Text Strip
Add a text band that cuts through the center of the QR code.
| Parameter | Type | Default | Description |
|---|---|---|---|
| centerText.text | string | — | Text to display across the QR. |
| centerText.color | hex | "#000000" | Text color. |
| centerText.backgroundColor | hex | "#FFFFFF" | Strip background color. |
| centerText.orientation | string | "horizontal" |
Direction of the text strip.
horizontal
vertical-rotated
vertical-stacked
|
| centerText.height | int | 40 | Thickness of the strip in pixels. |
| centerText.fontSize | int | 16 | Font size in points. |
| centerText.bold | bool | true | Use bold font weight. |
Footer/Header CTA (Call to Action)
Add promotional text above or below the QR code.
| Parameter | Type | Default | Description |
|---|---|---|---|
| ctaText | string | null | Text displayed near the QR (e.g., "SCAN ME", "Visit our website"). |
| ctaColor | hex | "#000000" | CTA text color. |
| ctaFontSize | int | 24 | CTA font size in points. Text is always bold. |
| ctaPosition | string | "bottom" |
Position of the CTA text.
bottom
top
|
| ctaFontFamily | string | null | Custom font family name (system fonts only). |
📚 List Templates
Retrieve the list of available pre-designed QR templates. Returns template metadata without the full configuration.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| category OPT | string | Filter templates by category (e.g., "Technology", "Luxury", "Fun") |
Response
{
"success": true,
"count": 12,
"categories": ["Artistic", "Corporate", "Events", "Fun", "Luxury", "Nature", "Social", "Technology"],
"templates": [
{
"id": "cyber-neon",
"name": "Cyber Neon",
"category": "Technology",
"description": "Futuristic neon style with hexagon modules and cyan-pink gradient"
},
{
"id": "professional-blue",
"name": "Professional Blue",
"category": "Corporate",
"description": "Clean corporate style with blue gradient, ideal for business"
},
...
]
}
🎨 Generate from Template
Generate a QR code using a pre-designed template. You can customize the content, logo, output format, and CTA text while keeping the template's visual style intact.
URL Parameters
| Parameter | Type | Description |
|---|---|---|
| templateId REQ | string | The template identifier (e.g., "cyber-neon", "minimalist") |
Request Body
| Parameter | Type | Default | Description |
|---|---|---|---|
| content REQ | string | — | The data to encode (URL, text, etc.) |
| fileFormat OPT | string | "png" | Output format: png, jpg, svg, pdf, etc. |
| responseType OPT | string | "base64" | Response type: base64 or binary |
| outputWidth OPT | int | 0 | Output width in pixels (0 = auto) |
| outputHeight OPT | int | 0 | Output height in pixels (0 = auto) |
| logoUrl OPT | string | null | URL of logo to embed in QR center |
| logoBase64 OPT | string | null | Base64-encoded logo image |
| backgroundImageUrl OPT | string | null | URL of background image (for Background Integration templates) |
| backgroundImageBase64 OPT | string | null | Base64-encoded background image |
| ctaText OPT | string | null | Call-to-action text below QR (e.g., "SCAN ME") |
Example Request
curl -X POST "https://qr-branding-api.p.rapidapi.com/api/qr/templates/cyber-neon" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{
"content": "https://mycompany.com",
"logoUrl": "https://mycompany.com/logo.png",
"ctaText": "SCAN ME",
"fileFormat": "png",
"outputWidth": 1024
}'
Multipart Upload (with Logo File)
curl -X POST "https://qr-branding-api.p.rapidapi.com/api/qr/templates/premium-gold" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com" \
-F 'config={"content":"https://luxury-brand.com","ctaText":"DISCOVER MORE"}' \
-F "logoFile=@/path/to/logo.png"
Response
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 24680
}
Error: Template Not Found
{
"success": false,
"error": {
"code": "TEMPLATE_NOT_FOUND",
"message": "Template 'unknown-template' not found. Use GET /api/qr/templates to see available templates.",
"field": "templateId"
}
}
🎨 Pattern Gallery
Visual reference for all available patterns. Use these shape names in your API requests.
Module Shapes (moduleShape)
Shape of individual data modules in the QR code.
Finder Outer Shapes (finderOuterShape)
Shape of the outer frame of the three corner finder patterns (eyes).
Finder Inner Shapes (finderInnerShape)
Shape of the inner dot/center of the finder patterns (eyeballs).
customModuleSvg, customFinderOuterSvg, and customFinderInnerSvg
parameters for completely unique designs.
🖼️ Template Gallery
Browse our curated collection of pre-designed QR templates. Each template is ready to use with the POST /api/qr/templates/{templateId} endpoint. Click on any template to see its ID.
Technology
cyber-neon
developer-dark
ai-neural
matrix-code
bitcoin-classic
Corporate
professional-blue
corporate-red
enterprise-gray
Social
influencer-gradient
tiktok-viral
linkedin-pro
glassmorphism
Events
valentine-heart
party-confetti
wedding-elegant
Nature
organic-leaf
ocean-breeze
forest-wood
Luxury
premium-gold
minimalist
rose-gold
Music
spotify-vibes
soundwave-purple
vinyl-classic
Fun
retro-8bit
neon-nights
bubblegum-pop
Artistic
sunset
aurora-borealis
watercolor-dream
fluid-pink
Marketing & CTA
scan-me-badge
Background Integration
These templates are designed to overlay custom brand backgrounds, photos, or watermarks using backgroundImageBase64 or backgroundImageUrl.
watermark-brand
luxury-overlay
vivid-canvas
🤖 AI-Powered QR Generation
Generate a custom QR code by describing it in natural language. The AI will interpret your description and create the perfect configuration using all available styling options. Just describe the style, colors, mood, and brand identity - the AI handles the rest!
Supported LLM Providers
| Provider | ID | Available Models |
|---|---|---|
| OpenAI | openai | gpt-5.1, gpt-5, gpt-4o, gpt-4o-mini, gpt-4-turbo |
| Anthropic | anthropic | claude-opus-4.5, claude-opus-4-20250514, claude-sonnet-4-20250514, claude-3-5-sonnet-20241022 |
| Google Gemini | gemini-3-pro-preview, gemini-2.5-flash, gemini-2.5-pro, gemini-2.0-flash, gemini-1.5-pro | |
| Mistral AI | mistral | mistral-large-latest, mistral-medium-latest, mistral-small-latest |
| Cohere | cohere | command-r-plus, command-r |
| Groq | groq | llama-3.3-70b-versatile, mixtral-8x7b-32768 |
Request Body
| Parameter | Type | Default | Description |
|---|---|---|---|
| prompt REQ | string | — | Natural language description of how you want the QR to look. Be specific about colors, style, mood, shapes, effects, etc. |
| content REQ | string | — | The data to encode (URL, text, etc.) |
| llmProvider REQ | string | — | LLM provider ID: openai, anthropic, google, mistral, cohere, groq |
| llmApiKey REQ | string | — | Your API key for the selected LLM provider |
| llmModel OPT | string | varies | Specific model to use. If not provided, uses the provider's default model. |
| fileFormat OPT | string | "png" | Output format: png, jpg, svg, pdf, etc. |
| responseType OPT | string | "base64" | Response type: base64 or binary |
| outputWidth OPT | int | 0 | Output width in pixels (0 = auto) |
| outputHeight OPT | int | 0 | Output height in pixels (0 = auto) |
| logoUrl OPT | string | null | URL of logo to embed in QR center |
| logoBase64 OPT | string | null | Base64-encoded logo image |
| backgroundImageUrl OPT | string | null | URL of background image |
| backgroundImageBase64 OPT | string | null | Base64-encoded background image |
| ctaText OPT | string | null | Call-to-action text (e.g., "SCAN ME") |
| creativity OPT | float | 0.5 | AI creativity level (0.0-1.0). 0 = conservative/minimal, 1 = highly creative/artistic. Affects LLM temperature and design decisions. |
| strictScannability OPT | boolean | true | When true, AI prioritizes QR readability over visual creativity. Recommended for production use. |
| stylePreset OPT | string | "balanced" | Style preset to guide AI: minimal, balanced, artistic, corporate, playful, luxury, tech, nature |
Example Request
curl -X POST "https://qr-branding-api.p.rapidapi.com/api/qr/ai/generate" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com" \
-H "Content-Type: application/json" \
-d '{
"prompt": "Create a modern tech startup QR code with a gradient from electric blue to purple, circular modules, neon glow effect, dark background, and rounded finder patterns. Make it look futuristic and premium.",
"content": "https://mycompany.com",
"llmProvider": "openai",
"llmApiKey": "sk-your-openai-api-key",
"llmModel": "gpt-4o-mini",
"logoUrl": "https://mycompany.com/logo.png",
"ctaText": "SCAN TO CONNECT"
}'
Example Response
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUgAAA...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 45892,
"generatedConfig": {
"primaryColor": "#0066FF",
"secondaryColor": "#9933FF",
"foregroundStyle": "linearGradient",
"gradientDirection": "diagonal",
"backgroundColor": "#0a0a12",
"moduleShape": "circle",
"finderOuterShape": "roundedsquare",
"finderInnerShape": "circle",
"finderBorderRadius": 15,
"effects": {
"glow": true,
"glowColor": "#0066FF",
"glowIntensity": 12
}
},
"aiExplanation": "Created a futuristic design with blue-to-purple gradient, circular modules for a modern feel, and neon glow effect on a dark background to achieve the premium tech aesthetic.",
"llmProviderUsed": "openai",
"llmModelUsed": "gpt-4o-mini"
}
Prompt Tips
- Be specific about colors: "electric blue", "rose gold", "forest green"
- Describe the mood: "professional", "playful", "luxurious", "minimalist"
- Mention your industry: "tech startup", "wedding invitation", "restaurant menu"
- Request specific effects: "neon glow", "drop shadow", "3D emboss"
- Specify shapes: "circular modules", "heart-shaped finders", "diamond pattern"
- Reference styles: "Instagram-like gradient", "Spotify green theme", "TikTok colors"
📋 List AI Providers
Get the list of supported LLM providers and their available models.
Example Request
curl -X GET "https://qr-branding-api.p.rapidapi.com/api/qr/ai/providers" \ -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \ -H "X-RapidAPI-Host: qr-branding-api.p.rapidapi.com"
Example Response
{
"success": true,
"count": 6,
"providers": [
{
"id": "openai",
"name": "OpenAI",
"defaultModel": "gpt-4o-mini",
"availableModels": ["gpt-5.1", "gpt-5", "gpt-4o", "gpt-4o-mini", "gpt-4-turbo", "gpt-3.5-turbo"]
},
{
"id": "anthropic",
"name": "Anthropic",
"defaultModel": "claude-sonnet-4-20250514",
"availableModels": ["claude-opus-4.5", "claude-opus-4-20250514", "claude-sonnet-4-20250514", "claude-3-5-sonnet-20241022"]
},
{
"id": "google",
"name": "Google Gemini",
"defaultModel": "gemini-2.0-flash",
"availableModels": ["gemini-3-pro-preview", "gemini-2.5-flash", "gemini-2.5-pro", "gemini-2.0-flash", "gemini-1.5-pro"]
}
]
}
🤖 AI Generation Gallery
Real examples generated using our AI endpoint. See the prompt that created each design.
Aurora Borealis Magic
NatureView Prompt
Create a mesmerizing aurora borealis inspired QR code. Use a gradient flowing from electric teal (#00ffd5) to ethereal green (#39ff14). Circular modules. Dark midnight background (#050510). Add a magical glow effect with the teal color. Finder patterns should be roundedsquare with bright cyan (#00ffd5) for visibility.
💬 Designed with high-contrast neon teal and green on a dark background to mimic the aurora borealis, ensuring scannability while delivering a glowing, magical aesthetic.
Liquid Metal Chrome
IndustrialView Prompt
Design a futuristic liquid metal chrome QR code. Dark steel (#333333) to metallic gray (#555555) radial gradient. Diamond-shaped modules for crystalline tech feel. Light silver background (#E8E8E8). Add emboss effect for 3D depth. Rounded square finders in dark charcoal (#222222). Include a sleek frame.
💬 Designed with a radial gradient and emboss effect to simulate liquid metal chrome, using diamond modules for a high-tech crystalline look while maintaining strong contrast against the silver background.
Bioluminescent Ocean
NatureView Prompt
Create a deep sea bioluminescent QR code. Gradient from electric cyan (#00ffff) to glowing blue (#0066ff). Circle modules like plankton particles. Very dark ocean background (#000022). Glow effect with cyan color. Finder patterns with bright cyan outer (#00ffff).
💬 Designed with a deep ocean palette using high-contrast electric cyan and blue gradients on a dark background. Circular modules and a cyan glow effect mimic bioluminescent plankton while ensuring ISO-compliant scannability.
Japanese Cherry Blossom
CreativeView Prompt
Design a Japanese sakura themed QR code. Gradient from deep rose (#CC4477) to magenta (#AA2255). Leaf-shaped modules. Light cream background (#FFF8F0). Circular finder patterns with dark rose (#882244). Add circular text 'SAKURA' on top. Elegant thin frame.
💬 Designed with a Japanese aesthetic using leaf modules and soft pink gradients on a cream background. High error correction (H) is enabled for the text overlay, and finder patterns are darkened to #882244 to ensure the scanner can easily locate the code.
Synthwave Sunset
CreativeView Prompt
Create an 80s synthwave sunset QR code. Gradient: hot pink (#FF1493), electric orange (#FF4500). Hexagon modules for retro-futuristic feel. Deep purple-black background (#1a0033). Glow effect with pink. Rounded square finders with bright pink (#FF1493).
💬 I've created a high-contrast 'light-on-dark' design using the requested synthwave palette. The vertical gradient simulates a sunset, and the hexagon modules provide the retro-futuristic look while maintaining excellent scannability.
Volcanic Ember
CreativeView Prompt
Design a volcanic lava themed QR code. Gradient from bright orange (#FF6600) to crimson (#CC0000). Diamond-shaped modules like sparks. Very dark charcoal background (#111111). Shadow effect for depth. Finder patterns with bright orange outer (#FF6600) and yellow inner (#FFCC00).
💬 I used a fiery orange-to-crimson gradient with diamond modules to create the 'sparks' look. I added a subtle red glow to enhance the lava effect and ensure the darker red tones remain scannable against the charcoal background.
Arctic Frost
CreativeView Prompt
Create an icy arctic frost QR code. Gradient from deep blue (#1E90FF) to navy (#000080). Diamond modules like ice crystals. White background (#FFFFFF). Emboss for frozen 3D texture. Finder patterns with dark navy (#000066).
💬 Designed with diamond modules and finders to mimic ice crystals, featuring a deep blue to navy gradient and 3D emboss effect for a frosty texture, ensuring high contrast against the white background.
Amazonia Jungle
NatureView Prompt
Design an Amazon jungle QR code. Gradient from emerald (#228B22) to forest green (#006400). Leaf-shaped modules. Light beige background (#F5F5DC). Finder patterns with dark green (#004400). Circular text 'AMAZONIA' on top. Badge-style frame.
💬 Designed with a high-contrast emerald-to-forest green gradient on a beige background for optimal scanning. Used 'leaf' modules and rounded finder patterns to match the Amazon theme, with a badge frame and circular text as requested. Error correction set to 'H' to support the text overlay.
Quantum Hologram
CreativeView Prompt
Design a quantum holographic QR code. Gradient from cyan (#00FFFF) to magenta (#FF00FF). Hexagonal modules like data particles. Near-black background (#050510). Glow effect with cyan. Target-style finder patterns with bright cyan outer.
💬 I designed a high-contrast quantum holographic look using a cyan-to-magenta gradient on a deep black background. The 'target' finder pattern with a white core ensures the scanner can locate the code despite the glow effects and hexagonal data particles.
Royal Byzantine
LuxuryView Prompt
Create a Byzantine empire inspired QR code. Gradient from gold (#FFD700) to bronze (#CC8800). Cross-shaped modules like mosaics. Deep purple background (#1a0a2e). Finder patterns with bright gold outer (#FFD700) and white inner. Elegant frame in shield shape with gold color.
💬 Designed with a high-contrast 'light-on-dark' scheme using Imperial Purple and Byzantine Gold. The 'cross' module shape simulates mosaic patterns, scaled up to 0.95 to ensure scannability. A shield frame and emboss effect complete the historical aesthetic.
📶 Generate WiFi String
Generate a WiFi connection string that users can scan to auto-connect to a network.
Request Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| ssid REQ | string | — | Network name (SSID). |
| password REQ | string | — | Network password. |
| encryption | string | "WPA" |
Encryption type.
WPA
WPA2
WEP
nopass
|
| hidden | bool | false | Whether the network SSID is hidden. |
{
"ssid": "MyNetwork",
"password": "secret123",
"encryption": "WPA",
"hidden": false
}
{
"text": "WIFI:S:MyNetwork;T:WPA;P:secret123;H:false;;"
}
👤 Generate vCard String
Generate a vCard contact string that adds contact info directly to the scanner's address book.
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| firstName | string | First name |
| lastName | string | Last name |
| phone | string | Phone number (include country code) |
| string | Email address | |
| org | string | Organization/Company name |
| url | string | Website URL |
{
"firstName": "John",
"lastName": "Doe",
"phone": "+1234567890",
"email": "john@example.com",
"org": "Acme Inc",
"url": "https://example.com"
}
{
"text": "BEGIN:VCARD\nVERSION:3.0\nN:Doe;John\nFN:John Doe\nORG:Acme Inc\nTEL:+1234567890\nEMAIL:john@example.com\nURL:https://example.com\nEND:VCARD"
}
📍 Generate Geo String
Generate a geographic location string that opens the location in the user's maps app.
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| lat REQ | double | Latitude coordinate |
| lng REQ | double | Longitude coordinate |
{
"lat": 40.7128,
"lng": -74.0060
}
{
"text": "geo:40.7128,-74.006"
}
⚠️ Error Codes Reference
The API uses standardized error responses across all endpoints. Every error response includes a structured JSON body with detailed information to help you debug and handle errors gracefully.
Error Response Format
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable error description",
"field": "fieldName", // Optional: affected field
"details": [...] // Optional: multiple validation errors
}
}
HTTP Status Codes
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request successful |
| 400 | Bad Request | Invalid input, validation error, or malformed JSON |
| 401 | Unauthorized | Missing or invalid API authentication |
| 404 | Not Found | Resource or endpoint not found |
| 500 | Internal Error | Server-side error during processing |
Validation Errors (400)
These errors occur when input data doesn't meet the required format or constraints.
| Error Code | Description | Example |
|---|---|---|
| VALIDATION_ERROR | General validation failure (may contain multiple errors) | Validation failed with 3 errors. |
| INVALID_JSON | Request body is not valid JSON | Invalid JSON body: Unexpected character at position 45 |
| MISSING_REQUIRED_FIELD | A required field is missing or empty | The 'content' field is required and cannot be empty. |
| INVALID_FIELD_VALUE | Field value is not one of the allowed values | Invalid logo shape 'triangle'. Allowed: square, circle. |
| INVALID_COLOR_FORMAT | Color is not a valid hex format | Invalid color format for 'primaryColor': 'red'. Use hex format (#RGB, #RRGGBB, or #RRGGBBAA). |
| INVALID_FILE_FORMAT | Unsupported file format requested | Invalid file format 'webp'. Allowed: png, jpg, jpeg, bmp, gif, svg, pdf. |
| CONTENT_TOO_LONG | QR content exceeds maximum length | Content length (5000) exceeds maximum allowed (4296 characters). |
| FILE_TOO_LARGE | Uploaded file exceeds size limit | Logo file size (15728640 bytes) exceeds maximum allowed (10MB). |
| INVALID_URL | URL format is invalid | Invalid URL format for 'logoUrl'. URL must start with http:// or https://. |
| INVALID_ECC_LEVEL | Invalid error correction level | Invalid ECC level 'X'. Allowed values: L, M, Q, H. |
| INVALID_MODULE_SHAPE | Invalid module shape specified | Invalid module shape 'triangle'. Allowed: square, circle, roundedsquare, diamond, star, heart, hexagon, leaf. |
| INVALID_GRADIENT_TYPE | Invalid gradient type | Invalid gradient type 'conic'. Allowed: linear, radial. |
| INVALID_RESPONSE_TYPE | Invalid response type requested | Invalid response type 'file'. Allowed: base64, binary. |
| VALUE_OUT_OF_RANGE | Numeric value outside allowed range | PixelsPerModule (150) must be between 1 and 100. |
| MULTIPART_CONFIG_MISSING | Multipart request missing config field | Multipart request requires a 'config' field containing JSON configuration. |
Authentication Errors (401)
| Error Code | Description | Example |
|---|---|---|
| UNAUTHORIZED | Authentication failed or missing | Missing authentication header. Please use RapidAPI to access this API. |
| INVALID_API_KEY | API key is invalid or expired | Invalid authentication. Please use RapidAPI to access this API. |
| LLM_API_KEY_INVALID | LLM provider API key is invalid (AI endpoint only) | OpenAI API error: 401 - Invalid API key provided. |
🤖 AI Generation Errors
These errors are specific to the AI-powered QR generation endpoint.
| Error Code | HTTP | Description | Example |
|---|---|---|---|
| INVALID_LLM_PROVIDER | 400 | Unsupported LLM provider specified | Unsupported LLM provider 'chatgpt'. Supported providers: openai, anthropic, google, mistral, cohere, groq |
| INVALID_LLM_MODEL | 400 | Model not available for the selected provider | Model 'gpt-6' is not available for OpenAI. Available models: gpt-5.1, gpt-5, gpt-4o, gpt-4o-mini |
| LLM_API_KEY_INVALID | 401 | The provided LLM API key is invalid | OpenAI API error: 401 - Invalid API key provided. |
| AI_GENERATION_FAILED | 500 | AI failed to generate a valid configuration | Failed to generate QR configuration from AI. Please check your API key and try again. |
| AI_CONFIG_INVALID | 500 | AI generated an invalid QR configuration | AI generated an invalid configuration. Validation errors: Invalid color format... |
| AI_REQUEST_TIMEOUT | 500 | LLM API request timed out | Request timed out. Please try again. |
Server Errors (500)
| Error Code | Description | Example |
|---|---|---|
| INTERNAL_ERROR | Unexpected server error | An unexpected error occurred while processing your request. Please try again later. |
| QR_GENERATION_FAILED | QR code generation engine failed | Failed to generate QR code. Please check your configuration and try again. |
Error Response Examples
Missing Required Field
{
"success": false,
"error": {
"code": "MISSING_REQUIRED_FIELD",
"message": "The 'content' field is required and cannot be empty.",
"field": "content"
}
}
Invalid Color Format
{
"success": false,
"error": {
"code": "INVALID_COLOR_FORMAT",
"message": "Invalid color format for 'primaryColor': 'blue'. Use hex format (#RGB, #RRGGBB, or #RRGGBBAA).",
"field": "primaryColor"
}
}
Multiple Validation Errors
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Validation failed with 3 errors.",
"details": [
{
"field": "content",
"code": "MISSING_REQUIRED_FIELD",
"message": "The 'content' field is required and cannot be empty."
},
{
"field": "primaryColor",
"code": "INVALID_COLOR_FORMAT",
"message": "Invalid color format for 'primaryColor': 'red'.",
"value": "red"
},
{
"field": "pixelsPerModule",
"code": "VALUE_OUT_OF_RANGE",
"message": "PixelsPerModule (200) must be between 1 and 100.",
"value": 200
}
]
}
}
Invalid JSON
{
"success": false,
"error": {
"code": "INVALID_JSON",
"message": "Invalid JSON body: 'c' is an invalid start of a property name. Expected a '\"'. LineNumber: 2 | BytePositionInLine: 2."
}
}
Authentication Error
{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Missing authentication header. Please use RapidAPI to access this API."
}
}
Server Error
{
"success": false,
"error": {
"code": "QR_GENERATION_FAILED",
"message": "Failed to generate QR code. Please check your configuration and try again."
}
}
success field first, then parse the error.code to programmatically handle specific error cases. The error.field property helps identify which input parameter caused the error.
Field Validation Constraints
| Field | Constraints |
|---|---|
| content | Required. Max 4,296 characters |
| eccLevel | Must be: L, M, Q, H |
| pixelsPerModule | 1 - 100 |
| fileFormat | png, jpg, jpeg, bmp, gif, svg, pdf, tiff |
| responseType | base64, binary |
| outputWidth/Height | 0 - 8,192 pixels |
| backgroundOpacity | 0.0 - 1.0 |
| Colors (all) | Hex format: #RGB, #RRGGBB, #RRGGBBAA |
| foregroundStyle | solid, linearGradient, radialGradient |
| gradientType | linear, radial |
| gradientDirection | vertical, horizontal, diagonal, diagonal-reverse, radial, custom |
| qrShape | square, circle, roundedsquare |
| moduleShape | square, circle, roundedsquare, diamond, star, heart, hexagon, leaf, cross, dot, mosaic, clipped, clippedsmooth, pointed, pointedinward, pointedsmooth, pill, roundedinward, roundedpointed, circlestripe, japanese, octagon, shield, arrow, drop |
| modulePattern | standard, vertical-lines, horizontal-lines, diagonal-lines, dots-random, dots-gradient |
| moduleStyle | solid, outline, dotted |
| moduleBlendMode | normal, multiply, screen, overlay, darken, lighten, colorburn, colordodge, hardlight, softlight, difference, exclusion |
| finderOuterShape | square, circle, roundedsquare, diamond, octagon, target, double |
| finderInnerShape | square, circle, roundedsquare, diamond, star, dot |
| finderStyle | standard, concentric-circles, target |
| finderInnerPattern | none, cross, star, dot |
| finderBorderRadius | 0 - 50 |
| finderInnerScale | 0.25 - 0.55 |
| moduleScale | 0.5 - 1.0 |
| logoShape | square, circle |
| logoBackground | none, solid, blur |
| logoBorderWidth | 0 - 50 |
| logoSizePercent | 3 - 40 |
| logoPadding | 0+ |
| frame.shape | rectangle, speechbubble, badge, shield |
| frame.style | solid, dashed, dotted, double |
| scanCorners.style | lines, brackets, dots |
| effects.edgeFadeType | size, opacity, both |
| ctaPosition | bottom, top |
| ctaFontSize | 1 - 200 |
| frame.width | 0 - 100 |
| frame.cornerRadius | 0 - 500 |
| frame.padding | 0 - 200 |
| frame.style | solid, dashed |
| centerText.fontSize | 1 - 200 |
| centerText.height | 1 - 500 |
| centerText.orientation | horizontal, vertical-rotated, vertical-stacked |
| URLs (logo, background) | Must start with http:// or https://. Max 2,048 characters |
| Logo file (multipart) | Max 10 MB |
| WiFi ssid | Required. Max 32 characters |
| WiFi password | Required unless encryption is 'nopass'. Max 63 characters |
| WiFi encryption | WPA, WPA2, WPA3, WEP, nopass |
| Geo latitude | -90 to 90 |
| Geo longitude | -180 to 180 |