Aller au contenu
LinkProfit

Comparatif des API de raccourcisseurs de liens : ce que les développeurs obtiennent en 2026

LinkProfit Team13 min de lecture
  • api
  • developers
  • link-shortener
Sur cette page

Tous les raccourcisseurs de liens vendent la même démonstration : collez une URL longue, recevez-en une courte. La différence entre eux se révèle trois semaines plus tard, quand un worker de file d’attente crée dix mille liens par heure, qu’un gestionnaire de webhooks laisse silencieusement tomber les nouvelles tentatives, et que quelqu’un demande pourquoi les données de clics du mois dernier ne peuvent pas être rapprochées du CRM. Cette comparaison porte sur ce moment-là, pas sur la démonstration.

Voici les axes qui décident si une API survit au contact de la production, ce que les principaux fournisseurs de la catégorie proposent réellement sur chacun d’eux, et des exemples fonctionnels écrits contre l’API LinkProfit. Le comportement des concurrents est ici décrit en toutes lettres plutôt qu’à travers des extraits de code inventés : la forme des requêtes évolue, et un extrait copié qui ne compile plus vaut moins qu’une phrase expliquant ce que fait le point d’entrée.

Pourquoi l’API est le produit pour certains acheteurs

Il existe deux sortes de clients pour un raccourcisseur. La première se connecte à un tableau de bord, crée des liens à la main et lit des graphiques. La seconde n’ouvre jamais le tableau de bord : les liens sont créés par son propre logiciel, pour le compte de ses propres utilisateurs, et les données de clics coulent vers son propre entrepôt. Pour la seconde, le tableau de bord est un outil de débogage et l’API est le produit tout entier.

Cette distinction explique l’essentiel des déceptions de la catégorie, et c’est pourquoi intégrer le raccourcissement dans un produit SaaS n’est pas le même achat que se procurer un outil marketing. Les fournisseurs qui optimisent pour le premier acheteur traitent l’API comme une case à cocher sur la page tarifaire : elle existe, elle est documentée à la va-vite, elle est réservée à un palier supérieur, et elle couvre la création de liens mais ni les domaines, ni les statistiques, ni les webhooks. Si vous intégrez le raccourcissement dans un produit, cet écart fait la différence entre livrer et réécrire.

Les axes qui comptent vraiment

Authentification et portée des clés

Le socle commun, c’est un jeton bearer. Ce qui distingue les implémentations, c’est ce qu’un jeton fuité permet de faire. Une clé unique valable sur tout le compte et capable de supprimer n’importe quel lien est un risque, surtout quand votre intégration a seulement besoin d’en créer. Cherchez des clés dont la portée est un espace de travail plutôt qu’un compte, des permissions attachées à la clé et non à l’utilisateur qui l’a créée, un stockage haché avec affichage unique à la création, et une rotation indépendante qui vous permet d’émettre une clé par service et d’en révoquer une sans interruption.

Limites de débit et comportement au plafond

Deux données comptent, et il est rare que les deux soient publiées : la limite soutenue et ce qui se passe quand vous la franchissez. Une API bien élevée répond 429, indique quand réessayer et expose le budget restant sur chaque réponse, ce qui permet au client de se brider lui-même avant de commencer à échouer. Une API qui renvoie un 500 générique sous charge, ou qui perd silencieusement des écritures, vous oblige à construire un limiteur prudent bâti sur des suppositions.

La forme de la fenêtre compte autant que son ampleur. Un plafond par seconde et une fenêtre glissante par minute au même débit moyen se comportent de façon radicalement différente face à des charges en rafales, et c’est précisément ce que produisent la plupart des intégrations : une campagne part, cinq mille liens sont créés en quatre-vingt-dix secondes, et la file reste inactive le reste de la journée.

Opérations en lot

Créer les liens une requête HTTP à la fois convient à quelques centaines et devient pénible à quelques centaines de milliers. Un point d’entrée en lot qui accepte un paquet et renvoie un résultat par élément, échecs partiels compris avec l’indice de l’élément fautif, transforme un traitement de nuit en quelques minutes. Le détail à vérifier, c’est la sémantique de l’échec : une seule URL invalide fait-elle rejeter tout le lot, et une nouvelle tentative sur un lot partiellement appliqué crée-t-elle des doublons ?

Les statistiques par l’API

