API CatalogQR Code Generator API

QR Code Generator API

Generate QR codes from text, URLs, WiFi credentials, vCards, email links, and SMS messages. Every endpoint returns a ready-to-use image as base64 and a data URL, with full control over colors, size, error correction, and an optional logo overlay. Use it in event tools, venue WiFi flows, ecommerce apps, CMS plugins, internal dashboards, and marketing automation.

Open QR Code Generator API on RapidAPI

Base URL and authentication

https://qr-code-generator-api-with-logo.p.rapidapi.com

All requests are POST with a JSON body and authenticate through RapidAPI. Send these headers on every call:

HeaderValue
Content-Typeapplication/json
X-RapidAPI-KeyYour RapidAPI key
X-RapidAPI-Hostqr-code-generator-api-with-logo.p.rapidapi.com

See Authentication, Rate limits, and Errors for shared behavior.

Rendering options

Every endpoint accepts these optional rendering fields in addition to its own payload fields:

FieldTypeDefaultDescription
outputpng or svgpngOutput image format.
box_sizeinteger10Pixel size of each QR module, 240. PNG only.
borderinteger4Quiet-zone width in modules, 012.
fill_colorstring#000000Foreground (module) color.
back_colorstring#ffffffBackground color.
error_correctionL, M, Q, HMError correction level. Use H when adding a logo.
logo_base64stringnullPNG/JPEG/WebP logo as raw base64 or a data URL. PNG output only.
logo_size_ratiofloat0.2Logo size as a fraction of the QR, 0.050.3.

See QR Code API with Logo for branded output.

Response envelope

Every endpoint returns the same image payload inside the standard envelope:

{
  "success": true,
  "data": {
    "payload": "https://apimask.dev",
    "format": "png",
    "mime_type": "image/png",
    "data_base64": "iVBORw0KGgo...",
    "data_url": "data:image/png;base64,iVBORw0KGgo...",
    "size_px": 330
  },
  "error": null,
  "meta": { "request_id": "req_6c2a9f0b1d34" }
}
FieldTypeDescription
payloadstringThe encoded value (URL, WiFi string, vCard, etc.).
formatpng or svgOutput format.
mime_typestringimage/png or image/svg+xml.
data_base64stringImage bytes as base64.
data_urlstringReady-to-embed data: URL.
size_pxinteger or nullRendered width in pixels for PNG; null for SVG.

Endpoints

POST /v1/qr/generate
POST /v1/qr/wifi
POST /v1/qr/vcard
POST /v1/qr/email
POST /v1/qr/sms
POST /v1/qr/url

Generate (text or URL)

POST /v1/qr/generate — encode any text or URL. Plus all rendering options.

FieldTypeRequiredDescription
valuestringYesText or URL to encode. 1–4096 characters.
curl --request POST \
  --url https://qr-code-generator-api-with-logo.p.rapidapi.com/v1/qr/generate \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: qr-code-generator-api-with-logo.p.rapidapi.com" \
  --data '{"value":"https://apimask.dev","output":"png","box_size":10,"border":4}'

URL

POST /v1/qr/url — encode a URL with validation. Plus all rendering options.

FieldTypeRequiredDescription
urlstringYesURL to encode. 3–2048 characters.
curl --request POST \
  --url https://qr-code-generator-api-with-logo.p.rapidapi.com/v1/qr/url \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: qr-code-generator-api-with-logo.p.rapidapi.com" \
  --data '{"url":"https://apimask.dev/pricing","output":"svg"}'

WiFi

POST /v1/qr/wifi — encode WiFi credentials so a scan connects automatically. See the focused WiFi QR Code API page. Plus all rendering options.

FieldTypeRequiredDefaultDescription
ssidstringYesNetwork name. 1–128 characters.
passwordstringNonullNetwork password. Up to 256 characters.
encryptionWPA, WEP, nopassNoWPANetwork security type.
hiddenbooleanNofalseWhether the SSID is hidden.
curl --request POST \
  --url https://qr-code-generator-api-with-logo.p.rapidapi.com/v1/qr/wifi \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: qr-code-generator-api-with-logo.p.rapidapi.com" \
  --data '{"ssid":"Guest WiFi","password":"secret123","encryption":"WPA","hidden":false}'

vCard

POST /v1/qr/vcard — encode contact details as a scannable vCard. Plus all rendering options.

FieldTypeRequiredDescription
full_namestringYesContact name. 1–160 characters.
phonestringNoPhone number. Up to 64 characters.
emailstringNoEmail address. Up to 254 characters.
organizationstringNoCompany or organization. Up to 160 characters.
titlestringNoJob title. Up to 160 characters.
websitestringNoWebsite URL. Up to 512 characters.
addressstringNoPostal address. Up to 512 characters.
curl --request POST \
  --url https://qr-code-generator-api-with-logo.p.rapidapi.com/v1/qr/vcard \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: qr-code-generator-api-with-logo.p.rapidapi.com" \
  --data '{"full_name":"Aftaab","organization":"ApiMask","email":"[email protected]","website":"https://apimask.dev"}'

Email

POST /v1/qr/email — encode a pre-filled email link. Plus all rendering options.

FieldTypeRequiredDescription
tostringYesRecipient email. 3–254 characters.
subjectstringNoPre-filled subject. Up to 200 characters.
bodystringNoPre-filled body. Up to 1000 characters.
curl --request POST \
  --url https://qr-code-generator-api-with-logo.p.rapidapi.com/v1/qr/email \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: qr-code-generator-api-with-logo.p.rapidapi.com" \
  --data '{"to":"[email protected]","subject":"API question","body":"Hi, I have a question about your API."}'

SMS

POST /v1/qr/sms — encode a pre-filled SMS. Plus all rendering options.

FieldTypeRequiredDescription
phonestringYesDestination number. 3–64 characters.
messagestringNoPre-filled message. Up to 500 characters.
curl --request POST \
  --url https://qr-code-generator-api-with-logo.p.rapidapi.com/v1/qr/sms \
  --header "Content-Type: application/json" \
  --header "X-RapidAPI-Key: $RAPIDAPI_KEY" \
  --header "X-RapidAPI-Host: qr-code-generator-api-with-logo.p.rapidapi.com" \
  --data '{"phone":"+15551234567","message":"START"}'

Errors

Validation failures return INVALID_REQUEST (HTTP 400); auth and quota issues return UNAUTHORIZED (401) or RATE_LIMIT_EXCEEDED (429). See Errors for the full list and envelope shape.