Intersection de deux listes
L’intersection de deux listes regroupe les éléments présents dans les deux entrées.
Lancer gratuitement
Cet outil effectue la comparaison et renvoie chaque valeur commune une seule fois, dans l’ordre de sa première apparition dans la première liste. Il permet de comparer des mots-clés, de rapprocher des étiquettes, de contrôler des listes d’autorisation ou d’extraire le sous-ensemble commun de deux sources. La correspondance est exacte par défaut, avec une option insensible à la casse qui conserve l’orthographe renvoyée.
Préparez deux listes pour une comparaison pertinente
Placez les valeurs de référence dans la première liste et celles que vous souhaitez comparer dans la seconde. Chaque élément doit être du texte. L’opération ne supprime pas les espaces, ne modifie pas la ponctuation et ne devine aucune équivalence. Normalisez donc au préalable les différences accidentelles. La première liste détermine l’ordre et l’orthographe du résultat. Si un élément commun se répète, il ne figure qu’une fois, à l’emplacement de sa première occurrence. Vous obtenez ainsi une intersection d’ensembles stable et exploitable dans les étapes suivantes. Les deux listes doivent contenir au moins un élément, mais le résultat peut être vide lorsqu’aucune valeur ne correspond.
Choisissez une correspondance exacte ou insensible à la casse
La correspondance exacte est utilisée par défaut, car certains identifiants sont sensibles à la casse. Selon cette règle, « API » et « api » diffèrent. Activez ignore_case lorsque les majuscules n’ont pas d’importance, notamment pour des mots-clés ou des étiquettes saisis manuellement. Cette option modifie uniquement les clés de recherche internes et conserve dans le résultat l’orthographe de la première liste. Les doublons suivent la même règle et ne produisent qu’une valeur. Les chaînes complètes sont comparées : « e-mail » ne correspond pas à « marketing par e-mail ». Pour ignorer les accents, uniformiser les espaces ou gérer des synonymes, normalisez vos données au préalable.
Intégrez l’intersection à vos flux de données
La réponse contient le tableau d’intersection, son nombre d’éléments uniques, la taille initiale de chaque liste et le mode de comparaison. Une équipe peut confronter des mots-clés prévus aux sujets déjà couverts, une boutique peut croiser des étiquettes de produits avec une liste autorisée et un pipeline peut comparer les colonnes de deux exports. Le calcul est déterministe : les mêmes entrées donnent toujours le même résultat ordonné. Aucun réseau, modèle, choix aléatoire ou horaire actuel n’intervient. L’API coûte $0.002 par requête et l’outil du navigateur applique exactement la même logique pure.
Cas d’usage
Comparer des exports de mots-clés
Repérez les termes communs à deux outils de recherche ou listes de campagne avant de regrouper le travail SEO.
Rapprocher des étiquettes
Identifiez les étiquettes acceptées à la fois par un système de contenu et par une plateforme cible.
Filtrer avec une liste autorisée
Conservez uniquement les libellés ou identifiants demandés qui figurent aussi dans une liste de texte approuvée.
Questions fréquentes
Que renvoie cette opération ?
Elle renvoie une fois chaque chaîne présente dans les deux listes, selon l’ordre et l’orthographe de sa première apparition dans list_a.
Les doublons sont-ils inclus ?
Non. Le résultat est une intersection d’ensembles ; chaque valeur correspondante n’apparaît donc qu’une fois.
La comparaison est-elle sensible à la casse ?
Oui, par défaut. Définissez ignore_case sur true lorsque les majuscules ne doivent pas modifier la correspondance.
Les espaces ou la ponctuation sont-ils supprimés ?
Non. Les valeurs sont comparées telles quelles, hormis l’option d’ignorer la casse. Normalisez-les d’abord si nécessaire.
Que se passe-t-il sans correspondance ?
La requête réussit et renvoie un tableau d’intersection vide ainsi qu’un total égal à zéro.
Combien coûte une requête API ?
Chaque requête API coûte $0.002.
Pour les développeurs — accès API
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.
Endpoint
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é.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/str/list-intersection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}'const res = await fetch("https://api.kit.forhosting.com/str/list-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/list-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/list-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/list-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.list_intersection",
"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.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_items_per_list | 10000 |
max_item_chars | 4096 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |