Extract structured JSON data from a web page with an LLM
crawl4ai.web.extract.structuredScrape a page (crawled for you) or read your own content, and return typed JSON matching a JSON schema and/or a plain-English instruction, extracted by an LLM.
- Price
- $0.01/successAt provider cost
- Success rate
- 95.2%Last 30 days · 19,800 calls
- Latency p50
- 2 sp95 6.6 s
- Last verified
- Oct 5, 2026Verified working
POSThttps://toolswitch.dev/v1/tools/crawl4ai.web.extract.structuredPreviewTry onlineComing soonProvider docs ↗
- Uses platform quota
- Synchronous response
- Reads public data
Parameters
Send url or content, plus instruction and/or schema.
This tool has no parameters. See provider docs ↗ Provider docs
Code samples
Replace $TOOLSWITCH_KEY with the key you created in the console.
Preview
curl -X POST 'https://toolswitch.dev/v1/tools/crawl4ai.web.extract.structured' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY" \
-H "Content-Type: application/json" \
--data-raw '{"url":"https://example.com","schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string"}}},"instruction":"the page title"}'import os
import json
import requests
response = requests.request(
"POST",
"https://toolswitch.dev/v1/tools/crawl4ai.web.extract.structured",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
json=json.loads("{\"url\":\"https://example.com\",\"schema\":{\"type\":\"object\",\"required\":[\"title\"],\"properties\":{\"title\":{\"type\":\"string\"}}},\"instruction\":\"the page title\"}"),
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/crawl4ai.web.extract.structured", {
method: "POST",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
"Content-Type": "application/json",
},
body: JSON.stringify(JSON.parse("{\"url\":\"https://example.com\",\"schema\":{\"type\":\"object\",\"required\":[\"title\"],\"properties\":{\"title\":{\"type\":\"string\"}}},\"instruction\":\"the page title\"}")),
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());This gateway API is in preview; its URL and authentication may change. The example parameters are sample data. Calls are billed at $0.01/success, including the service fee.