Saltar al contenido

API de QR Branding

La API de códigos QR más personalizable que existe. Genera códigos QR impactantes, con tu marca y conformes a ISO 18004, con 37 formas de módulo, 118 plantillas, diseño asistido por IA y 5 formatos de salida.

Suscríbete en RapidAPI: rapidapi.com/quartzondev/api/qr-branding. Los planes y las cuotas figuran en la página de RapidAPI.


Inicio rápido

1. Genera un código QR personalizado

curl -X POST "https://qr-branding.p.rapidapi.com/api/qr/generate" \
  -H "Content-Type: application/json" \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: qr-branding.p.rapidapi.com" \
  -d '{
    "content": "https://example.com",
    "primaryColor": "#1a1a2e",
    "backgroundColor": "#FFFFFF",
    "moduleShape": "circle",
    "fileFormat": "png",
    "outputWidth": 512,
    "eccLevel": "H"
  }'

Respuesta:

{
  "success": true,
  "qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
  "format": "png",
  "contentType": "image/png",
  "sizeBytes": 15234
}

2. Genera a partir de una plantilla

curl -X POST "https://qr-branding.p.rapidapi.com/api/qr/templates/cyber-neon" \
  -H "Content-Type: application/json" \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: qr-branding.p.rapidapi.com" \
  -d '{
    "content": "https://mywebsite.com",
    "outputWidth": 600
  }'

3. Código QR diseñado con IA

curl -X POST "https://qr-branding.p.rapidapi.com/api/qr/ai/generate" \
  -H "Content-Type: application/json" \
  -H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
  -H "X-RapidAPI-Host: qr-branding.p.rapidapi.com" \
  -d '{
    "prompt": "A luxurious gold and black QR code with rounded modules and a subtle glow effect, suitable for a premium brand",
    "content": "https://premium-brand.com",
    "llmProvider": "openai",
    "llmApiKey": "sk-your-openai-key",
    "creativity": 0.7,
    "strictScannability": true,
    "stylePreset": "luxury"
  }'

Respuesta:

{
  "success": true,
  "qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
  "format": "png",
  "contentType": "image/png",
  "sizeBytes": 28456,
  "generatedConfig": { },
  "aiExplanation": "I designed a premium QR code with...",
  "llmProviderUsed": "openai",
  "llmModelUsed": "gpt-6-luna"
}

Ejemplos de código

Python

import requests

url = "https://qr-branding.p.rapidapi.com/api/qr/generate"
headers = {
    "Content-Type": "application/json",
    "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
    "X-RapidAPI-Host": "qr-branding.p.rapidapi.com"
}
payload = {
    "content": "https://example.com",
    "primaryColor": "#FF6B35",
    "moduleShape": "star",
    "eccLevel": "H",
    "outputWidth": 800,
    "fileFormat": "png"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

if data["success"]:
    import base64
    img_bytes = base64.b64decode(data["qrBase64"])
    with open("my_qr.png", "wb") as f:
        f.write(img_bytes)
    print(f"QR saved! Size: {data['sizeBytes']} bytes")

JavaScript (Node.js)

const response = await fetch(
  "https://qr-branding.p.rapidapi.com/api/qr/generate",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
      "X-RapidAPI-Host": "qr-branding.p.rapidapi.com",
    },
    body: JSON.stringify({
      content: "https://example.com",
      primaryColor: "#0066FF",
      moduleShape: "hexagon",
      eccLevel: "H",
      outputWidth: 600,
      fileFormat: "png",
    }),
  }
);

const data = await response.json();

if (data.success) {
  const buffer = Buffer.from(data.qrBase64, "base64");
  require("fs").writeFileSync("qr_code.png", buffer);
  console.log(`QR generated: ${data.sizeBytes} bytes`);
}

Resumen de funciones

CategoríaDetalles
Formas de módulo37: square, circle, diamond, star, heart, hexagon, leaf, cross, dot, mosaic, clipped, edgecut, pointed, pill, rounded, japanese, octagon, shield, arrow, drop + SVG personalizado
Plantillas118 prediseñadas en 28 categorías
Proveedores de IA9 proveedores de LLM y cualquier endpoint compatible con OpenAI (con tu propia clave), o IA gestionada sin clave
Formatos de salidaPNG, JPEG, SVG, PDF, WebP
Resolución máxima4096 × 4096 píxeles
DegradadosLineal, radial y cónico, con paradas de color ilimitadas
Efectos visualesSombra, resplandor/neón, relieve/3D, ruido, desenfoque, difuminado de bordes, filtros de color
LogoURL o Base64, formas circular/cuadrada/redondeada, sombra, tamaño personalizable
Textos superpuestosTexto circular, banda central, bandas de llamada a la acción (CTA)
MarcosRectángulo, bocadillo, insignia, escudo, círculo
Corrección de erroresL (7%), M (15%), Q (25%), H (30%), según ISO 18004
Utilidades de contenidoGeneradores de cadenas WiFi, vCard y geolocalización
Imágenes de fondoURL/Base64, modos de fusión, modos de ajuste, desenfoque
Módulos conectadosUniones fluidas, en ángulo o redondeadas para diseños artísticos