Presque tous les fournisseurs affichent des courbes de clics dans leur tableau de bord. Bien moins nombreux sont ceux qui laissent récupérer les mêmes chiffres par programme à la granularité dont vous avez besoin, et c’est là que se cachent les limites propres à chaque forfait. Réclamez trois choses : des résumés agrégés, des séries temporelles à granularité choisie, et des répartitions par dimension — pays, ville, appareil, navigateur, source de référence et paramètres de campagne. Interrogez ensuite le fournisseur sur la conservation, sur le plafond de taille des exports, et sur le fait que les événements décomptés de votre forfait soient bien ceux que l’API renverra. Les questions de mesure sous-jacentes, en particulier le filtrage des bots et le comptage des visiteurs uniques, sont traitées dans notre guide du suivi des clics sur les liens.

Rebrandly illustre le mieux pourquoi cela compte. Ses redirections sont illimitées, mais les statistiques elles-mêmes sont comptées comme des données d’engagement, plafonnées à 100, 10 000, 25 000 et 150 000 événements par mois selon le palier, en août 2026. Un lien qui continue de rediriger pendant qu’il cesse de rapporter est un mode de défaillance bien précis, à intégrer au calcul avant de choisir.

Webhooks et garanties de livraison

Interroger l’API en boucle pour détecter les changements d’état, c’est la façon la plus sûre de rendre une intégration lente et coûteuse. Les webhooks remplacent cette boucle, et leur qualité tient à quatre propriétés : quels événements se déclenchent, si les charges utiles sont signées, à quoi ressemble le calendrier des nouvelles tentatives, et ce qui se passe une fois ces tentatives épuisées. La vérification de signature doit porter sur le corps brut, horodatage compris pour empêcher le rejeu. Les tentatives doivent s’étaler sur des heures plutôt que sur des minutes, afin qu’une fenêtre de déploiement ne vous coûte pas d’événements. Et le fournisseur doit vous prévenir lorsqu’un point de réception a été marqué en échec, au lieu d’écarter les événements en silence.

SDK, spécification et documentation

Un SDK officiel fait gagner une journée de travail ; une spécification OpenAPI lisible par machine fait gagner cette même journée dans le langage que le SDK ne couvre pas, et continue de la faire gagner à mesure que l’API évolue. Short.io livre quatre SDK, la plus large couverture officielle de la catégorie en août 2026. Une spécification publiée est l’actif le plus durable, puisqu’elle engendre des clients, des mocks et des tests de contrat.

Erreurs, pagination et versionnage

Trois propriétés sans éclat qui déterminent le coût de maintenance. Les erreurs doivent être lisibles par machine, avec un code stable distinct du message destiné aux humains, pour que votre logique de nouvelle tentative s’appuie sur le code plutôt que sur une comparaison de chaînes. La pagination doit se faire par curseur : une pagination par décalage sur une table qui reçoit des écritures sautera et dupliquera des lignes. Et la version doit figurer explicitement dans le chemin, être gelée dès sa publication, les ruptures étant livrées sous une version successeur.

Ce que proposent les fournisseurs

| Fournisseur | Disponibilité de l’API | Limite de débit publiée | SDK officiels | Contrainte notable | | --- | --- | --- | --- | --- | | Short.io | Tous les forfaits, gratuit compris | 50 requêtes par seconde, extensions par blocs | Quatre | Pas de tableau de bord en marque blanche, équipes en Enterprise | | Dub | Produit central, base de code open source | Aucun chiffre affiché | Oui | La marque blanche partenaires est sur le palier à 300 USD | | Rebrandly | Paliers payants, fonctions selon le forfait | Aucun chiffre affiché | Oui | Statistiques comptées en événements d’engagement | | Replug | Forfait Agency seulement, 99 USD par mois | Non publiée | Non | API non évaluable sur les paliers inférieurs | | Shlink, auto-hébergé | Complète, open source | À vous de la régler | Communautaires | Conception à locataire unique, pas de facturation | | LinkProfit | Forfait Growth et au-delà | 600 requêtes par minute par clé d’espace de travail | Clients générés depuis la spécification | Nom d’hôte d’API partagé en version 1 |

Tous les détails de forfaits et de tarifs ci-dessus datent d’août 2026.

Short.io : la référence du volume

