QR Branding QR Branding
Enterprise-Grade QR Engine

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.

8
Module Shapes
7
Output Formats
4K
Max Resolution
12+
Templates

✨ Key Features

🎨
8 Module Shapes
Square, Circle, Rounded, Diamond, Star, Heart, Hexagon, and Leaf. Mix and match for unique designs.
👁️
Granular Eye Control
Customize each of the 3 finder patterns independently with different shapes and colors.
🌈
Advanced Gradients
Linear, diagonal, and radial color transitions. Apply to modules, eyes, or both.
🖼️
Smart Frames
Auto-padded decorative frames with rounded corners and multiple styles.
✂️
Center Text Strip
Split the QR with horizontal or vertical text bands. Perfect for branding.
🏷️
Logo Integration
Upload via URL, Base64, or binary file. Auto-clears QR modules behind logo.
📐
7 Output Formats
Export as PNG, JPG, SVG, PDF, BMP, GIF, or TIFF. Up to 4K resolution. Vector & print-ready.
🔧
Helper Endpoints
Generate WiFi, vCard, and Geo strings instantly for common use cases.

🎯 Use Cases

🛍️
Product Packaging
🎫
Event Tickets
🍽️
Restaurant Menus
💼
Business Cards
📱
App Downloads
📍
Location Sharing

🚀 Quick Start

Generate your first branded QR code in seconds. Copy the example below:

⚡ Minimal Example
cURL
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"
  }'
💡
Pro Tip: Only the 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.

RapidAPI Headers (added automatically)
X-RapidAPI-Key: YOUR_RAPIDAPI_KEY
X-RapidAPI-Host: qr-branding-api.p.rapidapi.com
🚀
Getting Started: Subscribe to the API on RapidAPI and use the provided code snippets. RapidAPI handles authentication automatically.
⚠️
Security: Never expose your RapidAPI key in client-side code. Always call the API from your backend server.

Generate Custom QR

POST /api/qr/generate

The primary endpoint. Send a JSON configuration object to generate a fully customized QR code image. Returns a Base64-encoded image.

Complete Example Request

Request BodyJSON
{
  // Required
  "content": "https://mybrand.com",
  
  // Output Settings
  "outputWidth": 1024,
  "fileFormat": "png",
  
  // Style
  "moduleShape": "circle",
  "primaryColor": "#6366f1",
  "secondaryColor": "#ec4899",
  "gradientType": "radial",
  "backgroundColor": "#ffffff",
  
  // Eye Customization
  "eye1": { 
    "outerShape": "circle", 
    "outerColor": "#6366f1" 
  },
  
  // Frame
  "frame": {
    "enabled": true,
    "color": "#6366f1",
    "width": 8,
    "cornerRadius": 20
  },
  
  // Logo
  "logoUrl": "https://example.com/logo.png",
  "logoShape": "circle",
  
  // Text
  "ctaText": "SCAN ME"
}

Response (Base64 Mode)

When responseType: "base64" (default), you receive a JSON response:

200 OK — application/json
{
  "success": true,
  "qrBase64": "iVBORw0KGgoAAAANSUhEUgAA...",
  "format": "png",
  "contentType": "image/png",
  "sizeBytes": 24680
}

Response Fields

FieldTypeDescription
successboolWhether the generation succeeded
qrBase64stringBase64-encoded file data
formatstringFile extension (png, jpg, svg, pdf, etc.)
contentTypestringMIME type for the file
sizeBytesintFile size in bytes

Response (Binary Mode)

When responseType: "binary", you receive the file directly:

200 OK — image/png (or corresponding MIME type)
// Binary file data returned directly
// Content-Disposition: attachment; filename="qrcode.png"
// Content-Type: image/png (or image/svg+xml, application/pdf, etc.)
🖼️
Displaying Base64 images: Use the Base64 string in an <img> tag:
<img src="data:{contentType};base64,{qrBase64}" />
📥
Binary mode tip: When using 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 - Download PDF filecURL
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 - SVG in JSON responsecURL
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

FieldTypeDescription
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

Multipart RequestcURL
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

ParameterTypeDefaultDescription
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.

ParameterTypeDefaultDescription
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 bmp gif tiff svg pdf
responseType string "base64" How to receive the generated QR code.
base64 binary

Response Types Explained

TypeResponseUse 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

FormatTypeBest ForFeatures
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
PDF Document Print, professional sharing ✅ Print-ready, ✅ Logos, ✅ All shapes
BMP/TIFF Raster Legacy systems, archival ✅ Uncompressed, ✅ Logos, ✅ All shapes
💡
SVG Note: SVG output uses QRCoder's native SVG generator which supports basic styling (colors, quiet zone) but not advanced features like custom shapes, gradients, or embedded logos. For full customization, use PNG or PDF.

