Web Extract
Extract clean structured content (title, text, markdown, headings, links, metadata) from any public URL.
$0.005
USDC per call · x402
Endpoint
POST /v1/web/extract
MCP name
agentbit.web_extract
Status
active
Latency / uptime (7d)
147 ms · 100%
Call with x402
1. Send the request. 2. Receive 402 with accepts[]. 3. Sign the payment and retry with the X-PAYMENT header.
curl -X POST https://agentbit.app/v1/web/extract \
-H 'Content-Type: application/json' \
-d '{"url":"https://example.com","include_links":true}'
Input schema
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"output_format": {
"type": "string"
},
"render_fallback": {
"type": "boolean"
},
"include_links": {
"type": "boolean"
}
},
"required": [
"url"
]
}Output schema
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"description": {
"type": "string"
},
"markdown": {
"type": "string"
},
"text": {
"type": "string"
},
"headings": {
"type": "array",
"items": {
"type": "object",
"properties": [],
"required": []
}
},
"links": {
"type": "array",
"items": {
"type": "object",
"properties": [],
"required": []
}
},
"metadata": {
"type": "object",
"properties": [],
"required": []
}
},
"required": []
}Code examples
// JavaScript (x402-fetch)
import { wrapFetchWithPayment } from "x402-fetch";
const fetchWithPay = wrapFetchWithPayment(fetch, wallet);
const r = await fetchWithPay("https://agentbit.app/v1/web/extract", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({"url":"https://example.com","include_links":true})
});
console.log(await r.json());
# Python (x402 client)
from x402.clients.requests import x402_requests
s = x402_requests(account)
r = s.post("https://agentbit.app/v1/web/extract",
json={"url":"https://example.com","include_links":true})
print(r.json())
// PHP
$r = Http::withHeaders(['X-PAYMENT' => $signedPayment])
->post('https://agentbit.app/v1/web/extract',
array (
'url' => 'https://example.com',
'include_links' => true,
));
$data = $r->json();