Short.io est l’agresseur de la catégorie sur le prix et le débit. Son API est disponible sur tous les forfaits, la limite publiée est de 50 requêtes par seconde quel que soit le palier, et la capacité supplémentaire se vend par blocs de 50 requêtes par seconde pour 50 USD par mois. Il livre quatre SDK et un vrai site de documentation pour développeurs, et les domaines personnalisés avec certificats automatiques sont inclus dès le palier gratuit.

Les contraintes sont ailleurs dans le produit, pas dans l’API : ce qu’il appelle marque blanche, ce sont des liens à votre marque et non un tableau de bord réhabillable, la prise en charge de plusieurs équipes est cantonnée à Enterprise, et les pixels de reciblage ne couvrent que deux réseaux. Si ces éléments vous sont nécessaires, voyez notre comparatif des alternatives à Short.io.

Dub : la référence API-first

Dub est la référence de la catégorie en matière de design et d’expérience développeur, avec un cœur open source et un produit pensé d’abord pour l’API plutôt que pour le tableau de bord. Si vous cherchez un modèle de ce que « réussi » veut dire ici, lisez leur documentation avant de rédiger vos propres exigences d’intégration.

Deux précisions s’imposent, car les noms prêtent à confusion. Dub Partners est une infrastructure de programme d’affiliation proposée aux clients de Dub, et non un moyen de revendre Dub lui-même ; son habillage à votre marque se situe sur le palier Advanced à 300 USD par mois en août 2026. Leur propre programme d’affiliation reverse 30 % d’une vente pendant un an, ce qui relève du parrainage et non d’un modèle de revente.

Rebrandly et Replug : l’API comme montée en gamme

Tous deux réservent l’accès développeur à des paliers supérieurs, mais de manières différentes. L’API de Replug n’est disponible que sur son forfait Agency, à 99 USD par mois, 79 USD en facturation annuelle en août 2026, ce qui interdit toute évaluation à bas coût de l’intégration. Chez Rebrandly, le verrouillage se fait fonction par fonction plutôt que par un mur unique : les deep links n’apparaissent qu’à partir de Growth, les pixels de reciblage seulement à partir de Professional, et les plafonds de données d’engagement décrits plus haut s’appliquent aux statistiques quel que soit le palier.

Aucune de ces approches n’est inhabituelle, et les deux fonctionnent très bien si vous vous situez au-dessus du seuil. Ce qui compte au moment d’évaluer, c’est l’honnêteté budgétaire : le palier dont vous avez besoin pour l’API est celui que vous achetez réellement, pas celui du tableau comparatif dont vous êtes parti.

Auto-hébergement et open source

Si votre besoin est un raccourcisseur interne, sans facturation et à locataire unique, Shlink est la plus solide des options : licence MIT, PHP, une vraie conception API-first et un écosystème de clients mature. Ses postulats se révèlent dès que vous essayez de servir d’autres personnes. Les slugs sont uniques sur toute l’instance plutôt que cantonnés à un domaine, les rôles des clés d’API n’approchent pas une véritable isolation entre locataires, et la génération de QR a été retirée en version 5. Kutt permet le changement de marque via un répertoire de personnalisation, mais son rythme a nettement ralenti, avec 16 commits sur l’ensemble de 2026, et il lui manque les équipes, les webhooks et le multi-locataire. YOURLS, par conception, c’est un seul administrateur et un seul domaine.

LinkProfit

Notre conception vise la seconde sorte d’acheteur décrite en ouverture. Les clés sont émises par espace de travail ou par partenaire, portent des portées explicites, sont affichées une seule fois et stockées sous forme d’empreinte SHA-256. La limite par défaut est de 600 requêtes par minute pour une clé d’espace de travail et de 1 200 pour une clé partenaire, appliquée sur une fenêtre glissante, avec X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset sur chaque réponse et Retry-After sur un 429. La création en lot accepte jusqu’à 100 liens par appel. Les statistiques sont de première classe et pas seulement affichées au tableau de bord : résumé, séries temporelles, répartitions par dimension et export CSV en flux plafonné à 100 000 lignes. Les webhooks sont signés et réessayés cinq fois sur environ douze heures. La spécification est générée à partir des schémas mêmes qui valident les requêtes : la documentation ne peut donc pas dériver de l’implémentation.

L’accès à l’API démarre au forfait Growth, qui est aussi le palier débloquant un domaine de tableau de bord personnalisé ; la grille complète est sur la page des tarifs. La limitation honnête de la version 1 : l’API est servie depuis un nom d’hôte partagé, si bien que les partenaires en marque blanche la documentent auprès de leurs clients comme la leur, sans qu’elle vive sur leur propre domaine. C’est un point de feuille de route, pas un point caché.

