POST https://api.acedata.cloud/webextrator/extract
The WebExtrator Intelligent Extraction API converts a URL into typed structured results — articles, products, recipes, videos, discussions, job postings, etc., along with cleaned Markdown and plain text. This is the interface to use when you want “clean structured data” instead of raw HTML.
At the core is a three-layer pipeline:
- schema.org JSON-LD Mapper — Deterministic, zero LLM cost. Covers Wikipedia / BestBuy / AllRecipes / YouTube / most news / most product pages.
- Typed LLM Extraction — Triggered only when schema.org is not hit. Select Schema by page type, strict validation with Zod.
- Readability + Markdown Fallback — Always runs, filling in top-level fields not populated by the first two layers.
Application Process
To use the WebExtrator service page, first go to the Ace Data Cloud Console to obtain your API Token for backup.
If you are not logged in or registered, you will be automatically redirected to the login page inviting you to register and log in, and will return to the current page upon completion.
One API Token can call all services on the platform, no need to apply separately for each service. The first application will grant a free quota for a trial experience; when the quota is insufficient, you can recharge the general balance in the console.
📘 Complete documentation: WebExtrator Service Page →
Authentication
Request Parameters
Extract accepts all Render API parameters (url, user_agent, timeout, wait_until, delay, wait_for_selector, block_resources, headers, cookies, callback_url, bypass_cache, cache_ttl_seconds, async), plus two Extract-specific fields:
When the page has its own schema.org JSON-LD, enable_llm is ineffective — the deterministic mapper directly produces results, never wasting LLM calls. You get free typed results.
Synchronous Response
Top-Level Fields
data.structured Subfields
schema.org Mapper Coverage
Sorted by priority (hit is treated asstructured.schemaOrg.primary):
Mapper processes:
@graphcontainer (recursively expanded);@typearray (e.g.,["Recipe", "NewsArticle"]— both recognized, with priority winning);- Variants with
http://schema.org/prefix; - Nested
OfferandAggregateOffer(the latter readslowPrice); - Relative image URLs (resolved to absolute by
finalUrl).
LLM Typed Schema
Whenenable_llm: true and schema.org has no primary, the extractor uses URL heuristics
(or expected_type hints) to select one of the Zod Schema validation model outputs below:
When LLM is successful, it will also backfill the top-level fields as a “last-resort”:
article→description/byline/publishedAt/languageproduct→descriptiondiscussion→description(first 280 characters of body) /byline(author) /publishedAt(postedAt)recipe→description/byline(author)video→description/byline(channel) /publishedAt(uploadDate)job→description/byline(company) /publishedAt(datePosted)
Cache
Identical requests will be hashed to the same Redis Key:webextrator:cache:extract:<sha256(canonical-json)>. Cache Key ignores async,
bypass_cache, cache_ttl_seconds (this is an operational switch, does not affect response). cookies /
headers will be bucketed for caching.
Responses hitting the cache will include
data.cached: true and data.cacheStoredAt: <unix-ms>.
Asynchronous Mode and Callback
Setasync: true to enter asynchronous mode (providing callback_url will also automatically enter). The platform immediately returns (HTTP 200):
POST the complete envelope to your callback_url (if configured). You can also actively query later through /webextrator/tasks.
Example
1. Wikipedia Article (schema.org hit, no LLM needed)
data.structured.schemaOrg.primary key fields:
2. BestBuy Product Page (schema.org Hit)
3. AllRecipes Recipe Page (Including Nutrition and Steps)
4. HN Discussion Page (No JSON-LD — LLM Needs to be Enabled)
data.structured.llm.data:
byline = "alice"、publishedAt = "..."。
5. Amazon Product Page (Amazon No JSON-LD — LLM Needs to be Enabled)
data.structured.llm.data (Typed product):
Python (requests)
Node.js (fetch)
Tips and Pitfalls
- If
expected_typecan be passed, do so. Free tip, skip heuristic judgment, especially useful for pages not in the built-in list. enable_llm: trueis free on schema.org hit pages. LLM is only called when schema.org does not have primary, so it’s safe to keep it on by default.- Check
rawSignals.hasJsonLdfirst during debugging. Iftruebutstructured.schemaOrg.primaryisnull, it means the page used a@typethat our mapper has not covered — please file an issue, and we will add it. structured.llmErroris informational. The request is still successful, and heuristic results are still returned. CheckllmError.errorto locate the reason (timeout, JSON parsing failure, Zod validation failure).- Non-article page’s
links[]will not be sorted by relevance. Only cleaned up by “up to 100 entries + filtering invalid protocols.” - Cache hits are also charged. Caching is for latency and protecting the browser pool, not for saving money.

