Sign a $0.005 check. We fetch the page. We only cash it if you got the markdown. If it fails, nothing leaves the wallet.
Sign. Fetch. Pay only if it worked.
What it does
The agent signs first. We GET the public HTML. The USDC stays put until the markdown comes back.
The agent authorizes $0.005. That is a signed check, not a transfer. Nothing leaves their wallet yet.
We GET the public HTML and extract the article. JS-only shells, block pages, and junk are not billed.
Good markdown comes back, then we cash the check. $0.005 in USDC lands in our wallet.
Price
$0.005 / successful URL
Quoted in USD. Failed extracts are free. Primary rail is live on Base via x402 / PayAI. BCH second rail uses unique invoice addresses from a watch-only xpub (BCH_XPUB) when configured.
Example
First call is a price tag (HTTP 402). Sign $0.005 USDC on Base, retry with PAYMENT-SIGNATURE. payTo 0x2382EF343ba76a6D56efC8C04920d7df2F98A54D. Bitcoin Cash is a second rail: ask with rail=bch, we extract first, then invoice. Each invoice has its own bitcoincash: pay_to when BCH_XPUB is set.
# expect 402, then retry with PAYMENT-SIGNATURE curl -sS -D - -X POST https://clear-agent-fetch.fly.dev/v1/fetch \ -H 'content-type: application/json' \ -d '{"url":"https://example.com"}' # pay $0.005 USDC on Base, retry with PAYMENT-SIGNATURE # Bitcoin Cash (second rail; unique pay_to per invoice when BCH_XPUB is set) # extract first — 402 invoice if it worked, then pay and retry with txid curl -sS -D - -X POST https://clear-agent-fetch.fly.dev/v1/fetch \ -H 'content-type: application/json' \ -H 'X-Clear-Rail: bch' \ -d '{"url":"https://example.com","rail":"bch"}'
For agents
x402 fetch URL markdown. Pay USDC, get the page as markdown. No local browser: we GET the public HTML (Readability), not Playwright. Agents use x402-fetch / PAYMENT-SIGNATURE. Machine docs on this host.