Incluse dans l’offre Business

API QR code

Créez des QR codes dynamiques depuis votre propre système, changez leur destination à tout moment et rapatriez les données de scan dans vos rapports.

REST · JSON · OpenAPI 3 · Collection Postman

Ce que vous pouvez construire

Un code par commande, produit ou tableCréez des codes à partir de vos propres enregistrements et gardez votre identifiant sur chacun.
Des milliers en une foisEnvoyez jusqu’à 100 codes par requête. Chacun peut être relancé séparément sans risque.
Des destinations qui changentRedirigez un code déjà imprimé vers une nouvelle page avec un seul PATCH. L’image reste identique.
Du SVG prêt à imprimerRécupérez n’importe quel code en SVG, à la taille et avec la marge voulues, avec votre logo et vos couleurs.
Les données de scan dans vos rapportsTotaux par jour, pays, appareil, application et emplacement, dans le fuseau horaire de votre choix.
Un flux en direct sans webhooksRécupérez les nouveaux scans dans l’ordre et conservez un seul curseur. Rien à exposer de votre côté.

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=svg pour 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.

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.

Voir le prix de l’offre Business

Des détails qui vous évitent des ennuis plus tard

  • Création sûre en cas de relance. Un external_id est 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 code lisible par machine. Le message en anglais s’adresse aux humains et peut changer.
  • Mettez l’image en cache par version. image_version ne 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.

Commencez par un code gratuit.

REST · JSON · OpenAPI 3 · Collection Postman

Lire la documentation de l’API →