API QR Branding
L'API de QR codes la plus personnalisable du marché. Générez des QR codes saisissants, à votre marque et conformes à la norme ISO 18004, avec 37 formes de modules, 118 modèles, un design assisté par IA et 5 formats de sortie.
Abonnez-vous sur RapidAPI : rapidapi.com/quartzondev/api/qr-branding. Les offres et les quotas sont indiqués sur la page RapidAPI.
Démarrage rapide
1. Générez un QR code personnalisé
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"
}'
Réponse :
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 15234
}
2. Générez à partir d'un modèle
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 conçu par l'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"
}'
Réponse :
{
"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"
}
Exemples de code
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`);
}
Aperçu des fonctionnalités
| Catégorie | Détails |
|---|---|
| Formes de modules | 37 : square, circle, diamond, star, heart, hexagon, leaf, cross, dot, mosaic, clipped, edgecut, pointed, pill, rounded, japanese, octagon, shield, arrow, drop + SVG personnalisé |
| Modèles | 118 modèles prêts à l'emploi répartis en 28 catégories |
| Fournisseurs d'IA | 9 fournisseurs de LLM et tout endpoint compatible OpenAI (apportez votre clé), ou IA gérée sans clé |
| Formats de sortie | PNG, JPEG, SVG, PDF, WebP |
| Résolution maximale | 4 096 × 4 096 pixels |
| Dégradés | Linéaire, radial, conique, avec un nombre illimité d'arrêts de couleur |
| Effets visuels | Ombre, lueur/néon, relief/3D, bruit, flou, fondu des bords, filtres de couleur |
| Prise en charge des logos | URL ou Base64, formes ronde/carrée/arrondie, ombre, taille personnalisée |
| Textes superposés | Texte circulaire, bandeau central, bannières CTA |
| Cadres | Rectangle, bulle de dialogue, badge, écusson, cercle |
| Correction d'erreurs | L (7 %), M (15 %), Q (25 %), H (30 %) — ISO 18004 |
| Assistants de contenu | Générateurs de chaînes WiFi, vCard, géolocalisation |
| Images de fond | URL/Base64, modes de fusion, modes d'ajustement, flou |
| Modules connectés | Connexions fluides, nettes ou arrondies pour des designs artistiques |
Catégories de modèles (28)
Technologie, Entreprise, Social, Luxe, Nature, Artistique, Marketing, Événements, Musique, Ludique, Arrière-plan, Culture, Industrie, Restaurant, Commerce de détail, Éducation, Voyage, Automobile, Santé (soins), Réseaux sociaux, Art et design, Business, Alimentation et boissons, Finance, Santé, Juridique, Associatif, Immobilier.
Utilisez GET /api/qr/templates?category=luxury pour filtrer par catégorie.
Fournisseurs et modèles d'IA
| Fournisseur | Modèles |
|---|---|
| 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 | Tout endpoint compatible OpenAI (Ollama, LM Studio, vLLM) ; définissez llmProvider: "local" et transmettez localEndpoint |
Tout identifiant de modèle proposé par votre fournisseur fonctionne ; cette liste présente ceux que nous recommandons.
Remarque : sur
/api/qr/ai/generate, vous fournissez votre propre clé API du fournisseur de LLM choisi et le fournisseur vous facture directement ; QR Branding n'ajoute aucune majoration. Sur/api/qr/ai/generate-managed, aucune clé de LLM n'est nécessaire : nous exécutons les modèles, et ces appels comptent dans le quota d'IA gérée distinct de votre offre.
Endpoints
POST /api/qr/generate : générer un QR personnalisé
Générez un QR code entièrement personnalisable avec plus de 100 paramètres : formes de modules, dégradés, effets, logos, textes superposés, cadres, etc. Accepte un corps JSON ou du multipart/form-data pour envoyer un fichier de logo.
Corps de la requête :
{
"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"
}
Réponse 200 :
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 15234
}
Réponse 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 : générer un QR avec l'IA
Décrivez votre QR code idéal en langage naturel et laissez l'IA le concevoir pour vous. Prend en charge 9 fournisseurs de LLM et tout endpoint compatible OpenAI (local) ; tout identifiant de modèle proposé par votre fournisseur est accepté. Ici, vous fournissez votre propre clé API de LLM ; si vous préférez ne pas en utiliser, appelez POST /api/qr/ai/generate-managed (ci-dessous).
Corps de la requête :
{
"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"
}
Réponse 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 gérée (sans clé de LLM)
Même format de requête que /api/qr/ai/generate, mais llmProvider, llmApiKey et llmModel sont ignorés : aucune clé de LLM n'est nécessaire. Le moteur utilise ses propres modèles avec une chaîne de repli (Groq → Gemini → OpenAI). Les appels comptent dans le quota d'IA gérée de votre offre.
{
"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 réponse a le même format que /api/qr/ai/generate, avec en plus le champ "managed": true.
GET /api/qr/ai/providers : obtenir les fournisseurs d'IA
Liste tous les fournisseurs de LLM pris en charge et leurs modèles disponibles pour la génération de QR assistée par IA.
Réponse 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 : lister les modèles
Parcourez 118 modèles de QR codes conçus par des professionnels, répartis en 28 catégories.
Paramètres de requête :
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
category | string | Non | Filtrer par catégorie (par exemple luxury, corporate, social) |
Réponse 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} : générer à partir d'un modèle
Générez un QR code à partir d'un modèle prêt à l'emploi. Le design visuel du modèle est conservé ; vous pouvez éventuellement remplacer les paramètres de sortie.
Paramètres de chemin :
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
templateId | string | Oui | Identifiant du modèle issu de l'endpoint de liste des modèles (par exemple cyber-neon) |
Corps de la requête :
{
"content": "https://mywebsite.com",
"fileFormat": "png",
"responseType": "base64",
"outputWidth": 600,
"logoUrl": "https://example.com/logo.png",
"ctaText": "Visit Us"
}
Réponse 200 :
{
"success": true,
"qrBase64": "iVBORw0KGgoAAAANSUhEUg...",
"format": "png",
"contentType": "image/png",
"sizeBytes": 22100
}
POST /api/qr/content/wifi : générer une chaîne WiFi
Génère une chaîne de connexion WiFi à encoder dans un QR. Les utilisateurs qui scannent le QR code se voient proposer de se connecter automatiquement au réseau.
Corps de la requête :
{
"ssid": "MyNetwork",
"password": "MyP@ssw0rd!",
"encryption": "WPA",
"hidden": false
}
Réponse 200 :
{
"success": true,
"text": "WIFI:T:WPA;S:MyNetwork;P:MyP@ssw0rd!;H:false;;"
}
POST /api/qr/content/vcard : générer une chaîne vCard
Génère une chaîne de contact vCard à encoder dans un QR. Une fois scanné, le QR code propose à l'utilisateur d'enregistrer le contact dans son téléphone.
Corps de la requête :
{
"firstName": "John",
"lastName": "Doe",
"phone": "+1-555-123-4567",
"email": "john.doe@example.com",
"org": "Acme Corp",
"url": "https://johndoe.com"
}
Réponse 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 : générer une chaîne de géolocalisation
Génère une URI de géolocalisation à encoder dans un QR. Une fois scanné, le QR code ouvre le lieu dans l'application de cartes par défaut de l'utilisateur.
Corps de la requête :
{
"lat": 40.7128,
"lng": -74.0060
}
Réponse 200 :
{
"success": true,
"text": "geo:40.7128,-74.006"
}
Gestion des erreurs
Toutes les erreurs suivent un format cohérent :
{
"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"
}
]
}
}
Codes d'erreur
Validation (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
Authentification (401)
UNAUTHORIZED · INVALID_API_KEY · MISSING_API_KEY
Introuvable (404)
RESOURCE_NOT_FOUND · TEMPLATE_NOT_FOUND
Erreurs IA/LLM (400/500)
INVALID_LLM_PROVIDER · INVALID_LLM_MODEL · LLM_API_KEY_INVALID · AI_GENERATION_FAILED · AI_CONFIG_INVALID · AI_REQUEST_TIMEOUT
Budget de sortie (422)
OUTPUT_TOO_COMPLEX — le design produirait un SVG ou un PDF de plus de 20 MB ou un canevas de plus de 5120 px de côté. Exportez en PNG, raccourcissez le contenu ou utilisez des formes de modules plus simples
Capacité (503)
SERVER_BUSY · AI_QUOTA_EXCEEDED (l'IA gérée n'a plus de quota chez aucun fournisseur ; réessayez plus tard)
Erreurs serveur (500)
INTERNAL_ERROR · QR_GENERATION_FAILED · LOGO_LOAD_FAILED · BACKGROUND_LOAD_FAILED