Travailler avec l’API LinkProfit

Créer un lien

curl -X POST https://api.linkprofit.com/v1/links \
  -H "Authorization: Bearer lp_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/spring-collection",
    "slug": "spring",
    "domain_id": "dom_7Kq2f9",
    "expires_at": "2026-10-01T00:00:00Z"
  }'

Grouper les écritures

Le point d’entrée en lot accepte jusqu’à 100 liens par appel et renvoie un résultat par élément : un échec partiel désigne donc l’entrée fautive au lieu de faire rejeter tout le paquet.

const response = await fetch('https://api.linkprofit.com/v1/links/bulk', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.LINKPROFIT_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    links: batch.map((row) => ({ url: row.destination, slug: row.code, domain_id: domainId })),
  }),
});

if (response.status === 429) {
  const waitSeconds = Number(response.headers.get('retry-after') ?? '1');
  await new Promise((resolve) => setTimeout(resolve, waitSeconds * 1000));
}

Relire les statistiques

Les répartitions prennent un paramètre de dimension, ce qui garde une surface réduite et prévisible au lieu d’ajouter un point d’entrée par graphique.

curl -G https://api.linkprofit.com/v1/analytics/breakdown \
  -H "Authorization: Bearer lp_live_xxxxxxxxxxxxxxxx" \
  -d dimension=city \
  -d date_from=2026-07-01 \
  -d date_to=2026-07-31

Les dimensions disponibles couvrent le pays, la ville, l’appareil, le navigateur, le système d’exploitation, la source de référence et les trois principaux paramètres de campagne, ce qui suffit à reproduire les chiffres du tableau de bord dans vos propres rapports.

Vérifier un webhook

Les événements portent l’en-tête X-LinkProfit-Signature sous la forme t=timestamp,v1=hex. La charge signée est l’horodatage, un point, puis le corps brut de la requête : la vérification doit donc avoir lieu avant tout parsing JSON susceptible de le resérialiser.

import { createHmac, timingSafeEqual } from 'node:crypto';

export function isValidSignature(rawBody, header, secret) {
  const fields = new Map(header.split(',').map((pair) => pair.split('=')));
  const timestamp = Number(fields.get('t'));
  // Reject anything outside a five minute window to limit replay.
  if (!Number.isFinite(timestamp) || Math.abs(Date.now() / 1000 - timestamp) > 300) return false;

  const expected = createHmac('sha256', secret).update(`${timestamp}.${rawBody}`).digest('hex');
  const received = Buffer.from(fields.get('v1') ?? '', 'hex');
  const computed = Buffer.from(expected, 'hex');
  return received.length === computed.length && timingSafeEqual(received, computed);
}

Les livraisons échouées sont réessayées après une minute, cinq minutes, trente minutes, deux heures et douze heures. Après la dernière tentative, le point de réception est marqué en échec et le propriétaire du compte reçoit un e-mail : un gestionnaire cassé se manifeste donc par une notification plutôt que par des données manquantes découvertes un mois plus tard.

Évaluer une API en un après-midi

  1. Créez une clé sur le forfait le moins cher incluant l’accès à l’API, et notez s’il s’agit d’un forfait que vous auriez acheté de toute façon.
  2. Créez, lisez, modifiez et supprimez un lien, et vérifiez que les réponses portent les en-têtes de limite de débit.
  3. Dépassez délibérément la limite et confirmez que vous recevez un 429 assorti d’une indication de réessai, et non un échec générique.
  4. Envoyez une requête en lot contenant une URL invalide et examinez comment l’échec partiel est rapporté.
  5. Récupérez une répartition par ville pour le mois écoulé et comparez les totaux avec le tableau de bord.
  6. Enregistrez un webhook vers un service de capture de requêtes, déclenchez un événement, vérifiez la signature, puis mettez ce point de réception hors ligne et observez le calendrier des nouvelles tentatives.
  7. Demandez le document OpenAPI et générez-en un client.
  8. Lisez la politique de versionnage et le journal des modifications des douze derniers mois.

Les étapes trois, quatre et six sont celles que la plupart des évaluations sautent, et ce sont précisément celles qui prédisent le comportement de l’intégration à deux heures du matin.

