web · web · audit · url-to-markdown · website-to-markdown · extract-webpage · convert-webpage · clean-text · rag-content · scraping · markdown · rag · content · webpage-extraction · content-intelligence · structured-links · provenanceWeb content extraction
Convert and extract a public website URL into clean Markdown or readable text plus bounded structured links, canonical and heading signals, Schema.org types, redirect evidence, content hashes, and response provenance for RAG, research, or agent context.
$0.01 USDCBase + Solanax402 v2POST
Endpoint
https://apiacre.com/v1/web/extract
Send the JSON body below. An unpaid request returns HTTP 402 with a PAYMENT-REQUIRED header; an x402-compatible buyer signs the requirement and retries with PAYMENT-SIGNATURE.
Pay $0.01 USDC and run in your browser
Official Coinbase agent path
Coinbase Agentic Wallet can satisfy this x402 request in one command. Running it may pay automatically, so --max-amount is fixed to $0.01 USDC in atomic units. Copying the command does not install, authenticate, sign, or pay; review the request and use a separate low-value wallet before running it.
npx --yes awal@latest x402 pay https://apiacre.com/v1/web/extract \
-X POST \
-d '{"url":"https://example.com"}' \
--max-amount 10000 \
--json
Coinbase pay-for-service documentation · Buyer setup and wallet safety
Alternative third-party AgentCash commands
Run check first without payment. Its fetch command may automatically pay up to the exact listed price.
npx --yes agentcash@latest check https://apiacre.com/v1/web/extract
npx --yes agentcash@latest fetch https://apiacre.com/v1/web/extract \
--method POST \
--header 'content-type: application/json' \
--body '{"url":"https://example.com"}' \
--payment-protocol x402 \
--payment-network base \
--max-amount 0.010
AgentCash CLI documentation
Input example
{
"url": "https://example.com"
}
Response shape
View free static sample JSON
{
"request_id": "018f1f54-7f38-7ba2-8dc3-5f90272d9f1a",
"service": "web.extract",
"version": "1",
"data": {
"requestedUrl": "https://example.com/",
"redirected": false,
"url": "https://example.com/",
"title": "Example Domain",
"description": null,
"language": "en",
"format": "markdown",
"content": "# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)",
"characters": 167,
"words": 19,
"sha256": "5945db6fd8137aa377638814ca9bb1ac0a663fd90a97f11f86c3f5c09cfb40e3",
"contentSha256": "5945db6fd8137aa377638814ca9bb1ac0a663fd90a97f11f86c3f5c09cfb40e3",
"pageSignals": {
"canonicalUrl": null,
"headings": {
"h1": [
"Example Domain"
],
"h2Count": 0,
"h3Count": 0
},
"structuredData": {
"blocks": 0,
"validBlocks": 0,
"invalidBlocks": 0,
"types": [],
"truncated": false
},
"feedCount": 0,
"alternateLanguageCount": 0
},
"links": {
"detected": 1,
"returned": 1,
"internal": 0,
"external": 1,
"truncated": false,
"scanLimit": 500,
"returnLimit": 100,
"items": [
{
"url": "https://iana.org/domains/example",
"text": "Learn more",
"external": true
}
]
},
"response": {
"statusCode": 200,
"contentType": "text/html",
"elapsedMs": 36,
"bytes": 559,
"bodySha256": "ff67a9d764d6a2367a187734e697f6a53217db9a21c101d410a113ca871a299d"
},
"extraction": {
"version": "apiacre-content-extract/3",
"method": "bounded HTML DOM extraction",
"javascriptRendered": false,
"linksPreserved": true,
"limitations": [
"Client-rendered content is not executed.",
"Markdown preserves readable block text, not the complete page layout.",
"Structured links are bounded and exclude non-HTTP(S) targets."
]
}
},
"meta": {
"duration_ms": 42,
"cached": false,
"sources": [],
"warnings": [],
"next_actions": []
}
}
Complete recipes using this API
These buyer-controlled recipes connect this service to compatible API Acre results. Every step has its own exact price and requires separate authorization.
Convert one public URL into clean Markdown and collect canonical, social, hreflang, feed, heading, and JSON-LD metadata for RAG ingestion, research, or content indexing. The two results come from separate bounded fetches and each call requires its own buyer authorization.
Inspect the 2-step recipe
Try the payment challenge
curl -i -X POST 'https://apiacre.com/v1/web/extract' \
-H 'content-type: application/json' \
--data '{"url":"https://example.com"}'