Aller au contenu

API de liens courts et de codes QR

L’API REST de Krealo QR permet de créer des liens courts, de les lister, de modifier leur destination et de récupérer leur code QR depuis vos propres outils. Elle est réservée au forfait Pro, à 5,99 $ US par mois, taxes en sus. Vous générez un jeton personnel dans la page de votre compte et vous l’envoyez dans l’en-tête Authorization.

Référence des routes

GET/domainsapi.op.listDomains
GET/meLe compte du jeton (courriel, forfait)
GET/linksListe vos liens (filtres dossier, étiquette, état ; curseur)
POST/linksCrée un lien (url ; slug, titre et design facultatifs, logo compris)
POST/links/bulkCrée jusqu’à 100 liens, un résultat par élément
GET/links/{slug}Un lien avec ses statistiques
PATCH/links/{slug}Change la destination, le titre, l’état ou le design du QR (couleurs, styles, cadre, logo)
DELETE/links/{slug}Archive le lien (supprimé 30 jours après)
GET/links/{slug}/statsStatistiques d’une période (366 jours au plus)
GET/links/{slug}/qrCode QR en SVG ou PNG, avec son design
PUT/design/defaultEnregistre un design par défaut pour les nouveaux liens (null l’enlève)
GET/webhooksListe vos webhooks
POST/webhooksCrée un webhook (secret affiché une fois)
DELETE/webhooks/{id}Supprime un webhook

Spécification OpenAPI 3.1 (pour Postman, Insomnia ou un générateur de client) : /api/v1/openapi.json

Sans code

  • Zapier : déclencheurs « Nouveau lien » et « Nouveau scan », actions « Créer un lien » et « Changer la destination ». Ajouter l’app Krealo QR à votre Zapier
  • Claude, ChatGPT et autres assistants (MCP) : ajoutez un connecteur personnalisé avec l’adresse https://krlo.ca/mcp
  • Intégrations

Exemples

POST /links · curl
curl -X POST https://krlo.ca/api/v1/links \
  -H "Authorization: Bearer kqr_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: menu-2026" \
  -d '{"url":"https://example.com/menu","slug":"menu"}'
POST /links · JavaScript
const r = await fetch('https://krlo.ca/api/v1/links', {
  method: 'POST',
  headers: { Authorization: 'Bearer kqr_…', 'Content-Type': 'application/json' },
  body: JSON.stringify({ url: 'https://example.com/menu', slug: 'menu' }),
});
const lien = await r.json(); // { slug, short_url, … }
POST /links · Python
import requests

r = requests.post("https://krlo.ca/api/v1/links",
    headers={"Authorization": "Bearer kqr_…"},
    json={"url": "https://example.com/menu", "slug": "menu"})
print(r.json()["short_url"])
GET /links/{slug}/stats
curl "https://krlo.ca/api/v1/links/menu/stats?from=2026-09-01&to=2026-09-30" -H "Authorization: Bearer kqr_…"
PATCH /links/{slug} · design
curl -X PATCH https://krlo.ca/api/v1/links/menu -H "Authorization: Bearer kqr_…" -H "Content-Type: application/json" \
  -d '{"design":{"color":"#1e3a8a","dots":"rounded","corners":"extra-rounded","logo_url":"https://example.com/logo.png","frame":{"style":"cinta","text":"Menu"}}}'
GET /links/{slug}/qr
curl "https://krlo.ca/api/v1/links/menu/qr?format=png&size=1024" -H "Authorization: Bearer kqr_…" -o menu.png
POST /webhooks
curl -X POST https://krlo.ca/api/v1/webhooks -H "Authorization: Bearer kqr_…" -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/hooks/krealo","events":["link.scanned"]}'

Codes d’erreur

400invalid_requestDonnée invalide ou destination refusée.
401unauthorizedJeton absent, invalide, révoqué ou expiré.
402pro_requiredLe forfait Pro est requis.
403forbiddenAction refusée sur ce compte.
403insufficient_scopeJeton en lecture seule : il ne peut que lire (GET).
404not_foundCe lien n’existe pas ou n’est pas à vous.
409slug_takenCe slug est déjà pris.
409idempotency_in_progressIdempotency-Key déjà utilisée : requête en cours (409) ou avec un autre contenu (422).
422idempotency_mismatchIdempotency-Key déjà utilisée : requête en cours (409) ou avec un autre contenu (422).
429rate_limitedPlus de 120 requêtes par minute : attendez Retry-After secondes.
503not_configuredService momentanément indisponible.

