📥 Verifiable fetch
Get clean, machine-ready content from a live page and an on-chain receipt committing to exactly the bytes you were handed. Scraping is a commodity; a third-party-checkable record of what the web said at a moment in time is not.
API-only and paid (first few calls free — see
pay-per-call). Pay per call: attach the payment as a PAYMENT-SIGNATURE header
(x402, one round trip), or POST once with no payment to get a 402 invoice:
curl -X POST https://bsv.cx/f -H "payment-signature: <x402 payment>" \
-H 'content-type: application/json' \
-d '{"url":"https://example.com","mode":"article"}'OP_RETURN bsv.cx fet2 <manifestHash>Extraction modes
The same page is worth different things to different callers. Each mode produces different bytes, so the mode is recorded in the manifest — a receipt that said only "this URL produced these bytes" would be ambiguous.
selector, e.g. "#main"Endpoints
{ url, mode?, selector?, thorough? }curl -X POST https://bsv.cx/f -H "payment-signature: <x402 payment>" \
-H 'content-type: application/json' \
-d '{"url":"https://example.com","mode":"article"}'
Verify it yourself
Re-hash the content and confirm it matches manifest.contentSha256;
re-hash the manifest and confirm it matches the receipt id; then confirm that id appears in the
transaction's OP_RETURN. Verification endpoints are free and always will be — a proof nobody can
check is not a proof.
And you don't have to trust an explorer for this, either. bsv.cx runs its own block-headers service, syncing the chain's headers directly over the BSV peer-to-peer network. For every anchor it recomputes the transaction's block Merkle root from an SPV proof and confirms it against those headers before publishing the proof on the record. Look for the green "✓ Independently verified against bsv.cx's own block headers" line on any proof page, open it, and recheck the same proof against any header source you trust — no explorer, and no bsv.cx, in the trust path.