Extraire une fiche produit
KIT lit une page produit et en tire les informations clés sous forme structurée : nom, prix et devise, description, images, référence, disponibilité. Là où chaque boutique présente ses fiches différemment, l’analyse s’adapte et vous rend des données propres, prêtes à comparer, à importer dans un catalogue ou à vérifier.
Exécuter en ligne
Exécutez cette tâche sur nos serveurs, avec votre compte. Les outils gratuits tournent dans votre navigateur ; celui-ci est facturé sur votre solde KIT au prix affiché ci-dessus.
Des champs normalisés
Plutôt qu’un bloc de texte, vous recevez des champs identifiés : le nom du produit, le prix avec sa devise, la description, la marque, la référence ou le code (SKU, EAN), les URL des images et l’état de disponibilité. Ces champs portent les mêmes noms d’une page à l’autre, ce qui rend l’import ou la comparaison immédiats, sans retravailler chaque fiche à la main.
Quand la structure change d’un site à l’autre
Deux boutiques n’affichent jamais leurs fiches de la même façon : balises, ordre des informations, libellés varient. Une extraction fondée sur des sélecteurs figés casse au moindre changement. Ici, l’analyse comprend le contenu de la page et retrouve les bonnes valeurs même quand la mise en page diffère, ce qui la rend robuste face à la diversité des sites marchands.
Prix et canaux
L’extraction est facturée $0.046 la requête, plus $0.0145 par URL analysée, sans abonnement. Elle s’exécute depuis le web ou par API selon que vous traitez une fiche ou tout un lot. Les applications mobiles et les canaux e-mail et Telegram viendront ensuite ; l’API reste un canal parmi d’autres, pas le produit. La page web demeure la surface principale, pensée pour extraire une fiche à l’unité aussi simplement qu’un lot entier.
Cas d’usage
Constituer un catalogue
Atelier Garnier SARL importe les fiches de ses fournisseurs — nom, prix (49,90 €), photos — pour bâtir son propre catalogue sans tout ressaisir.
Comparer une même référence
La même référence est extraite depuis plusieurs boutiques, afin de comparer prix et descriptions d’un coup d’œil, dans un tableau homogène.
Vérifier une fiche avant mise en ligne
Studio Lumen SAS contrôle qu’une fiche importée est complète — prix, images, description — avant de la publier sur le site d’un client.
Questions fréquentes
Quels champs sont extraits ?
Nom, prix et devise, description, marque, référence (SKU, EAN quand il figure), images et disponibilité. Les champs absents de la page sont simplement laissés vides.
Le prix est-il séparé de la devise ?
Oui. Le montant et la devise sont rendus séparément — par exemple 49,90 et EUR — pour être triés ou convertis facilement.
Fonctionne-t-il sur les places de marché ?
Souvent oui, car l’analyse s’adapte à la mise en page. Certaines pages très dynamiques ou protégées peuvent toutefois limiter l’extraction ; le résultat vous indique ce qui a pu être lu.
Combien coûte une extraction ?
$0.046 la requête, plus $0.0145 par URL analysée. Sans abonnement, paiement direct par PayPal, avec justificatif possible.
Mes données sont-elles conservées ?
La page est lue pour l’extraction, puis les données vous sont renvoyées et le traitement s’efface. Les échanges se font en transit chiffré.
Faut-il un compte ?
Non, aucune inscription n’est requise.
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/web/product-extract \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/product-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/product-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/product-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/product-extract", 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
{
"url": "https://ejemplo.com"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.product_extract",
"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
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |
422 | task_failed | La tâche a échoué : elle ne vous est pas facturée. |