All-in-One Extract
Full request and response reference for POST /v1/extract.
POST /v1/extract
Use this endpoint when you want a single request to fetch a page and return structured output.
Authentication
- The API is currently in internal testing
- External requests must include
X-API-Key - Contact an administrator to get your API key
Request Body
{
"extract": {
"url": "https://example.com"
},
"workflow": {
"match_timeout_ms": 30000,
"generate_timeout_ms": 30000,
"extract_timeout_ms": 30000
},
"trace": {
"include_steps": true,
"include_raw_dom": false
}
}Fields
| Field | Type | Required | Description |
|---|---|---|---|
extract | object | Yes | Main extraction request |
extract.url | string | No | Target page URL |
extract.dom_id | string | No | Existing DOM snapshot ID |
workflow.match_timeout_ms | int | No | Template match timeout, default 30000 |
workflow.generate_timeout_ms | int | No | Template generation timeout, default 30000 |
workflow.extract_timeout_ms | int | No | Final extract timeout, default 30000 |
trace.include_steps | bool | No | Return workflow steps, default true |
trace.include_raw_dom | bool | No | Return raw DOM, default false |
Rules:
- At least one of
extract.urlorextract.dom_idis required - Omit
workflowunless you need custom timeouts - For normal production calls, set
trace.include_steps=falseandtrace.include_raw_dom=false
Minimal Example
API_KEY='<your-api-key>'
curl -sS -X POST https://webfetch.lexmount.com/v1/extract \
-H 'content-type: application/json' \
-H "X-API-Key: $API_KEY" \
-d '{"extract":{"url":"https://mp.weixin.qq.com/s/H8Nnk6HEKlwDREmxdjsXSg"}}'Response Shape
Top-level response fields:
| Field | Description |
|---|---|
result | Structured extraction result on success |
metadata | Extra metadata such as dom_id, template_id, and server_elapsed_ms |
error | Error object on failure |
trace | Workflow trace steps; returned only when include_steps=true |
raw_dom | Raw DOM content; returned only when include_raw_dom=true |
Common fields inside result:
urlfinal_urlstatus_codetitledescriptionmain_textpublish_timeauthorlanguagelinksimagesenginetemplate_iddom_id
Reuse an Existing dom_id
curl -sS -X POST https://webfetch.lexmount.com/v1/extract \
-H 'content-type: application/json' \
-H "X-API-Key: $API_KEY" \
-d '{
"extract": {
"dom_id": "123"
},
"trace": {
"include_steps": false,
"include_raw_dom": false
}
}'Disable Trace
By default, POST /v1/extract returns trace.
To make the response smaller, explicitly disable it:
curl -sS -X POST https://webfetch.lexmount.com/v1/extract \
-H 'content-type: application/json' \
-H "X-API-Key: $API_KEY" \
-d '{
"extract": {
"url": "https://example.com"
},
"trace": {
"include_steps": false
}
}'Return Raw DOM
By default, raw_dom is not returned.
Enable it only when you actually need the captured DOM in the response:
curl -sS -X POST https://webfetch.lexmount.com/v1/extract \
-H 'content-type: application/json' \
-H "X-API-Key: $API_KEY" \
-d '{
"extract": {
"url": "https://example.com"
},
"trace": {
"include_raw_dom": true
}
}'raw_domcan be very large and is not recommended for normal production calls
Debug Mode
Turn on both debug fields only when you need to inspect the workflow and the captured page:
curl -sS -X POST https://webfetch.lexmount.com/v1/extract \
-H 'content-type: application/json' \
-H "X-API-Key: $API_KEY" \
-d '{
"extract": {
"url": "https://example.com"
},
"trace": {
"include_steps": true,
"include_raw_dom": true
}
}'tracemakes responses largerraw_domcan be very large and is not recommended for normal production calls
For common failures, see Common Errors.
Lexmount Docs