La catégorie dispose d’une véritable implémentation de référence avec Dub, d’une véritable option de volume avec Short.io, et d’une longue traîne de produits où l’API est une montée en gamme plutôt qu’un objectif de conception. Notre propre approche — clés à portée restreinte, limites publiées avec des en-têtes honnêtes, statistiques et domaines traités comme des ressources de premier rang, et spécification générée à partir des schémas de validation — est documentée sur la page fonctionnalités de l’API, avec les guides de démarrage rapide, la pagination, les codes d’erreur et les webhooks dans la documentation.

Les questions qu’on nous pose

Quel raccourcisseur affiche la limite de débit publiée la plus élevée ?

Short.io affiche le chiffre le plus élevé de la catégorie grand public : 50 requêtes par seconde sur tous les forfaits, gratuit compris, avec de la capacité supplémentaire vendue par tranches de 50 requêtes par seconde pour 50 USD par mois, en août 2026. Ces chiffres de façade ne se comparent pourtant pas directement, car les fournisseurs comptent sur des fenêtres différentes. Un plafond par seconde rejette une rafale qu’une fenêtre glissante par minute absorberait : confrontez donc la limite à la forme réelle de votre trafic plutôt qu’au chiffre d’un concurrent.

Ai-je vraiment besoin d’une API, ou un import CSV suffit-il ?

Pour une migration ponctuelle, le CSV fait très bien l’affaire. L’API devient nécessaire quand la création de liens est déclenchée par autre chose qu’un humain devant un tableau de bord : un outil de campagne qui génère un lien par destinataire, un produit qui raccourcit des URL pour le compte de ses utilisateurs, un planificateur qui publie des posts. Le signe qui ne trompe pas, c’est un volume qui croît avec votre clientèle plutôt qu’avec votre équipe marketing, auquel s’ajoute tout besoin de réinjecter les données de clics dans vos propres rapports.

Pourquoi certains fournisseurs réservent-ils l’API à leur forfait le plus cher ?

Parce que l’accès à l’API va de pair avec le volume et avec les usages d’agence : c’est donc un levier de montée en gamme efficace. En août 2026, Replug ne propose son API que sur le forfait Agency, à 99 USD par mois, 79 USD en facturation annuelle. La conséquence concrète pour un développeur, c’est un coût d’évaluation élevé : impossible de tester l’intégration sur un palier bon marché avant de s’engager, ce qui est une raison légitime de privilégier les fournisseurs dont l’API est disponible dès les forfaits d’entrée.

Comment gérer les nouvelles tentatives de webhook sans créer de doublons ?

Partez du principe d’une livraison « au moins une fois » et rendez votre gestionnaire idempotent. Stockez l’identifiant d’événement contenu dans la charge utile et, à chaque réception, vérifiez que vous ne l’avez pas déjà traité avant d’engager le moindre travail. Vérifiez la signature sur le corps brut de la requête avant tout parsing, rejetez les événements dont l’horodatage sort d’une fenêtre de tolérance de quelques minutes, et répondez vite en 2xx en mettant en file les traitements lents plutôt que de les exécuter en ligne : vu du côté de l’émetteur, un gestionnaire lent ressemble trait pour trait à un gestionnaire en panne.

Un raccourcisseur open source est-il une solution de rechange crédible à une API commerciale ?

Pour un outil interne à locataire unique, oui. Shlink est la plus solide des options : licence MIT et une vraie conception API-first. Les limites apparaissent dès que vous servez d’autres personnes : les slugs sont uniques sur toute l’instance plutôt que par domaine, les rôles des clés d’API restent très loin d’une isolation multi-locataire réelle, la génération de QR a été retirée en version 5, la facturation est absente, et la maintenance repose sur un seul mainteneur. Kutt et YOURLS sont encore plus éloignés d’un usage multi-locataire.

Que m’apprend le versionnage d’une API sur son fournisseur ?

Plus que la plupart des listes de fonctions. Un fournisseur qui gèle une version et ne publie de ruptures que sous un nouveau chemin vous dit que votre intégration a une durée de vie définie. Un fournisseur dont l’API n’est pas versionnée et dont le journal des modifications est plein de champs renommés vous dit que la maintenance est à votre charge. Demandez quelle est la politique d’obsolescence, combien de temps les anciennes versions restent servies après la sortie d’une remplaçante, et s’il existe une spécification lisible par machine à partir de laquelle générer des clients.