Ce que vous pouvez construire
Créez un code en une requête
Envoyez la destination et votre propre référence. La réponse contient le lien court à encoder et, avec include=svg, l’image terminée.
curl -X POST "https://qrmaker.ai/api/v1/qrcodes?include=svg" \
-H "Authorization: Bearer $QR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"target_url": "https://shop.example.com/product/AB12CD",
"external_id": "AB12CD",
"name": "Product AB12CD",
"folder": "spring-campaign",
"style": { "dot_style": "fluid", "finder_shape": "smooth" }
}'
{
"success": true,
"data": {
"id": "hzu23X",
"external_id": "AB12CD",
"target_url": "https://shop.example.com/product/AB12CD",
"short_link": "https://qrmk.cc/hzu23X",
"status": "active",
"scan_count": 0,
"image_version": "a1b2c3d4e5f60718",
"svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 1000 1000\" …>"
}
}
Encodez le short_link, jamais votre propre URL : c’est lui qui rend le code modifiable et mesurable. Renvoyer le même external_id retourne le même code : une relance ne peut donc pas créer de doublon.
Points d’accès
POST /v1/qrcodes- Créer un code (ajoutez
?include=svgpour recevoir aussi l’image) POST /v1/qrcodes/batch- Créer jusqu’à 100 codes en une requête
GET /v1/qrcodes- Lister les codes, avec synchronisation incrémentale via
updated_since PATCH /v1/qrcodes/{id}- Modifier la destination, le nom, le dossier, l’état ou le style
GET /v1/qrcodes/{id}/svg- Le code en SVG, avec mise en cache par ETag
GET /v1/qrcodes/{id}/analytics- Les scans d’un code sur une période
GET /v1/analytics/summary- Plusieurs codes en un appel, regroupés par code, dossier ou jour
GET /v1/scans- Les nouveaux scans depuis le dernier que vous avez traité
GET /v1/scans/export- Les scans dans un fichier CSV
GET /v1/usage- L’usage et le quota du mois en cours
Exemples exécutables
Chaque fichier est un programme complet. Renseignez votre jeton et lancez-le.
- Shell:
quickstart.sh— créer un code, enregistrer le SVG, changer la destination, lire les scans - Node.js:
node-quickstart.mjs— le même parcours avec relances et gestion des conflits, sans paquet - Python:
python-bulk-from-csv.py— transformer un CSV de liens en codes, 100 par requête, un SVG par ligne - Google Sheets:
google-sheets.gs— créer des codes à partir des lignes d’une feuille et y inscrire les liens courts - Documentation interactive de l’API
- Spécification OpenAPI 3
- Collection Postman
- Fichier de règles pour les assistants de programmation IA
Limites et prix
- Offre
- Business : 29 $ par mois ou 279 $ par an
- Essai gratuit
- 14 jours sur l’offre mensuelle pour les nouveaux clients. Une carte est requise.
- Quota mensuel
- 50 000 requêtes réussies. Les requêtes en échec ne comptent pas.
- Limite de débit
- 120 requêtes par minute et par compte
- Où l’appeler
- De serveur à serveur. Les appels depuis un navigateur sont bloqués par CORS.
- Format d’image
- SVG uniquement. Convertissez en PNG dans votre propre système si nécessaire.
Des détails qui vous évitent des ennuis plus tard
- Création sûre en cas de relance. Un
external_idest unique par compte. Le même identifiant avec la même destination retourne le code existant avec un 200. - Un POST ne déplace jamais un code imprimé. Le même identifiant avec une autre destination retourne 409. Changer une destination passe toujours par un PATCH explicite, soumis aux mêmes contrôles de sécurité que le site.
- Des codes d’erreur stables. Chaque erreur comporte un
codelisible par machine. Le message en anglais s’adresse aux humains et peut changer. - Mettez l’image en cache par version.
image_versionne change que lorsque l’image change, et sert aussi d’ETag pour le point d’accès SVG. Changer une destination ne le modifie jamais. - Jetons en lecture seule. Donnez aux outils de reporting un jeton qui ne peut faire que des GET. S’il fuit, il ne permet de rien créer, modifier ni supprimer.
Questions fréquentes
L’API a-t-elle une offre gratuite ?
Non. L’API fait partie de l’offre Business. Les nouveaux clients peuvent essayer gratuitement l’offre mensuelle pendant 14 jours ; une carte est requise et l’offre se renouvelle à 29 $ par mois sans résiliation.
Puis-je obtenir des images PNG ?
L’API retourne du SVG, net à toutes les tailles d’impression et utilisable dans une balise img. Si vous avez besoin de PNG, convertissez le SVG dans votre propre système. Le guide d’intégration montre comment faire avec Node, Python et le navigateur.
Puis-je appeler l’API depuis une page web ?
Non. Les requêtes cross-origin depuis un navigateur sont bloquées : le jeton reste ainsi sur votre serveur. Appelez l’API depuis votre backend et transmettez le résultat à la page.
Proposez-vous des webhooks ?
Non. À la place, GET /v1/scans retourne les nouveaux scans dans l’ordre. Interrogez-le toutes les 30 à 60 secondes et conservez le curseur renvoyé. Les réponses vides ne comptent pas dans le quota.
Que deviennent mes codes si je résilie ?
Ils continuent de rediriger. L’accès à l’API s’arrête à la fin de l’offre, comme les autres fonctions Business.