Plain
Analyse rapide et sans fioritures
CreateQR Developer Manual
Utilisez trois points de terminaison pour créer, répertorier et supprimer des codes QR avec un contrôle total du style. Intégration le jour même, JSON propre et vos QR restent dans votre tableau de bord.
/api/v1
Auth : Autorisation : porteur <key> (recommandé)
Même point de terminaison, ambiances différentes. Gardez les choses simples, optez pour une marque complète ou encadrez-la pour des campagnes hors ligne.
Analyse rapide et sans fioritures
Conçu pour la distance
Campagne alignée sur un thème
Icône de filigrane prédéfinie
"SCAN ME" prêt pour l'affiche
Style supplémentaire pour les réseaux sociaux
Créez un code QR statique ou dynamique et stockez-le dans votre compte.
Envoyez du JSON uniquement. Pour l’authentification par clé, l’en-tête est la meilleure pratique. Les champs clés du corps sont là pour la compatibilité avec les intégrations existantes.
Il s'agit du chemin hello-world le plus rapide.
curl -sS -X POST 'https://createqr.app/api/v1/create' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer ck_live_XXXXXXXXXXXXXXXXXXXXXXXX' \
-d '{"data":"https://createqr.app","qrtype":"static"}'
| Parameter | Type | Default | Description |
|---|---|---|---|
apikey |
String | Required |
Secret API key. Recommandé dans l'en-tête d'autorisation (au porteur). Le corps JSON apikey/api_key est également accepté. |
data |
String | Required |
Contenu à encoder. Pour un QR dynamique, il doit s'agir d'une URL valide. |
qrtype |
String | static |
Mode QR : statique ou dynamique. |
title |
String | Facultatif |
Titre QR affiché dans le tableau de bord (réduit à 120 chars). |
folderid |
Number | Facultatif |
ID de dossier entier positif appartenant à votre compte. |
| Parameter | Type | Default | Description |
|---|---|---|---|
transparent |
String/Bool | off |
on/off, vrai/faux, 1/0, oui/non accepté. |
backcolor |
String | #FFFFFF |
Couleur hexadécimale d'arrière-plan au format #RRGGBB. |
frontcolor |
String | #000000 |
Couleur hexadécimale des points principaux en #RRGGBB format. |
gradient |
String/Bool | off |
Activer le dégradé de points bicolores. |
radial |
String/Bool | off |
Activer le dégradé radial (fonctionne lorsque le dégradé est activé). |
gradient_color |
String | #15A97C |
Deuxième couleur de dégradé dans #RRGGBB. |
marker_out_color |
String | #000000 |
Marqueur de recherche extérieur color. |
marker_in_color |
String | #000000 |
Couleur du marqueur de recherche intérieur. |
pattern |
String | default |
Style de point du corps preset.
default
circle
star
diamond
sparkle
danger
cross
plus
x
heart
shake
blob
special-circle-orizz
special-circle-vert
special-circle
special-diamond
ribbon
oriental
ellipse
|
marker |
String | default |
Style de marqueur extérieur prédéfini.
default
flurry
sdoz
drop_in
drop
dropeye
dropeyeleft
dropeyeleaf
dropeyeright
squarecircle
circle
rounded
flower
flower_in
leaf
|
marker_in |
String | default |
Style de marqueur intérieur preset.
default
flurry
sdoz
drop_in
drop
dropeye
circle
rounded
sun
star
diamond
danger
cross
plus
x
heart
|
optionlogo |
String | none |
none, chemin de filigrane SVG local recommandé, chemin PNG local existant ou données d'image base64.
none
data:image/*;base64,...
/images/watermarks/v2/01-link.svg
/images/watermarks/v2/02-location.svg
/images/watermarks/v2/03-email.svg
/images/watermarks/v2/04-whatsapp.svg
/images/watermarks/v2/05-wifi.svg
/images/watermarks/v2/06-vcard.svg
/images/watermarks/v2/07-menu.svg
/images/watermarks/v2/08-app.svg
/images/watermarks/v2/09-video.svg
/images/watermarks/v2/10-feedback.svg
/images/watermarks/v2/11-event.svg
/images/watermarks/v2/12-coupon.svg
/images/watermarks/v2/13-music.svg
/images/watermarks/v2/14-social.svg
/images/watermarks/v2/15-paypal.svg
/images/watermarks/v2/16-bitcoin.svg
/images/watermarks/v2/17-scan.svg
|
no_logo_bg |
String/Bool | off |
Désactiver l'arrière-plan du logo plate. |
| Parameter | Type | Default | Description |
|---|---|---|---|
outer_frame |
String | none |
Préglage de style de cadre.
none
bottom
top
balloon-bottom
balloon-top
ribbon-bottom
ribbon-top
phone
cine
|
framelabel |
String | SCAN ME |
Étiquette de texte du cadre (ajustée à 80 caractères). |
label_font |
String | Arial, Helvetica, sans-serif |
Pile de polices pour l'étiquette du cadre. |
custom_frame_color |
String/Bool | off |
Activer la couleur du cadre personnalisée. |
framecolor |
String | #000000 |
Frame hex couleur au format #RRGGBB. |
{
"apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
"data": "https://createqr.app",
"qrtype": "static",
"title": "Launch Landing QR",
"transparent": "off",
"backcolor": "#FFFFFF",
"frontcolor": "#000000",
"marker_out_color": "#000000",
"marker_in_color": "#000000",
"pattern": "default",
"marker": "default",
"marker_in": "default",
"optionlogo": "none"
}
{
"apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
"data": "https://createqr.app/features",
"qrtype": "static",
"title": "Feature Tour QR",
"transparent": "off",
"backcolor": "#033895",
"frontcolor": "#FFFFFF",
"marker_out_color": "#669DF4",
"marker_in_color": "#669DF4",
"pattern": "oriental",
"marker": "flower",
"marker_in": "circle",
"optionlogo": "/images/watermarks/v2/01-link.svg"
}
{
"apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
"data": "https://createqr.app/pricing",
"qrtype": "static",
"title": "Pricing Poster QR",
"transparent": "off",
"frontcolor": "#2B0011",
"marker_out_color": "#3B0001",
"marker_in_color": "#3B0001",
"pattern": "ellipse",
"marker": "sdoz",
"marker_in": "sdoz",
"optionlogo": "none",
"outer_frame": "balloon-top",
"framelabel": "SCAN ME",
"label_font": "Arial, Helvetica, sans-serif",
"custom_frame_color": "on",
"framecolor": "#3B0001"
}
{
"success": true,
"data": {
"qrid": "1284",
"svg": "<svg ...>...</svg>",
"type": "static",
"title": "Pricing Poster QR",
"dashboard_url": "https://createqr.app/app/qrs/1284",
"download_url": "https://createqr.app/app/qrs/1284/download/svg"
},
"request_id": "0f8fad5b-d9cb-469f-a165-70867728950e"
}
Supprimer un QR par ID (propriétaire uniquement).
{
"apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
"qrid": "1284"
}
{
"success": true,
"data": {
"deleted": true,
"qrid": "1284"
},
"request_id": "0f8fad5b-d9cb-469f-a165-70867728950e"
}
Listez vos QR par pages de 100, le plus récent en premier.
Utilisez la pagination à partir de 1. Les résultats renvoient jusqu'à 100 éléments par page.
{
"apikey": "ck_live_XXXXXXXXXXXXXXXXXXXXXXXX",
"pagination": "1"
}
{
"success": true,
"data": {
"pagination": "1",
"page_size": 100,
"total": 2,
"items": [
{
"qrid": "1284",
"title": "Campaign QR",
"type": "dynamic",
"created_at": "2026-02-17 09:12:30",
"short_url": "https://createqr.app/r/a1b2c3",
"dashboard_url": "https://createqr.app/app/qrs/1284"
},
{
"qrid": "1269",
"title": "Storefront QR",
"type": "static",
"created_at": "2026-02-17 08:02:08",
"dashboard_url": "https://createqr.app/app/qrs/1269"
}
]
},
"request_id": "0f8fad5b-d9cb-469f-a165-70867728950e"
}
Chaque réponse inclut request_id. Conservez-le lorsque vous contactez l'assistance afin que nous puissions déboguer rapidement.
{
"success": false,
"error": {
"code": "validation_error",
"message": "Dynamic QR requires a valid URL in data."
},
"request_id": "5f5fbd38-f82f-49ad-bf11-f7f04ca9747a"
}
| Code d'erreur | HTTP | Quand cela se produit | Que faire |
|---|---|---|---|
invalid_api_key |
401 | Clé API manquante ou invalide | Fournissez une clé valide via Champ de corps Bearer, X-API-Key ou JSON. |
invalid_content_type |
415 | Le corps n'est pas une application/json | Envoyer le type de contenu : application/json. |
request_too_large |
413 | La charge utile dépasse la limite configurée | Réduire la taille du corps, en particulier les logos base64. |
plan_upgrade_required |
403 | Le plan n'est pas autorisé pour l'API | Mise à niveau vers Business à partir de la facturation. |
validation_error |
422 | Champs non valides tels que l'URL, la couleur ou l'ID de dossier | Corrigez le format de charge utile et soumettez à nouveau. |
rate_limited |
429 | Limite par minute atteinte | Réessayez avec un intervalle exponentiel et un honneur Réessayez après. |
monthly_quota_exceeded |
429 | Quota mensuel épuisé | Attendez la réinitialisation ou l'ajustement du quota et des paramètres clés. |
qr_not_found |
404 | La cible de suppression est manquante ou n'est pas la vôtre | Vérifiez la propriété du qrid et essayez encore une fois. |
internal_error |
500 | Problème inattendu côté serveur | Réessayez avec interruption et conservez request_id pour l'assistance. |
Réponses courtes aux questions que nous voyons le plus dans les intégrations.
L'API est réservée aux entreprises. Le quota mensuel provient de votre forfait actif et des remplacements de clés. La graine Business par défaut est élevée et les administrateurs peuvent affiner chaque clé.
Oui. L'authentification basée sur l'en-tête est recommandée, mais les champs de corps de compatibilité apikey ou api_key sont également acceptés.
Oui. Chaque création réussie est enregistrée dans votre compte et peut être gérée comme n'importe quel autre QR.
Vous recevez des erreurs JSON. Pour 429 réponses, respectez Retry-After et utilisez l'intervalle exponentiel avec gigue.
Non. La suppression et la liste sont limitées au propriétaire de la clé API authentifié.