Skip to content

Génération de QR Code

L'endpoint /qrcode génère un QR Code à partir d'une URL fournie en paramètre. Cet endpoint est pratique pour générer rapidement une image au format PNG.

Paramètres

ParamètreRequisDescription
urlOuiL'URL à encoder dans le QR Code. Doit contenir l'adresse complète
formatNonFormat de réponse : png (défaut, image directe) ou base64 (data URL en JSON)
sizeNonTaille de l'image en pixels (50-2000, défaut 200)
marginNonZone de silence en modules (0-10, défaut 4)
correctionNonNiveau de correction d'erreur : L, M, Q ou H (défaut M)
darkNonCouleur des modules en hexadécimal (ex. 000000)
lightNonCouleur de fond en hexadécimal (ex. ffffff)
iconNonURL HTTPS d'une image à superposer au centre du QR Code
iconSizeNonTaille de l'icône en pixels (défaut 20% de size, max 40% de size)
iconPaddingNonPadding blanc autour de l'icône en pixels (défaut 5, 0-50)
iconRadiusNonArrondi des coins du fond de l'icône en pixels (défaut 0, max = cercle parfait)

À savoir

Lorsqu'un icon est fourni, le niveau de correction est automatiquement forcé à H pour garantir la lisibilité. L'URL de l'icône doit utiliser HTTPS, avec un timeout de 5s et une limite de 2 Mo.

Garder l'icône petite

Un iconSize élevé combiné à un iconPadding généreux recouvre davantage de modules du QR Code, le rendant difficile à scanner. Gardez la zone icône + padding bien en dessous de 40% de la size totale pour un résultat fiable.

Réponse

Par défaut (format=png), l'endpoint retourne une image PNG directe (Content-Type: image/png), utilisable dans une balise <img> :

html
<img src="https://api.sylvain.sh/v4/qrcode?url=https://docs.sylvain.sh" alt="QR Code" />

Avec format=base64, la réponse est un objet JSON :

ChampTypeDescription
resultstringURI data base64 de l'image PNG du QR Code

Exemples de code

curl -X GET \
  "https://api.sylvain.sh/v4/qrcode?url=https%3A%2F%2Fdocs.sylvain.sh&size=300&margin=2&dark=1a1a2e&light=eaeaea"

Essayer

Gestion des erreurs

Si les paramètres sont manquants ou invalides, l'API retournera une erreur :

Message d'erreurDescription
Please provide a valid URLLe paramètre url est manquant ou invalide
format must be one of: png, base64Valeur de format invalide
size must be a numberLe paramètre size n'est pas un nombre
size must be between 50 and 2000La size est hors limites
margin must be a numberLe paramètre margin n'est pas un nombre
margin must be between 0 and 10La margin est hors limites
correction must be one of: L, M, Q, HNiveau de correction invalide
Invalid color (use hex like ff6600)Une couleur dark ou light est mal formatée
Icon URL must use HTTPSL'URL de l'icon n'utilise pas HTTPS
Failed to fetch icon: HTTP {status}L'URL de l'icône a retourné une erreur
Icon URL must point to an imageLe content-type de l'icône n'est pas une image
Icon must be under 2MBL'icône dépasse la limite de 2 Mo
iconSize must be a numberLe paramètre iconSize n'est pas un nombre
iconSize must be between 10 and {max}La iconSize est hors limites (max = 40% de size)
iconPadding must be a numberLe paramètre iconPadding n'est pas un nombre
iconPadding must be between 0 and 50La iconPadding est hors limites
iconRadius must be a numberLe paramètre iconRadius n'est pas un nombre
iconRadius must be between 0 and {max}Le iconRadius est hors limites