Categorías de plantillas (28)

Technology, Corporate, Social, Luxury, Nature, Artistic, Marketing, Events, Music, Fun, Background, Culture, Industry, Restaurant, Retail, Education, Travel, Automotive, Healthcare, Social Media, Art & Design, Business, Food & Drink, Finance, Health, Legal, Non-Profit, Real Estate.

Usa GET /api/qr/templates?category=luxury para filtrar por categoría.


Proveedores y modelos de IA

ProveedorModelos
OpenAIgpt-6-astra, gpt-6.1-sol, gpt-6-luna, gpt-6-sol, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna, gpt-4.1-mini
Anthropicclaude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-4-5
Googlegemini-3.1-pro-preview, gemini-3.8-flash, gemini-3.5-flash-lite, gemini-3.5-flash
Mistralmistral-large-latest, mistral-medium-latest, mistral-small-latest
Coherecommand-a-plus-05-2026, command-a-03-2025, command-a-reasoning-08-2025, command-r7b-12-2024
Groqopenai/gpt-oss-120b, openai/gpt-oss-20b, llama-3.3-70b-versatile
xAIgrok-4.7, grok-4.3, grok-4.20-0309-non-reasoning
DeepSeekdeepseek-v4-pro, deepseek-flash
Qwenqwen3.8-max, qwen3.7-plus, qwen3.8-flash
LocalCualquier endpoint compatible con OpenAI (Ollama, LM Studio, vLLM); indica llmProvider: "local" y pasa localEndpoint

Funciona cualquier ID de modelo que ofrezca tu proveedor; esta lista muestra los recomendados.

Nota: en /api/qr/ai/generate aportas tu propia clave de API del proveedor de LLM que elijas y el proveedor te factura directamente; QR Branding no añade ningún recargo. En /api/qr/ai/generate-managed no hace falta clave de LLM: ejecutamos los modelos nosotros, y esas llamadas cuentan para la cuota independiente de IA gestionada de tu plan.


Endpoints

POST /api/qr/generate: generar un QR personalizado

Genera un código QR totalmente personalizable con más de 100 parámetros, entre ellos formas de módulo, degradados, efectos, logos, textos superpuestos, marcos y mucho más. Admite cuerpo JSON o multipart/form-data para subir el logo como archivo.

Cuerpo de la petición:

{
  "content": "https://example.com",
  "eccLevel": "H",
  "pixelsPerModule": 20,
  "outputWidth": 512,
  "fileFormat": "png",
  "quality": 90,
  "responseType": "base64",
  "backgroundColor": "#FFFFFF",
  "transparentBackground": false,
  "primaryColor": "#000000",
  "secondaryColor": null,
  "foregroundStyle": "solid",
  "gradientType": "linear",
  "gradientDirection": "vertical",
  "gradientColors": ["#FF0000", "#0000FF"],
  "gradientStops": [0.0, 1.0],
  "gradientAngle": 0,
  "qrShape": "square",
  "moduleShape": "square",
  "moduleScale": 0.85,
  "moduleRotation": 0,
  "moduleStyle": "solid",
  "modulePattern": "standard",
  "connectedStyle": "none",
  "finderOuterShape": "square",
  "finderInnerShape": "square",
  "finderOuterColor": "#000000",
  "finderInnerColor": "#000000",
  "finderStyle": "standard",
  "logoUrl": "https://example.com/logo.png",
  "logoShape": "circle",
  "logoSizePercent": 18,
  "logoBorderWidth": 2,
  "logoBorderColor": "#FFFFFF",
  "logoShadow": true,
  "logoBackground": "solid",
  "ctaText": "SCAN ME"
}

Respuesta 200:

{
  "success": true,
  "qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
  "format": "png",
  "contentType": "image/png",
  "sizeBytes": 15234
}

