ForHosting KIT · Veille et lecture de sites web

Vérifiez l’unicité et le format d’un slug

Vérifiez un slug proposé avant son arrivée dans un CMS, un pipeline de déploiement ou une table de routage.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

L’outil impose d’abord un format prévisible composé de minuscules, de chiffres et de traits d’union simples, puis compare la proposition valide aux slugs existants que vous fournissez. Un format incorrect déclenche toujours une erreur, même si le même texte figure dans la liste. Un résultat valide indique clairement si le slug est unique et si une collision exacte existe.

Validez le slug avant de vérifier sa disponibilité

Un résultat d’unicité n’est utile que si la valeur proposée peut intégrer une URL sans risque. Saisissez le candidat et fournissez les slugs déjà utilisés par votre site, votre application ou votre référentiel de contenu. Sont acceptés les lettres anglaises minuscules de a à z, les chiffres de 0 à 9 et les traits d’union placés entre des groupes non vides. Les majuscules, espaces, tirets bas, signes de ponctuation et traits d’union initiaux, finaux ou répétés sont refusés. L’ordre est strict : le format est validé avant la recherche d’une correspondance. Un candidat incorrect présent dans la liste produit donc une erreur de saisie, et non une collision ordinaire. Vos formulaires, imports en masse et déploiements appliquent ainsi une règle stable. Respectez la longueur maximale et transmettez la collection actuelle sous forme de tableau de chaînes ; aucune normalisation invisible ne modifie vos données.

Interprétez correctement les collisions exactes

Pour un candidat bien formé, la réponse reprend le slug, confirme la validité de son format et fournit deux indicateurs complémentaires : unicité et collision. Il y a collision lorsque la chaîne exacte apparaît au moins une fois dans la liste transmise. La comparaison est volontairement exacte : l’outil ne retire aucun préfixe, ne décode pas les échappements URL, ne tronque pas les éléments et n’assimile pas deux expressions proches. Ainsi, guide-produit et guides-produit restent deux routes valides distinctes. Ce choix garantit une réponse déterministe et laisse votre application gérer les noms réservés, préfixes régionaux, redirections ou contraintes de base de données. Les doublons dans la liste ne changent rien. Cette liste étant la source de vérité de la requête, actualisez-la lorsque plusieurs équipes peuvent réserver des routes en même temps.

Intégrez le contrôle à la publication et au déploiement

Lancez le contrôle aussi près que possible de la réservation d’une route. Dans un éditeur, validez après la génération du slug depuis le titre et recommencez après toute modification. Pour un site statique, rassemblez d’abord les chemins de sortie, puis testez chaque proposition contre les chemins acceptés. Dans une API ou une migration, traitez les erreurs de saisie comme des défauts de qualité à corriger et les collisions comme des décisions de nommage. L’opération est déterministe, sans réseau ni stockage, donc adaptée aux tests et aux builds reproductibles. Elle vérifie toutefois sans réserver : un autre processus peut réclamer le slug après la lecture de votre liste. En cas d’écritures concurrentes, imposez aussi une contrainte unique ou effectuez une réservation atomique lors de l’enregistrement.

Éviter les collisions de routes dans un CMS

Validez le chemin proposé et avertissez lorsqu’un article utilise déjà exactement ce slug.

Sécuriser les builds de sites statiques

Comparez les slugs générés aux chemins acceptés avant l’écriture ou le déploiement.

Nettoyer les données de migration

Séparez les anciens slugs mal formés des noms valides qui entrent simplement en collision.

Quel format de slug est accepté ?

Une ou plusieurs lettres minuscules ou chiffres, éventuellement séparés par des traits d’union simples, jamais initiaux, finaux ou répétés.

Que se passe-t-il si un slug incorrect figure aussi dans la liste ?

L’outil renvoie une erreur de saisie, car la validation du format précède toujours la recherche de collision.

La recherche de collision ignore-t-elle la casse ?

Non. La comparaison est exacte. Les majuscules sont déjà interdites dans la proposition et la liste n’est pas normalisée.

Un résultat unique réserve-t-il le slug ?

Non. Seule la liste fournie est vérifiée. Utilisez une écriture atomique ou une contrainte unique contre les réservations simultanées.

Combien coûte une requête API ?

Le prix de base est de $0.002 par requête. La même logique déterministe peut s’exécuter dans le navigateur.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/web/slug-uniqueness-check

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/web/slug-uniqueness-check \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"slug":"summer-sale-2026","existing_slugs":["spring-sale-2026","clearance"]}'
{
  "slug": "summer-sale-2026",
  "existing_slugs": [
    "spring-sale-2026",
    "clearance"
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "web.slug_uniqueness_check",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_existing_slugs10000
max_slug_length200
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →