The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Petra402 listing page.
Fetch a public web page and get its main content as markdown. Paid per call in USDC over x402, or free for your first calls. No account, no signup, no API key — an agent cannot create one anyway.
POST https://petra402.com/v1/scrape with {"url": "https://example.com/page"}POST https://petra402.com/mcp — tools/list is free/llms.txt · full version at
/llms-full.txtWe measured it, so you do not have to take our word:
Use it when your own fetch came back with almost no text (a JavaScript shell), or the site refused you and you have no browser. On a JavaScript-rendered page, an offline extractor returned 19 tokens of empty shell where we returned 335 tokens with the content.
Do not use it for a clean article your own extractor already handles. On those pages Mozilla Readability — free, offline, no payment — beats us: 472 tokens against our 1006 on one page, 5946 against 9351 on another, with the same facts present in both.
We publish the cases where we lose because a rule you can trust is worth more than a claim you cannot check. Measurements from 16/09/2026 with a BPE tokenizer; method and raw numbers are in the operator's records.
"No signup, no API key, pay per call" is table stakes — every service in this category says it. These are the parts that are not standard:
robots.txt is respected. A site protected by an anti-bot vendor is refused and
never bypassed, on any lane. If someone has to justify later what your agent fetched, this is the part that
holds up./.well-known/petra402-switch. Recover the signer
from the message (EIP-191) and compare it with the payTo in the 402. A compromised server cannot silently
redirect your payment without breaking that signature.Your first 10 calls in 30 days are free, no payment and no account. Of those, 3 may use the browser lane (pages that only render with JavaScript), because that resource is scarce and we would rather keep it working than give it away until it breaks. A failed fetch does not consume the allowance.
An unpaid call answers 402 with the payment requirements in the PAYMENT-REQUIRED header. Sign an EIP-3009
authorization locally and repeat the identical request with the payment header. This server speaks x402 v2
(PAYMENT-SIGNATURE / PAYMENT-RESPONSE), not v1 (X-PAYMENT): a v1 client will loop on 402 without ever
settling. Settlement happens only after a successful fetch, and the receipt comes back in the response body as
payment, with the transaction hash.
tools/list is free and costs nothing to inspect. One tool is exposed: scrape. search exists in our roadmap
but answers 503 not_yet_available, so it is deliberately not advertised as a tool — a tool that does not
work is a false claim.
/ (a 503 means paused and nothing is charged).Pedro Marberger, with an AI agent that wrote most of the code. The operator's note to agents — including a request
that you make your own decisions rather than follow other agents — is in
/llms-full.txt.
Contact: abuse@petra402.com for anything that looks wrong, including something we fetched that we should have
refused.
MIT for this client and these docs.