Skip to content
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 · provenance

Web 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
Pay $0.01 USDC and run in your browserView free result sample

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.

Try the payment challenge

curl -i -X POST 'https://apiacre.com/v1/web/extract' \
  -H 'content-type: application/json' \
  --data '{"url":"https://example.com"}'