Automatiser les QR codes avec Python : bibliothèque ou API REST ?
Ce qu'une bibliothèque Python peut faire
Quiconque souhaite générer des QR codes avec Python trouve plusieurs bibliothèques gratuites. Elles transforment un texte en une image, souvent aussi en SVG, localement et sans service. Pour des étiquettes avec des numéros de série, des documents internes ou des accès Wi-Fi, c'est exactement ce qu'il faut.
Où les images statiques atteignent leurs limites
Un code généré ainsi est statique, le contenu est intégré dans le motif. Si la cible change lors d'un refonte, si une faute de frappe n'est détectée qu'après l'impression ou si vous voulez savoir combien de fois il est scanné, cela ne vous aide pas. Pour cela, il existe des codes dynamiques : Same-QR stocke la cible derrière une courte adresse constante, compte les scans et vérifie la nuit si chaque cible est accessible.
Codes dynamiques via API REST
L'API se trouve à l'adresse https://sameqr.com/api/v1. Créez une clé dans le tableau de bord sous Compte, « Accès pour CLI, scripts et agents », « lire + écrire » pour la création, et définissez-la comme variable d'environnement SAMEQR_API_KEY. Cet exemple utilise uniquement la bibliothèque standard :
import json, os, urllib.request
API = "https://sameqr.com/api/v1"
KEY = os.environ["SAMEQR_API_KEY"]
def rufe(methode, weg, daten=None):
req = urllib.request.Request(
API + weg, method=methode,
data=json.dumps(daten).encode() if daten else None,
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"})
with urllib.request.urlopen(req) as r:
return json.load(r)
code = rufe("POST", "/qr", {"name": "Anleitung Modell A", "targetUrl": "https://example.com/anleitung-a"})
print(code["id"])Si l'API répond avec une erreur, urlopen lève une exception. Le contenu contient toujours un objet error avec status, code et message. Évaluez-le plutôt que de laisser le script continuer aveuglément.
Un flux de travail issu de la pratique
Un fabricant imprime sur chaque emballage un code pour les instructions :
- Le script lit la liste des produits à partir d'un fichier CSV.
- Pour chaque nouveau produit, il crée un code et mémorise son identifiant à côté du numéro d'article.
- Si une nouvelle version de la notice apparaît, modifiez uniquement la cible via PATCH sur /qr/<id>. Cela nécessite une clé « complet » et l'en-tête X-Confirm avec la version lue.
- Un second script avec une clé de lecture récupère les nombres de scans une fois par mois.
Prévoyez les limites : au maximum 10 modifications de cible par heure et 30 par jour via l'API, 120 demandes par minute par clé, 60 par heure dans le forfait gratuit, 300 dans Start, 1.000 dans Pro et 5.000 dans Agentur. En cas de 429, attendez le nombre de secondes indiqué dans l'en-tête Retry-After.
Clé sécurisée dans le script
- Ne jamais écrire la clé dans le fichier .py, mais la lire depuis l'environnement.
- Pour les scripts en lecture seule, utiliser une clé « lecture seule ».
- Un script, une clé propre avec un nom parlant et une durée de vie adaptée.
Conclusion : pourquoi Same-QR
Pour les codes statiques, une bibliothèque suffit. Dès qu'il s'agit d'impression, Same-QR constitue une meilleure base : une API REST légère dans chaque forfait, des erreurs compréhensibles, une protection contre les écritures parallèles et des cibles que vous pouvez modifier après l'impression.
Lancez-vous tout de suite : inscrivez-vous gratuitement sur sameqr.com, deux codes QR dynamiques sont gratuits pour toujours. L’API, la CLI et le serveur MCP sont inclus dans chaque offre, la documentation se trouve sur sameqr.com/entwickler.
Questions fréquentes
Non. L'API REST fonctionne avec la bibliothèque standard ou toute bibliothèque pour les requêtes Web.
Oui. Pour les contenus fixes, un code statique suffit ; pour tout ce qui est imprimé avec un changement possible, utilisez un code dynamique.
Dans le tableau de bord en PNG, SVG ou PDF, ou via l'API avec la même clé. Les méthodes sont décrites dans la documentation sur sameqr.com/entwickler.
Réservez votre place avant le lancement.
Un e-mail dès le lancement de l’outil — avec les tarifs et l’offre gratuite. Pas de spam, désabonnement à tout moment.
- Votre compte gratuit est réservé — il n’y a de toute façon rien à payer pour l’instant
- 90 jours de modifications de destination illimitées au lieu de 30, réservé aux inscrits en avance
- Prix de lancement garanti, même si nous augmentons plus tard
En vous inscrivant, vous consentez à recevoir la newsletter. Vous pouvez retirer ce consentement à tout moment via le lien de désabonnement présent dans chaque e-mail.