API do QR Branding
A API de QR codes mais personalizável do mercado. Gere QR codes impressionantes, com a sua marca e em conformidade com a ISO 18004, com 37 formas de módulo, 118 modelos, design com IA e 5 formatos de saída.
Assine no RapidAPI: rapidapi.com/quartzondev/api/qr-branding. Os planos e as cotas estão listados na página do RapidAPI.
Início rápido
1. Gere um QR code 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"
}'
Resposta:
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 15234
}
2. Gere a partir de um modelo
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. QR code com 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"
}'
Resposta:
{
"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"
}
Exemplos 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`);
}
Visão geral dos recursos
| Categoria | Detalhes |
|---|---|
| Formas de módulo | 37: square, circle, diamond, star, heart, hexagon, leaf, cross, dot, mosaic, clipped, edgecut, pointed, pill, rounded, japanese, octagon, shield, arrow, drop + SVG personalizado |
| Modelos | 118 modelos prontos em 28 categorias |
| Provedores de IA | 9 provedores de LLM mais qualquer endpoint compatível com OpenAI (traga a sua chave), ou IA gerenciada sem chave |
| Formatos de saída | PNG, JPEG, SVG, PDF, WebP |
| Resolução máxima | 4.096 × 4.096 pixels |
| Degradês | Linear, radial e cônico, com paradas de cor ilimitadas |
| Efeitos visuais | Sombra, brilho/neon, relevo/3D, ruído, desfoque, esmaecimento das bordas, filtros de cor |
| Suporte a logotipo | URL ou Base64, formas circular/quadrada/arredondada, sombra, tamanho personalizado |
| Textos sobrepostos | Texto circular, faixa central, banners de CTA |
| Molduras | Retângulo, balão de fala, selo, escudo, círculo |
| Correção de erros | L (7%), M (15%), Q (25%), H (30%) — ISO 18004 |
| Auxiliares de conteúdo | Geradores de strings de Wi-Fi, vCard e geolocalização |
| Imagens de fundo | URL/Base64, modos de mesclagem, modos de ajuste, desfoque |
| Módulos conectados | Conexões fluidas, retas ou arredondadas para designs artísticos |
Categorias de modelos (28)
Tecnologia, Corporativo, Social, Luxo, Natureza, Artístico, Marketing, Eventos, Música, Diversão, Fundo, Cultura, Indústria, Restaurante, Varejo, Educação, Viagens, Automotivo, Assistência médica, Redes sociais, Arte e design, Negócios, Comida e bebida, Finanças, Saúde, Jurídico, Sem fins lucrativos, Imóveis.
Use GET /api/qr/templates?category=luxury para filtrar por categoria.
Provedores e modelos de IA
| Provedor | Modelos |
|---|---|
| OpenAI | 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 |
| Anthropic | claude-fable-5-1, claude-opus-5-5, claude-sonnet-5-5, claude-haiku-4-5 |
| gemini-3.1-pro-preview, gemini-3.8-flash, gemini-3.5-flash-lite, gemini-3.5-flash | |
| Mistral | mistral-large-latest, mistral-medium-latest, mistral-small-latest |
| Cohere | command-a-plus-05-2026, command-a-03-2025, command-a-reasoning-08-2025, command-r7b-12-2024 |
| Groq | openai/gpt-oss-120b, openai/gpt-oss-20b, llama-3.3-70b-versatile |
| xAI | grok-4.7, grok-4.3, grok-4.20-0309-non-reasoning |
| DeepSeek | deepseek-v4-pro, deepseek-flash |
| Qwen | qwen3.8-max, qwen3.7-plus, qwen3.8-flash |
| Local | Qualquer endpoint compatível com OpenAI (Ollama, LM Studio, vLLM); defina llmProvider: "local" e envie localEndpoint |
Qualquer ID de modelo que o seu provedor ofereça funciona; esta lista mostra os recomendados.
Observação: em
/api/qr/ai/generatevocê fornece a sua própria chave de API do provedor de LLM escolhido e o provedor cobra você diretamente; o QR Branding não adiciona nenhum acréscimo. Em/api/qr/ai/generate-managednão é preciso chave de LLM: nós executamos os modelos, e essas chamadas contam para a cota independente de IA gerenciada do seu plano.
Endpoints
POST /api/qr/generate — Gerar QR personalizado
Gere um QR code totalmente personalizável com mais de 100 parâmetros, incluindo formas de módulo, degradês, efeitos, logotipos, textos sobrepostos, molduras e muito mais. Aceita corpo JSON ou multipart/form-data para enviar o arquivo do logotipo.
Corpo da requisição:
{
"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"
}
Resposta 200:
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 15234
}
Resposta 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 — Gerar QR com IA
Descreva o seu QR code ideal em linguagem natural e deixe a IA criar o design para você. Compatível com 9 provedores de LLM e com qualquer endpoint compatível com OpenAI (local); aceita qualquer ID de modelo que o seu provedor ofereça. Aqui você fornece a sua própria chave de API do LLM; se preferir não usar uma, use POST /api/qr/ai/generate-managed (abaixo).
Corpo da requisição:
{
"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"
}
Resposta 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 gerenciada (sem chave de LLM)
Mesmo formato de requisição de /api/qr/ai/generate, mas llmProvider, llmApiKey e llmModel são ignorados: não precisa de chave de LLM. O motor usa os seus próprios modelos com uma cadeia de reserva (Groq → Gemini → OpenAI). As chamadas contam para a cota de IA gerenciada do seu plano.
{
"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
}
A resposta tem o mesmo formato de /api/qr/ai/generate, mais o campo "managed": true.
GET /api/qr/ai/providers — Obter provedores de IA
Lista todos os provedores de LLM compatíveis e os modelos disponíveis para a geração de QR com IA.
Resposta 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 modelos
Explore 118 modelos de QR code com design profissional em 28 categorias.
Parâmetros de query:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
category | string | Não | Filtra por categoria (por exemplo, luxury, corporate, social) |
Resposta 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} — Gerar a partir de um modelo
Gere um QR code usando um modelo pronto. O design visual do modelo é preservado; opcionalmente, você pode substituir as configurações de saída.
Parâmetros de caminho:
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
templateId | string | Sim | ID do modelo retornado pelo endpoint de listagem de modelos (por exemplo, cyber-neon) |
Corpo da requisição:
{
"content": "https://mywebsite.com",
"fileFormat": "png",
"responseType": "base64",
"outputWidth": 600,
"logoUrl": "https://example.com/logo.png",
"ctaText": "Visit Us"
}
Resposta 200:
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 22100
}
POST /api/qr/content/wifi — Gerar string de Wi-Fi
Gere uma string de conexão Wi-Fi para codificar no QR. Quem ler o QR code verá automaticamente a opção de se conectar à rede.
Corpo da requisição:
{
"ssid": "MyNetwork",
"password": "MyP@ssw0rd!",
"encryption": "WPA",
"hidden": false
}
Resposta 200:
{
"success": true,
"text": "WIFI:T:WPA;S:MyNetwork;P:MyP@ssw0rd!;H:false;;"
}
POST /api/qr/content/vcard — Gerar string de vCard
Gere uma string de contato vCard para codificar no QR. Ao ler o QR code, o usuário verá a opção de salvar o contato no celular.
Corpo da requisição:
{
"firstName": "John",
"lastName": "Doe",
"phone": "+1-555-123-4567",
"email": "john.doe@example.com",
"org": "Acme Corp",
"url": "https://johndoe.com"
}
Resposta 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 — Gerar string de geolocalização
Gere uma URI de geolocalização para codificar no QR. Ao ler o QR code, a localização é aberta no app de mapas padrão do usuário.
Corpo da requisição:
{
"lat": 40.7128,
"lng": -74.0060
}
Resposta 200:
{
"success": true,
"text": "geo:40.7128,-74.006"
}
Tratamento de erros
Todos os erros seguem um formato consistente:
{
"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 erro
Validação (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
Autenticação (401)
UNAUTHORIZED · INVALID_API_KEY · MISSING_API_KEY
Não encontrado (404)
RESOURCE_NOT_FOUND · TEMPLATE_NOT_FOUND
Erros de IA/LLM (400/500)
INVALID_LLM_PROVIDER · INVALID_LLM_MODEL · LLM_API_KEY_INVALID · AI_GENERATION_FAILED · AI_CONFIG_INVALID · AI_REQUEST_TIMEOUT
Orçamento de saída (422)
OUTPUT_TOO_COMPLEX — o design produziria um SVG ou PDF com mais de 20 MB ou uma tela com mais de 5120 px por lado. Exporte em PNG, encurte o conteúdo ou use formatos de módulo mais simples
Capacidade (503)
SERVER_BUSY · AI_QUOTA_EXCEEDED (a IA gerenciada ficou sem cota em todos os provedores; tente mais tarde)
Erros do servidor (500)
INTERNAL_ERROR · QR_GENERATION_FAILED · LOGO_LOAD_FAILED · BACKGROUND_LOAD_FAILED