live on base · x402 · usdc

Web pages, machine-readable, $0.01 a call.

Agent Extract is a pay-per-call API built for AI agents. Your agent sends a URL, pays $0.01 in USDC over the x402 protocol, and gets back the title, description, headings, clean main text, markdown and links of that page. No account, no API key, no invoice.

buying-agent — 402 handshake
$ curl -X POST /api/public/extract -d '{"url":"https://example.com"}'
HTTP/1.1 402 Payment Required
{"accepts":[{"scheme":"exact","network":"base","maxAmountRequired":"10000"}]}

$ curl -X POST /api/public/extract -H "x-payment: <signed>" ...
HTTP/1.1 200 OK · settled $0.01 USDC
{"title":"...","markdown":"## ...","wordCount":1284}

Paid calls settled

USDC earned

Success rate

Avg latency

protocol

How a buying agent uses it

01

Discover

The agent reads /api/public/discovery and learns the price, the network, the input schema and the output schema — no docs required.

02

Pay

It POSTs the URL, receives HTTP 402 with x402 payment requirements, signs a USDC authorization for $0.01, and retries with the X-PAYMENT header.

03

Extract

Payment is verified and settled on-chain by the facilitator, then the page is fetched, cleaned of navigation and ads, and returned as structured JSON, text or markdown.

response

What comes back

  • Title, description, canonical URL and site metadata
  • Boilerplate-stripped main text — no navs, footers or ad slots
  • Markdown rendering of the body for LLM context windows
  • Heading outline, link list, word count and reading time
  • Quality score so your agent knows when extraction was thin
  • Machine-readable error codes for blocked, missing or oversized pages
{
  "url": "https://example.com/post",
  "title": "How agents pay agents",
  "description": "A short primer ...",
  "headings": ["Why nanopayments", "The 402 handshake"],
  "text": "Clean article body ...",
  "markdown": "## Why nanopayments\n\n...",
  "links": ["https://x402.org", "..."],
  "wordCount": 1284,
  "readingTimeMinutes": 6,
  "qualityScore": 0.91,
  "cached": false
}

pricing

One price. Per call.

$0.01

per successful extraction

Settlement
USDC on Base, x402 protocol
Atomic amount
10000 (6 decimals)
Cache window
15 min — cached pages serve faster
Failed calls
Never charged — errors return 4xx/5xx with a code
Subscriptions
None. Pay only for the calls you make.
Minimum
None. One call is a valid customer.

optional · nano billing

Prepaid balance

Deposit USDC once over x402, get an API key, and every later call draws $0.01 from the balance — no on-chain settlement per request, so calls are faster and cheaper in gas.

Packs
$1 (100 calls) · $5 (500) · $20 (2,000)
Auth
Authorization: Bearer ax_…
Top up
POST /api/public/topup?pack=1
Balance
GET /api/public/balance
Price per call
Identical — $0.01
# 1. deposit once (returns your API key)
circle services pay "https://fetchweb.net/api/public/topup?pack=1" \
  -X POST --address 0xYOURWALLET --chain BASE

# 2. then just call it with the key
curl -X POST https://fetchweb.net/api/public/extract \
  -H "authorization: Bearer ax_..." \
  -H "content-type: application/json" \
  -d '{"url":"https://example.com"}'

quickstart

Integrate in a minute

# 1. discover price + schema
curl $BASE/api/public/discovery

# 2. call it (returns 402 with payment requirements)
curl -X POST $BASE/api/public/extract \
  -H 'content-type: application/json' \
  -d '{"url":"https://example.com","format":"markdown"}'

# 3. pay and retry with the signed x402 header
curl -X POST $BASE/api/public/extract \
  -H 'content-type: application/json' \
  -H "x-payment: $SIGNED_X402_PAYLOAD" \
  -d '{"url":"https://example.com","format":"markdown"}'

Any x402-capable client works, including the Circle agent CLI: circle services pay.