Authentification

L’API est réservée aux comptes Pro. Générez votre jeton personnel dans la page de votre compte, puis envoyez-le dans l’en-tête Authorization: Bearer <jeton>. L’adresse de base est https://qr.krealomedia.com/api/v1.

Ce que l’API permet

  • Créer un lien, ou jusqu’à 100 d’un coup, avec un en-tête Idempotency-Key pour ne jamais en créer deux.
  • Lister vos liens, filtrés par dossier, étiquette ou état, avec pagination par curseur.
  • Changer la destination, le titre ou l’état d’un lien, et l’archiver.
  • Lire les statistiques d’une période : scans, visiteurs uniques, pays et appareils.
  • Régler le design du QR à la création ou à la modification d’un lien : couleurs, style des points et des coins, cadre avec texte, et votre logo depuis une adresse https publique ou en base64 (PNG, JPEG ou WEBP, 2 Mo au plus).
  • Télécharger le code QR en SVG ou en PNG avec son design : couleurs, points, logo et cadre.
  • Recevoir des webhooks signés quand un lien est créé, modifié, archivé, bloqué ou scanné.

Limite de débit

La limite est de 120 requêtes par minute par compte. Chaque réponse indique où vous en êtes avec les en-têtes X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset ; au-delà, la réponse 429 précise dans Retry-After combien de secondes attendre.

Destinations acceptées

Seules les adresses http et https sont acceptées. Les destinations dangereuses, comme javascript: ou data:, sont bloquées.

Voir aussi

Générateur de code QR gratuitGénérateur de code QR gratuit : collez une adresse, obtenez un code QR et un lien court suivi, puis téléchargez le PNG. Sans carte de crédit.Raccourcisseur de lien avec comptage des clicsRaccourcisseur de lien : créez des liens courts, comptez les clics et changez la destination plus tard avec le forfait Pro. Gratuit jusqu’à 10 liens.Code QR avec logoCode QR avec logo, couleurs et styles personnalisés, en PNG, SVG ou PDF pour l’impression. Fonction du forfait Pro de Krealo QR à 5,99 $ US par mois.Code QR dynamiqueCode QR dynamique : modifiez l’adresse de destination sans réimprimer le code et suivez les scans. Fonction du forfait Pro de Krealo QR à 5,99 $ US par mois.Code QR vCard pour carte de visiteCréez un code QR vCard pour votre carte de visite : une page de contact avec un bouton « Ajouter aux contacts » (.vcf) et une photo facultative.Code QR Wi-FiCréez un code QR Wi-Fi gratuit : vos invités scannent et rejoignent le réseau sans taper le mot de passe. Les données restent dans le code.Code QR pour menu de restaurantCréez un code QR pour votre menu de restaurant en PDF : vos clients l’ouvrent sur leur cellulaire, et vous remplacez le PDF sans changer le code.Code QR WhatsAppCréez un code QR WhatsApp : un scan ouvre une conversation avec votre numéro, avec un message déjà rédigé. Gratuit avec un compte, scans comptés.Page lien en bioCréez une page lien en bio avec boutons et réseaux sociaux, partagée par lien court ou code QR. Gratuite avec 5 boutons, 6 thèmes avec Pro.Une alternative à Bitly pour vos liens courts et codes QRComparaison honnête entre Krealo QR et Bitly : liens courts, codes QR dynamiques, statistiques et pages de liens. Où Bitly gagne, où Krealo QR suffit.Une alternative à QR Code Monkey avec suivi des scansComparaison honnête entre Krealo QR et QR Code Monkey : personnalisation, formats, codes statiques ou dynamiques et suivi des scans. Quel outil choisir ?Une alternative à QR Code Generator PROComparaison honnête entre Krealo QR et QR Code Generator PRO : codes dynamiques, suivi des scans, types de codes et essai gratuit. Sans prix de tiers.

Questions fréquentes

Qui peut utiliser l’API ?

Les comptes du forfait Pro. Le jeton personnel se génère dans la page du compte.

Quelle est la limite de requêtes ?

Elle est de 120 requêtes par minute.

Le code QR renvoyé par l’API peut-il avoir un logo ?

Oui. La route /links/{slug}/qr renvoie le code QR avec le design enregistré du lien (couleurs, style des points, logo et cadre), en SVG ou en PNG de 128 à 2048 pixels. Le design se règle dans l’application, ou avec le champ design de POST /links et PATCH /links/{slug}, logo compris.