Documentation développeurs
Automatisez des liens professionnels avec l’API Blinkode.
Créez des liens, gérez les destinations et générez des QR codes depuis une API claire avec authentification par token.
{
"data": {
"link": {
"id": "clx_123",
"slug": "K8m2pQzR",
"destinationUrl": "https://example.com",
"shortUrl": "https://bkode.link/K8m2pQzR",
"createdAt": "2026-05-27T20:00:00.000Z",
"expiresAt": null,
"hasPassword": false,
"clickCount": 0
}
}
}Authentification
Utilisez une clé API qui n’est affichée qu’une seule fois.
Les utilisateurs Pro créent des clés API depuis leur compte. Le secret complet s’affiche une seule fois ; ensuite Blinkode conserve seulement le préfixe et le hash.
- 1Utilisez un compte Pro avec accès à l'API client.
- 2Créez une clé depuis l'endpoint des clés API pour utilisateur connecté.
- 3Enregistrez le secret renvoyé une seule fois ; Blinkode conserve seulement le hash.
- 4Envoyez la clé avec Authorization: Bearer sur les routes /api/v1.
curl -X POST "$APP_URL/api/api-keys" \
-H "Content-Type: application/json" \
-d '{ "name": "Production automation" }'Authorization: Bearer blinkode_sk_<public-token>.<secret-token>
Content-Type: application/jsonCréer des liens
Créez des liens depuis votre produit.
Les comptes Pro peuvent envoyer expiration, mot de passe, domaine et slug personnalisé lorsque le flux l’exige.
curl -X POST "$APP_URL/api/v1/links" \
-H "Authorization: Bearer $BLINKODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"destinationUrl": "https://example.com",
"expiresAt": "2026-06-30T00:00:00.000Z",
"password": "launch-secret"
}'const response = await fetch(`${appUrl}/api/v1/links`, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BLINKODE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
destinationUrl: "https://example.com",
expiresAt: "2026-06-30T00:00:00.000Z",
password: "launch-secret",
}),
});
const payload = await response.json();import os
import requests
response = requests.post(
f"{os.environ['APP_URL']}/api/v1/links",
headers={
"Authorization": f"Bearer {os.environ['BLINKODE_API_KEY']}",
"Content-Type": "application/json",
},
json={
"destinationUrl": "https://example.com",
"expiresAt": "2026-06-30T00:00:00.000Z",
"password": "launch-secret",
},
)
payload = response.json()curl -X POST "$APP_URL/api/v1/links" \
-H "Authorization: Bearer $BLINKODE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"domainId": "dom_123",
"slug": "spring-campaign",
"destinationUrl": "https://example.com"
}'Gérer les liens
Listez, consultez et supprimez des liens.
Chaque lecture ou suppression est limitée au propriétaire de la clé API. Les liens inconnus ou hors compte renvoient la même réponse “introuvable”.
curl "$APP_URL/api/v1/links" \
-H "Authorization: Bearer $BLINKODE_API_KEY"curl "$APP_URL/api/v1/links/<link-id>" \
-H "Authorization: Bearer $BLINKODE_API_KEY"curl -X DELETE "$APP_URL/api/v1/links/<link-id>" \
-H "Authorization: Bearer $BLINKODE_API_KEY"QR codes
Générez des codes QR à la demande.
La sortie QR est générée dynamiquement depuis l’URL courte et renvoyée comme fichier prêt à utiliser.
curl "$APP_URL/api/v1/links/<link-id>/qr?format=png" \
-H "Authorization: Bearer $BLINKODE_API_KEY" \
-o shortlink.pngcurl "$APP_URL/api/v1/links/<link-id>/qr?format=svg" \
-H "Authorization: Bearer $BLINKODE_API_KEY" \
-o shortlink.svgcurl "$APP_URL/api/v1/links/<link-id>/qr?format=svg&download=0" \
-H "Authorization: Bearer $BLINKODE_API_KEY"Erreurs
Gerez des erreurs JSON previsibles.
Les appels échoués renvoient un message d'erreur et un code lisible par machine. Les requêtes limitées incluent retry-after.
{
"error": "API access is not enabled for this account.",
"code": "api_access_disabled"
}missing_api_key
Aucun jeton Bearer n’a été fourni.
invalid_api_key
La clé est mal formée, révoquée ou ne correspond pas au hachage stocké.
api_access_disabled
Le forfait du compte n'inclut pas l'accès à l'API client.
rate_limited
La clé API a dépassé la limite actuelle prise en charge par Redis.
invalid_json
Le corps de la requête n’est pas un JSON valide.
invalid_destination_url
La destination n’est pas une URL http ou https publique.
invalid_expires_at
expiresAt doit être une date ISO valide.
expired_expires_at
expiresAt doit etre au moins 24 heures dans le futur.
invalid_password
Le mot de passe doit être une chaîne de texte.
password_too_short
Le mot de passe doit comporter au moins 6 caractères.
unsafe_destination_url
La destination a été bloquée par la validation de sécurité.
custom_domain_required
Les liens créés par API exigent un domaine personnalisé Pro actif.
custom_domain_unavailable
Le domaine personnalisé sélectionné n’est pas disponible pour ce compte.
custom_slug_unavailable
Les slugs personnalisés exigent un domaine personnalisé Pro pour l'API client.
slug_unavailable
Le slug personnalisé demande existe déjà sur ce domaine.
invalid_qr_format
Le format QR doit être png ou svg.
short_link_not_found
Le lien demandé n’existe pas pour le propriétaire de cette clé API.
Reference API
Routes disponibles en v1.
La gestion des domaines personnalisés se fait dans le tableau de bord ; les liens créés via l’API doivent utiliser un domaine Pro existant en envoyant `domainId`.