Aller au contenu

Vue d'ensemble de l'API

Le moteur est publié sous forme d'une petite API HTTP. Il existe deux façons de s'authentifier.

Deux canaux

1. Marketplace RapidAPI (clients existants)

Appelez https://api.qr-branding.com avec votre secret de proxy RapidAPI. Les endpoints IA utilisent votre propre clé LLM, ou l'endpoint géré, qui n'en demande aucune. Rien ne change par rapport au fonctionnement de l'API Signet QR d'origine.

2. Packs de crédits grand public (nouveau)

Achetez un pack sur /pricing. Vos endpoints IA utilisent des clés LLM côté serveur (Groq / Gemini / OpenAI), et les crédits sont déduits à chaque génération réussie. L'éditeur du front-end utilise ce canal de façon transparente.

Endpoints

MéthodeCheminRôle
POST/api/qr/generateRendre un QR à partir d'un QrConfig explicite.
POST/api/qr/ai/generateIA marketplace : vous apportez votre propre clé LLM.
POST/api/qr/ai/generate-managedIA marketplace gérée : aucune clé LLM nécessaire.
POST/api/qr/ai/generate/serverIA grand public : clé LLM côté serveur, décompte en crédits.
GET/api/qr/templatesLister les 118 modèles prêts à l'emploi (éventuellement ?category=…).
POST/api/qr/templates/{templateId}Rendre un QR à partir d'un identifiant de modèle, avec remplacements facultatifs.
POST/api/qr/content/wifiAssistant : construire la chaîne d'un QR WiFi.
POST/api/qr/content/vcardAssistant : construire la chaîne d'une vCard.
POST/api/qr/content/geoAssistant : construire la chaîne d'une géolocalisation.
GET/api/qr/ai/providersLister les fournisseurs et modèles de LLM pris en charge.
GET/api/pingVérification de santé (anonyme).

En-têtes d'authentification

RapidAPI

X-RapidAPI-Proxy-Secret: <secret>

BFF interne (site grand public)

X-Internal-Service-Secret: <secret>
X-Internal-Customer-Id:    <customer id>
X-Internal-Ts:             <unix seconds>
X-Internal-Signature:      <HMAC-SHA256(signing-key, "{customerId}.{ts}")>

TTL anti-rejeu : 60 secondes. Utilisés en interne par le front-end Next.js : vous ne les définirez jamais à la main.

Enveloppe d'erreur

Toute réponse hors 2xx a une structure stable :

{
  "success": false,
  "error": "Content length (5000) exceeds maximum allowed (4296 characters).",
  "code": "CONTENT_TOO_LONG",
  "field": "content"
}

field est renseigné lorsque l'échec concerne une entrée précise.

Limites de débit

FormulePar minuteRemarques
RapidAPI général60docs, ping, assistants
RapidAPI génération30/api/qr/generate
RapidAPI IA15appels LLM externes
Grand public général120par identifiant client
Grand public génération60par identifiant client
Grand public IA30par identifiant client

Il existe aussi des plafonds globaux par minute pour protéger l'offre gratuite d'Azure. Si vous en atteignez un, vous recevez un 429 avec un en-tête Retry-After.

Formats de sortie

png (par défaut, base64), jpg, svg, pdf, webp. Définissez "responseType": "binary" pour télécharger directement le fichier au lieu de recevoir du base64 dans le JSON.