Aller au contenu
  1. Documentation/
  2. ClicPlus — Documentation/

API

822 mots
Sommaire
Documentation ClicPlus - Série de pages
Page 5: Cette page

L’API REST ClicPlus permet de créer, lister, modifier et supprimer des liens courts et QR codes par programmation. Disponible sur les plans Pro (1 clé, 30 req/min) et Business (3 clés, 120 req/min).

Authentification
#

L’API s’authentifie via le header X-API-Key :

curl https://api.yannick.services/clicplus/urls \
  -H "X-API-Key: votre_clé"

Les clés API sont disponibles sur les plans Pro (1 clé) et Business (3 clés).

Créer une clé API
#

  1. Ouvrez le dashboard ClicPlus
  2. Section Clés API (visible uniquement sur les plans Pro et Business)
  3. Cliquez Créer une clé API
  4. Copiez immédiatement la clé — elle ne sera plus affichée
Conservez votre clé en lieu sûr. Elle ne peut pas être récupérée après création. En cas de compromission, révoquez-la immédiatement et créez-en une nouvelle.

URL de base
#

https://api.yannick.services/clicplus

Endpoints — Liens courts
#

Créer un lien
#

curl -X POST https://api.yannick.services/clicplus/urls \
  -H "X-API-Key: votre_clé" \
  -H "Content-Type: application/json" \
  -d '{
    "longUrl": "https://example.com/page-longue",
    "tags": ["campagne", "été"],
    "slugLength": 6
  }'

Paramètres du body :

ChampTypeObligatoireDescription
longUrlstringOuiURL de destination (HTTPS, max 2 000 caractères)
slugstringNonSlug personnalisé (4-30 chars, [a-zA-Z0-9_-])
slugLengthnumberNonLongueur du slug aléatoire (4-8, défaut 6)
tagsarrayNonTags (max 5, format [a-z0-9-]{1,30})
expireHoursnumberNonExpiration en heures (1-8760, 0 = illimité)
expireClicksnumberNonExpiration en clics (1-100, 0 = illimité)

Réponse (201) :

{
  "id": "abc123-uuid",
  "slug": "HPiKhp",
  "shortUrl": "https://clicpl.us/HPiKhp",
  "longUrl": "https://example.com/page-longue",
  "tags": ["campagne", "été"],
  "status": "pending_moderation",
  "createdAt": "2026-07-25T10:30:00.000Z"
}

Lister ses liens
#

curl https://api.yannick.services/clicplus/urls?limit=10 \
  -H "X-API-Key: votre_clé"

Paramètres query :

ChampTypeDescription
limitnumberNombre de résultats (1-50, défaut 20)
nextTokenstringToken de pagination
tagstringFiltrer par tag

Obtenir un lien
#

curl https://api.yannick.services/clicplus/urls/{id} \
  -H "X-API-Key: votre_clé"

Modifier un lien
#

curl -X PUT https://api.yannick.services/clicplus/urls/{id} \
  -H "X-API-Key: votre_clé" \
  -H "Content-Type: application/json" \
  -d '{
    "longUrl": "https://example.com/nouvelle-page",
    "tags": ["campagne", "automne"]
  }'
Modifier longUrl déclenche une re-modération automatique. Le lien peut être suspendu si le nouveau contenu est rejeté.

Supprimer un lien
#

curl -X DELETE https://api.yannick.services/clicplus/urls/{id} \
  -H "X-API-Key: votre_clé"

Statistiques d’un lien
#

curl https://api.yannick.services/clicplus/urls/{id}/stats \
  -H "X-API-Key: votre_clé"

Réponse :

{
  "totalClicks": 142,
  "last30Days": 47
}

Historique de stats (90 jours)
#

curl https://api.yannick.services/clicplus/urls/{id}/stats/history \
  -H "X-API-Key: votre_clé"

Endpoints — QR codes
#

Créer un QR code
#

curl -X POST https://api.yannick.services/qrcode/generate \
  -H "X-API-Key: votre_clé" \
  -H "Content-Type: application/json" \
  -d '{
    "contentType": "url",
    "content": "https://example.com",
    "dynamic": true,
    "tags": ["vitrine"],
    "backgroundColor": "#FFFFFF",
    "fillColor": "#1a1a2e"
  }'