Respuesta 400:

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed with 1 error.",
    "details": [
      {
        "field": "moduleShape",
        "code": "INVALID_MODULE_SHAPE",
        "message": "Invalid module shape 'triangle'. Valid shapes: square, circle, diamond, star, heart, hexagon, leaf, cross, dot, mosaic, clipped, edgecut, pointed, pill, rounded, japanese, octagon, shield, arrow, drop."
      }
    ]
  }
}

POST /api/qr/ai/generate: generar un QR con IA

Describe en lenguaje natural tu código QR ideal y deja que la IA lo diseñe por ti. Admite 9 proveedores de LLM y cualquier endpoint compatible con OpenAI (local); se acepta cualquier ID de modelo que ofrezca tu proveedor. Aquí aportas tu propia clave de API del LLM; si prefieres no usar una, llama a POST /api/qr/ai/generate-managed (más abajo).

Cuerpo de la petición:

{
  "prompt": "A modern tech-style QR code with hexagonal modules, a blue-to-purple gradient, subtle glow effect, and rounded finder patterns",
  "content": "https://myapp.com",
  "llmProvider": "openai",
  "llmApiKey": "sk-your-api-key-here",
  "llmModel": "gpt-6-luna",
  "creativity": 0.7,
  "strictScannability": true,
  "stylePreset": "tech",
  "fileFormat": "png",
  "outputWidth": 800,
  "logoUrl": "https://example.com/logo.png",
  "ctaText": "Download App"
}

Respuesta 200:

{
  "success": true,
  "qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
  "format": "png",
  "contentType": "image/png",
  "sizeBytes": 28456,
  "generatedConfig": {
    "content": "https://myapp.com",
    "moduleShape": "hexagon",
    "primaryColor": "#4A90D9",
    "gradientColors": ["#4A90D9", "#7B2FF7"],
    "gradientType": "linear",
    "gradientDirection": "vertical",
    "finderOuterShape": "roundedsquare",
    "finderInnerShape": "circle",
    "eccLevel": "H"
  },
  "aiExplanation": "I designed a tech-inspired QR code with hexagonal modules...",
  "llmProviderUsed": "openai",
  "llmModelUsed": "gpt-6-luna"
}

POST /api/qr/ai/generate-managed: IA gestionada (sin clave de LLM)

Mismo formato de petición que /api/qr/ai/generate, pero llmProvider, llmApiKey y llmModel se ignoran: no hace falta clave de LLM. El motor usa sus propios modelos con una cadena de respaldo (Groq → Gemini → OpenAI). Las llamadas cuentan para la cuota de IA gestionada de tu plan.

{
  "prompt": "A luxurious gold and black QR with rounded modules and a subtle glow effect",
  "content": "https://premium-brand.com",
  "creativity": 0.7,
  "strictScannability": true,
  "stylePreset": "luxury",
  "fileFormat": "png",
  "outputWidth": 800
}

La respuesta tiene el mismo formato que /api/qr/ai/generate, con el campo adicional "managed": true.


GET /api/qr/ai/providers: obtener los proveedores de IA

Lista todos los proveedores de LLM admitidos y sus modelos disponibles para la generación de QR con IA.

Respuesta 200:

{
  "success": true,
  "count": 10,
  "providers": [
    {
      "id": "openai",
      "name": "OpenAI",
      "defaultModel": "gpt-6-luna",
      "availableModels": ["gpt-6-astra", "gpt-6.1-sol", "gpt-6-luna", "gpt-6-sol", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "gpt-4.1-mini"]
    },
    {
      "id": "anthropic",
      "name": "Anthropic",
      "defaultModel": "claude-sonnet-5-5",
      "availableModels": ["claude-fable-5-1", "claude-opus-5-5", "claude-sonnet-5-5", "claude-haiku-4-5"]
    }
  ]
}

GET /api/qr/templates: listar plantillas

Explora 118 plantillas de códigos QR de diseño profesional en 28 categorías.

Parámetros de consulta:

ParámetroTipoObligatorioDescripción
categorystringNoFiltra por categoría (p. ej., luxury, corporate, social)

Respuesta 200:

{
  "success": true,
  "count": 118,
  "categories": [
    "Technology", "Corporate", "Social", "Luxury", "Nature",
    "Artistic", "Marketing", "Events", "Music", "Fun"
  ],
  "templates": [
    {
      "id": "cyber-neon",
      "name": "Cyber Neon",
      "category": "Technology",
      "description": "Futuristic glowing neon style with diamond modules and vibrant cyan-pink gradient"
    },
    {
      "id": "professional-blue",
      "name": "Professional Blue",
      "category": "Corporate",
      "description": "Clean corporate style with blue gradient, ideal for business"
    }
  ]
}

