Clés API utilisateur
Si vous préférez vous authentifier avec votre propre clé, émise depuis /dashboard/keys, plutôt qu'avec le secret de proxy de la marketplace RapidAPI, cette page est pour vous. Même moteur, autre porte d'entrée.
Les clients de la marketplace doivent continuer d'utiliser
X-RapidAPI-Proxy-Secretavecapi.qr-branding.com. La passerelle des clés utilisateur se trouve surqr-branding.com/api/v1/*et n'interfère jamais avec le canal marketplace.
URL de base
https://qr-branding.com/api/v1
Authentification
Envoyez votre clé à chaque requête :
X-API-Key: qrb_…
La clé est vérifiée en bordure de réseau (CF Pages) par rapport au hachage stocké dans notre base de données ; le moteur lui-même ne voit jamais votre clé en clair.
Si la clé est absente, mal formée ou révoquée, vous obtenez :
{ "success": false, "error": "Key not recognised, revoked, or malformed.", "code": "invalid_api_key" }
(Code de statut 401.)
Prérequis : formule Studio
L'API est une fonctionnalité de Studio. Toutes les requêtes, pas seulement celles d'IA, exigent un pack Studio actif (acheté il y a moins de 12 mois et non remboursé). Si la clé est valide mais que votre compte n'a pas Studio, la passerelle répond 402 avec des liens vers cette page et vers les tarifs :
{ "success": false, "error": "The QR Branding API is included with Studio. Buy a Studio pack at https://qr-branding.com/pricing to use your key.", "code": "studio_required", "docs": "https://qr-branding.com/docs/api/public-keys", "pricing": "https://qr-branding.com/pricing" }
Les générations IA sur nos clés LLM (POST /api/v1/qr/ai/generate/server) décomptent en plus un crédit IA de votre pack Studio ; une fois épuisés, vous recevez 402 out_of_api_credits avec les mêmes liens. Les autres appels ne consomment pas de crédits.
Endpoints disponibles
La passerelle transmet au moteur tous les chemins sous /api/v1/*. Ainsi :
| URL publique | Transmis à |
|---|---|
POST /api/v1/qr/generate | POST /api/qr/generate |
POST /api/v1/qr/ai/generate/server | POST /api/qr/ai/generate/server |
GET /api/v1/qr/templates | GET /api/qr/templates |
POST /api/v1/qr/templates/:id | POST /api/qr/templates/:id |
POST /api/v1/qr/content/:type | Assistants de contenu (wifi · vcard · geo) |
GET /api/v1/qr/ai/providers | GET /api/qr/ai/providers |
GET /api/v1/ping | GET /api/ping |
Les corps, les structures de réponse et les codes d'erreur sont identiques à ceux des endpoints du moteur : gardez vos favoris de documentation.
Test rapide
curl -X POST https://qr-branding.com/api/v1/qr/generate \
-H "X-API-Key: qrb_your_key_here" \
-H "Content-Type: application/json" \
-d '{ "content": "https://yourbrand.com", "primaryColor": "#dcc28a", "backgroundColor": "#0a0b0e", "eccLevel": "H" }' \
--output qr.png --silent --write-out "%{http_code}\n"
Si vous obtenez un 200 et un qr.png sur le disque, c'est terminé.
Limites
Les clés utilisateur ont les limites par client du canal grand public :
| Type d'appel | Par minute |
|---|---|
| Général | 120 |
Génération (/qr/generate, /qr/templates/:id) | 60 |
IA (/qr/ai/generate/server) | 30 |
Si vous atteignez une limite, vous recevez un 429 avec l'en-tête Retry-After. Les détails et les plafonds globaux se trouvent dans la Vue d'ensemble de l'API.
Envois multipart
La passerelle n'accepte que du JSON. Pour envoyer un logo ou un fond en binaire, utilisez
les champs base64 (logoBase64, backgroundImageBase64) au lieu de
multipart/form-data. Nous ajouterons peut-être la prise en charge native du multipart en v2.
Rotation
Générez une nouvelle clé, déployez-la, puis révoquez l'ancienne. La clé en clair n'est affichée qu'une seule fois : conservez-la dans votre gestionnaire de secrets.
# in your CI / secrets tool
QR_BRANDING_KEY=qrb_new_key_here
Lorsque l'ancienne clé reçoit un 401 invalid_api_key de la passerelle, cela signifie
que toute votre infrastructure a migré et vous pouvez confirmer que la rotation a fonctionné.