Paramètres du body :

ChampTypeObligatoireDescription
contentTypestringOuiurl, text, vcard, wifi, file
contentstring/objectOuiContenu à encoder (format selon le type)
dynamicbooleanNonQR dynamique (URL uniquement, défaut false)
tagsarrayNonTags (max 5)
backgroundColorstringNonCouleur de fond hex (défaut #FFFFFF)
fillColorstringNonCouleur des modules hex (défaut #000000)
imageUrlstringNonLogo central (URL HTTPS)
errorCorrectionstringNonLow, Medium, Quartile, High (défaut Low)
bordernumberNonBordure 1-10 (défaut 4)
boxSizenumberNonTaille modules 5-20 (défaut 10)

Formats de contenu par type :

{
  "contentType": "url",
  "content": "https://example.com",
  "dynamic": true
}
{
  "contentType": "text",
  "content": "Votre message ici (1-1000 caractères)"
}
{
  "contentType": "vcard",
  "content": {
    "firstName": "Yannick",
    "lastName": "Tocquet",
    "phone": "+33612345678",
    "email": "contact@example.com",
    "organization": "Mon Entreprise",
    "title": "Directeur",
    "url": "https://example.com"
  }
}
{
  "contentType": "wifi",
  "content": {
    "ssid": "MonReseau",
    "password": "motdepasse123",
    "encryption": "WPA"
  }
}

Valeurs encryption : WPA, WEP, nopass

La réponse retourne le QR code en statut pending_moderation. Le QR est généré après approbation (sauf WiFi, qui est immédiat). Pollez GET /qrcode/records/{id} pour vérifier le statut.

Lister ses QR codes
#

curl https://api.yannick.services/qrcode/records \
  -H "X-API-Key: votre_clé"

Obtenir un QR code
#

curl https://api.yannick.services/qrcode/records/{id} \
  -H "X-API-Key: votre_clé"

Modifier la destination (QR dynamique)
#

curl -X PUT https://api.yannick.services/qrcode/records/{id} \
  -H "X-API-Key: votre_clé" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "https://example.com/nouvelle-page"
  }'

Supprimer un QR code
#

curl -X DELETE https://api.yannick.services/qrcode/records/{id} \
  -H "X-API-Key: votre_clé"

Stats de scans (QR dynamique)
#

curl https://api.yannick.services/qrcode/records/{id}/track \
  -H "X-API-Key: votre_clé"

Endpoints — Tags
#

Lister les tags
#

Retourne les tags distincts avec leur nombre d’occurrences :

curl https://api.yannick.services/clicplus/tags \
  -H "X-API-Key: votre_clé"

Codes d’erreur
#

Code HTTPSignification
200Succès
201Ressource créée
400Paramètre invalide (voir message dans la réponse)
401Authentification manquante ou invalide
403Clé API sans le scope clicplus, ou quota dépassé
404Ressource non trouvée
429Rate limit atteint (attendre avant de réessayer)
503Service temporairement indisponible

Rate limiting
#

PlanLimite
Pro30 requêtes / minute
Business120 requêtes / minute

En cas de dépassement, l’API retourne un code 429. Attendez quelques secondes avant de réessayer.

Exemple complet — Script de création en masse
#

#!/bin/bash
API_KEY="votre_clé_ici"
BASE_URL="https://api.yannick.services/clicplus/urls"

urls=(
  "https://monsite.fr/page-1"
  "https://monsite.fr/page-2"
  "https://monsite.fr/page-3"
)

for url in "${urls[@]}"; do
  curl -s -X POST "$BASE_URL" \
    -H "X-API-Key: $API_KEY" \
    -H "Content-Type: application/json" \
    -d "{\"longUrl\": \"$url\", \"tags\": [\"batch\"]}" | jq .shortUrl
  sleep 2  # Respecter le rate limit
done
Documentation ClicPlus - Série de pages
Page 5: Cette page

Pages connexes

Démarrage rapide

263 mots
De l’inscription à votre premier lien court en 2 minutes.

FAQ

698 mots
Questions fréquentes : modération, QR codes, facturation, limites, sécurité.

Liens courts

465 mots
Créer, modifier et supprimer des liens courts — slug personnalisé, tags, expiration, modération.