POST /api/qr/templates/{templateId}: generar a partir de una plantilla

Genera un código QR con una plantilla prediseñada. Se conserva el diseño visual de la plantilla; si quieres, puedes cambiar los ajustes de salida.

Parámetros de ruta:

ParámetroTipoObligatorioDescripción
templateIdstringSíID de la plantilla obtenido del endpoint de listado de plantillas (p. ej., cyber-neon)

Cuerpo de la petición:

{
  "content": "https://mywebsite.com",
  "fileFormat": "png",
  "responseType": "base64",
  "outputWidth": 600,
  "logoUrl": "https://example.com/logo.png",
  "ctaText": "Visit Us"
}

Respuesta 200:

{
  "success": true,
  "qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
  "format": "png",
  "contentType": "image/png",
  "sizeBytes": 22100
}

POST /api/qr/content/wifi: generar una cadena WiFi

Genera una cadena de conexión WiFi para codificarla en un QR. A quien escanee el código QR se le ofrecerá conectarse automáticamente a la red.

Cuerpo de la petición:

{
  "ssid": "MyNetwork",
  "password": "MyP@ssw0rd!",
  "encryption": "WPA",
  "hidden": false
}

Respuesta 200:

{
  "success": true,
  "text": "WIFI:T:WPA;S:MyNetwork;P:MyP@ssw0rd!;H:false;;"
}

POST /api/qr/content/vcard: generar una cadena vCard

Genera una cadena de contacto vCard para codificarla en un QR. Al escanear el código QR, se ofrecerá guardar el contacto en el teléfono.

Cuerpo de la petición:

{
  "firstName": "John",
  "lastName": "Doe",
  "phone": "+1-555-123-4567",
  "email": "john.doe@example.com",
  "org": "Acme Corp",
  "url": "https://johndoe.com"
}

Respuesta 200:

{
  "success": true,
  "text": "BEGIN:VCARD\nVERSION:3.0\nN:Doe;John\nFN:John Doe\nTEL:+1-555-123-4567\nEMAIL:john.doe@example.com\nORG:Acme Corp\nURL:https://johndoe.com\nEND:VCARD"
}

POST /api/qr/content/geo: generar una cadena de geolocalización

Genera una URI de geolocalización para codificarla en un QR. Al escanear el código QR, la ubicación se abrirá en la app de mapas predeterminada.

Cuerpo de la petición:

{
  "lat": 40.7128,
  "lng": -74.0060
}

Respuesta 200:

{
  "success": true,
  "text": "geo:40.7128,-74.006"
}

Gestión de errores

Todos los errores siguen un formato uniforme:

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed with 2 errors.",
    "details": [
      {
        "field": "primaryColor",
        "code": "INVALID_COLOR_FORMAT",
        "message": "Invalid color format. Use hex (#RRGGBB or #RRGGBBAA).",
        "value": "not-a-color"
      }
    ]
  }
}

Códigos de error

Validación (400) VALIDATION_ERROR · INVALID_JSON · MISSING_REQUIRED_FIELD · INVALID_FIELD_VALUE · INVALID_COLOR_FORMAT · INVALID_FILE_FORMAT · CONTENT_TOO_LONG · FILE_TOO_LARGE · INVALID_URL · INVALID_ECC_LEVEL · INVALID_MODULE_SHAPE · INVALID_GRADIENT_TYPE · INVALID_RESPONSE_TYPE · VALUE_OUT_OF_RANGE · MULTIPART_CONFIG_MISSING

Autenticación (401) UNAUTHORIZED · INVALID_API_KEY · MISSING_API_KEY

No encontrado (404) RESOURCE_NOT_FOUND · TEMPLATE_NOT_FOUND

Errores de IA/LLM (400/500) INVALID_LLM_PROVIDER · INVALID_LLM_MODEL · LLM_API_KEY_INVALID · AI_GENERATION_FAILED · AI_CONFIG_INVALID · AI_REQUEST_TIMEOUT

Presupuesto de salida (422) OUTPUT_TOO_COMPLEX — el diseño produciría un SVG o PDF de más de 20 MB o un lienzo de más de 5120 px por lado. Expórtalo en PNG, acorta el contenido o usa formas de módulo más sencillas

Capacidad (503) SERVER_BUSY · AI_QUOTA_EXCEEDED (la IA gestionada se ha quedado sin cuota en todos los proveedores; vuelve a intentarlo más tarde)

Errores del servidor (500) INTERNAL_ERROR · QR_GENERATION_FAILED · LOGO_LOAD_FAILED · BACKGROUND_LOAD_FAILED