POST https://api.acedata.cloud/webextrator/extract
L’API d’extraction intelligente WebExtrator transforme une URL en résultats structurés typés — articles, produits, recettes, vidéos, discussions, offres d’emploi, etc., tout en fournissant du Markdown nettoyé et du texte brut. Lorsque vous souhaitez des “données structurées propres” plutôt que du HTML brut, c’est l’interface à utiliser.
La base est un pipeline à trois niveaux :
- Mapper JSON-LD schema.org — Déterministe, coût LLM nul. Couvre Wikipedia / BestBuy / AllRecipes / YouTube / la plupart des nouvelles / la plupart des pages de produits.
- Extraction LLM typée — Déclenchée uniquement lorsque schema.org n’est pas atteint. Sélectionnez le schéma selon le type de page, validation stricte Zod.
- Readability + Markdown en dernier recours — Toujours en cours d’exécution, complétant les champs de niveau supérieur non remplis des deux premières couches.
Processus de demande
Pour utiliser la page de service WebExtrator, commencez par obtenir votre jeton API sur le tableau de bord Ace Data Cloud pour le garder en réserve.
Si vous n’êtes pas encore connecté ou inscrit, vous serez automatiquement redirigé vers la page de connexion vous invitant à vous inscrire et à vous connecter, après quoi vous serez automatiquement renvoyé à la page actuelle.
Un jeton API suffit pour appeler tous les services de la plateforme, sans avoir à en demander un pour chaque service. La première demande vous donnera un quota gratuit, vous permettant de l’essayer gratuitement ; lorsque le quota est insuffisant, vous pouvez recharger le solde général dans le tableau de bord.
📘 Documentation complète : Page de service WebExtrator →
Authentification
Paramètres de demande
Extract accepte tous les paramètres de Render API (url, user_agent, timeout, wait_until, delay, wait_for_selector, block_resources, headers, cookies, callback_url, bypass_cache, cache_ttl_seconds, async), plus deux champs exclusifs à Extract :
Lorsque la page contient déjà schema.org JSON-LD, enable_llm est inactif — le mapper déterministe produit directement un résultat, ne gaspillant jamais un appel LLM. Vous obtenez gratuitement des résultats typés.
Réponse synchrone
Champs de niveau supérieur
Sous-champs de data.structured
Portée du mappage schema.org
Trié par priorité (la première correspondance est utilisée commestructured.schemaOrg.primary) :
Traitement du mappage :
- Conteneur
@graph(déplié de manière récursive) ; - Tableau
@type(comme["Recipe", "NewsArticle"]— les deux sont reconnus, la priorité l’emporte) ; - Variantes avec préfixe
http://schema.org/; OfferetAggregateOfferimbriqués (ce dernier litlowPrice) ;- URL d’image relatives (résolues en absolues selon
finalUrl).
Schéma typé LLM
Lorsqueenable_llm: true et qu’il n’y a pas de primary schema.org, l’extracteur utilise une heuristique basée sur l’URL
(ou un indice expected_type) pour sélectionner l’un des modèles de validation Zod suivants :
En cas de succès, LLM remplira également les champs de niveau supérieur en tant que “dernier recours” :
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(les 280 premiers caractères du corps) /byline( = auteur) /publishedAt( = postedAt)recipe→description/byline( = auteur)video→description/byline( = chaîne) /publishedAt( = uploadDate)job→description/byline( = entreprise) /publishedAt( = datePosted)
Cache
Les mêmes requêtes seront hachées vers la même clé Redis :webextrator:cache:extract:<sha256(canonical-json)>. La clé de cache ignore async,
bypass_cache, cache_ttl_seconds (c’est un interrupteur d’opération, n’affecte pas la réponse). cookies /
headers seront mis en cache par compartiments.
Les réponses ayant atteint le cache porteront
data.cached: true et data.cacheStoredAt: <unix-ms>.
Mode asynchrone et rappel
Définirasync: true pour entrer en mode asynchrone (fournir callback_url entraînera également une entrée automatique). La plateforme renvoie immédiatement (HTTP 200) :
POST complet de l’enveloppe est envoyé à votre callback_url (si configuré). Vous pouvez également
interroger activement via /webextrator/tasks.
Exemple
1. Article Wikipedia (schema.org correspond, pas besoin de LLM)
data.structured.schemaOrg.primary :
2. Page produit BestBuy (schema.org hit)
3. Page de recette AllRecipes (avec nutrition et étapes)
4. Page de discussion HN (sans JSON-LD — nécessite l’activation de LLM)
data.structured.llm.data :
byline = "alice"、publishedAt = "..."。
5. Page produit Amazon (Amazon sans JSON-LD — nécessite l’activation de LLM)
data.structured.llm.data (type product) :
Python (requests)
Node.js (fetch)
Conseils et pièges
- Si vous pouvez passer
expected_type, faites-le. Astuce gratuite, évitez le jugement heuristique, surtout utile pour les pages dont le modèle d’URL n’est pas dans la liste intégrée. enable_llm: truesur les pages avec un hit schema.org est gratuit. LLM n’est appelé que lorsque schema.org n’a pas de primaire, donc c’est généralement sûr de le laisser activé.- Pour le débogage, vérifiez d’abord
rawSignals.hasJsonLd. Si c’esttruemais questructured.schemaOrg.primaryestnull, cela signifie que la page utilise un@typeque notre mappage n’a pas encore couvert — ouvrez un problème, nous ajouterons. structured.llmErrorest informatif. La demande réussit toujours, les résultats heuristiques sont toujours renvoyés. ConsultezllmError.errorpour localiser la raison (délai d’attente, échec de l’analyse JSON, échec de la validation Zod).- Les
links[]des pages non-articles ne seront pas triés par pertinence. Seulement selon “limite de 100 éléments + filtrage des protocoles invalides” pour essayer de nettoyer. - Les hits de cache sont également facturés. Le cache est là pour réduire la latence et protéger le pool de navigateurs, pas pour économiser de l’argent.

