Aller au contenu

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égorieDétails
Formes de modules37 : square, circle, diamond, star, heart, hexagon, leaf, cross, dot, mosaic, clipped, edgecut, pointed, pill, rounded, japanese, octagon, shield, arrow, drop + SVG personnalisé
Modèles118 modèles prêts à l'emploi répartis en 28 catégories
Fournisseurs d'IA9 fournisseurs de LLM et tout endpoint compatible OpenAI (apportez votre clé), ou IA gérée sans clé
Formats de sortiePNG, JPEG, SVG, PDF, WebP
Résolution maximale4 096 × 4 096 pixels
DégradésLinéaire, radial, conique, avec un nombre illimité d'arrêts de couleur
Effets visuelsOmbre, lueur/néon, relief/3D, bruit, flou, fondu des bords, filtres de couleur
Prise en charge des logosURL ou Base64, formes ronde/carrée/arrondie, ombre, taille personnalisée
Textes superposésTexte circulaire, bandeau central, bannières CTA
CadresRectangle, bulle de dialogue, badge, écusson, cercle
Correction d'erreursL (7 %), M (15 %), Q (25 %), H (30 %) — ISO 18004
Assistants de contenuGénérateurs de chaînes WiFi, vCard, géolocalisation
Images de fondURL/Base64, modes de fusion, modes d'ajustement, flou
Modules connectésConnexions 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

FournisseurModèles
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
LocalTout 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ètreTypeObligatoireDescription
categorystringNonFiltrer 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ètreTypeObligatoireDescription
templateIdstringOuiIdentifiant 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