🎨 Colors & Gradients

ParameterTypeDefaultDescription
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 linear gradients.
vertical horizontal diagonal
gradientOnEyes bool false Apply the gradient to finder patterns (eyes) as well. When false, eyes use solid colors.

⬡ Module Shapes

Transform the individual data modules of your QR code into unique shapes.

ParameterTypeDefaultDescription
moduleShape string "square" Shape of each QR data module. All shapes are scaled to 85% of the module size for visual separation.
square circle roundedSquare diamond star heart hexagon leaf
💡
Best Practices: For maximum scannability, use square, circle, or roundedSquare. Artistic shapes like star or heart work best with high error correction (eccLevel: "H").

👁️ Eye Customization

The three finder patterns (corners) can be styled globally or individually. Individual eye settings override global defaults.

Global Eye Defaults

ParameterTypeDefaultDescription
finderOuterShape string "square" Default shape for the outer frame of all finder patterns.
square circle roundedSquare
finderInnerShape string "square" Default shape for the inner pupil of all finder patterns. Same values as above.
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.

Individual Eye Overrides

ParameterTypeDescription
eye1 object Top-Left finder pattern override.
eye2 object Top-Right finder pattern override.
eye3 object Bottom-Left finder pattern override.

Eye Object Structure

Eye Configuration ObjectJSON
{
  "outerShape": "circle",      // Optional: "square" | "circle" | "roundedSquare"
  "innerShape": "circle",      // Optional: "square" | "circle" | "roundedSquare"
  "outerColor": "#ff0000",     // Optional: Hex color for outer frame
  "innerColor": "#0000ff"      // Optional: Hex color for inner pupil
}

🖼️ Background Options

Customize the QR code background with solid colors, transparency, or images.

ParameterTypeDefaultDescription
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 border frame. The frame automatically adjusts padding to prevent corner overlap.

ParameterTypeDefaultDescription
frame.enabled bool false Enable the decorative frame.
frame.color hex "#000000" Frame border color.
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 style.
solid dashed
frame.padding int 20 Space between the QR and the frame. Auto-adjusted when cornerRadius is large.

✍️ Text Overlays

Center Text Strip

Add a text band that cuts through the center of the QR code.

ParameterTypeDefaultDescription
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 CTA (Call to Action)

Add promotional text below the QR code.

ParameterTypeDefaultDescription
ctaText string null Text displayed below 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.

📚 Get Templates

GET /api/qr/templates

Retrieve a curated library of pre-designed QR configurations. Use these as starting points or apply them directly.

Available Templates

Cyber Neon
Technology
Professional Blue
Corporate
Developer Dark
Technology
Influencer
Social
Valentine Heart
Events
🌿
Eco Friendly
Nature
Premium Gold
Luxury
Minimalist
Luxury
Candy Pop
Fun
Retro 8-Bit
Fun
Ocean Breeze
Nature
Sunset
Artistic

Response

200 OK
{
  "success": true,
  "count": 12,
  "templates": [
    {
      "id": "tech-neon",
      "name": "Cyber Neon",
      "category": "Technology",
      "config": { ... }
    },
    ...
  ]
}

📶 Generate WiFi String

POST /api/qr/content/wifi

Generate a WiFi connection string that users can scan to auto-connect to a network.

Request Parameters

ParameterTypeDefaultDescription
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.
RequestJSON
{
  "ssid": "MyNetwork",
  "password": "secret123",
  "encryption": "WPA",
  "hidden": false
}
200 OK
{
  "text": "WIFI:S:MyNetwork;T:WPA;P:secret123;H:false;;"
}

👤 Generate vCard String

POST /api/qr/content/vcard

Generate a vCard contact string that adds contact info directly to the scanner's address book.

Request Parameters

ParameterTypeDescription
firstNamestringFirst name
lastNamestringLast name
phonestringPhone number (include country code)
emailstringEmail address
orgstringOrganization/Company name
urlstringWebsite URL
RequestJSON
{
  "firstName": "John",
  "lastName": "Doe",
  "phone": "+1234567890",
  "email": "john@example.com",
  "org": "Acme Inc",
  "url": "https://example.com"
}
200 OK
{
  "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

POST /api/qr/content/geo

Generate a geographic location string that opens the location in the user's maps app.

Request Parameters

ParameterTypeDescription
lat REQdoubleLatitude coordinate
lng REQdoubleLongitude coordinate
RequestJSON
{
  "lat": 40.7128,
  "lng": -74.0060
}
200 OK
{
  "text": "geo:40.7128,-74.006"
}