Every returned paragraph has a stable ID your agent can quote and trace.
Read the web.
Keep the evidence.
Clean, cited page content with integrity hashes, redirect and freshness receipts, and transparent prompt-injection warnings—in one machine-payable response.
Ready. Enter a public URL.
Inspect response metadata
Connect your agent: free MCP check → paid cited evidence
Raw bytes and normalized content are independently hashed at retrieval time.
See the exact suspicious excerpt. No opaque “trust us” safety score.
1 cent a page with a card pack. 50 cents if your agent pays per call.
| Card pack | Pay per call (Stripe MPP) | |
|---|---|---|
| Price per page | $0.01 | $0.50 |
| How you pay | $5.00 once, by card, for 500 pages; you get an API key | Your agent pays $0.50 at each call, with no key |
| Why the difference | One card charge covers 500 pages | $0.50 is Stripe's smallest card charge, so each call costs at least that |
Either way you pay only for extractions that succeed. If you can store an API key, the card pack is 50 times cheaper.
500 extractions for $5.00.
One cent a page. Pay once through Stripe Checkout and get an API key for REST and MCP. A credit is used only when an extraction succeeds.
After payment, your key appears once on the next page, in the browser you paid from: copy it then. Send it as Authorization: Bearer <key> on POST /v1/evidence. Lost it? Open a support case with your Stripe receipt reference. Unused credits are refundable within 30 days.
What your agent gets back
A real paid response for example.com, built by the same fetcher the service runs (shortened only where marked). Your agent cites [p1], keeps the hashes as proof of what the page said, and reads the security block before trusting the text.
{
"schema": "proof-fetch-evidence.v1",
"retrievedAt": "2026-10-10T01:45:19.213Z",
"requestedUrl": "https://example.com/",
"finalUrl": "https://example.com/",
"redirects": [],
"http": { "status": 200, "contentType": "text/html", "bytes": 577 },
"document": {
"title": "Example Domain",
"paragraphCount": 1,
"truncated": false,
"paragraphs": [{ "id": "p1", "text": "Example Domain This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes." }]
},
"integrity": {
"rawSha256": "25ddf2c883e0d1958ea971d279a7e4f0fd446724ee3db7db19dadabd4a62e484",
"contentSha256": "cbf3f738cc4646f250e5964ab74741b434912a67e1cce86c798bf71af1cf85c8"
},
"security": { "risk": "low", "indicatorCount": 0, "indicators": [] }
/* shortened: etag, lastModified, description, language, character counts, contentText */
}Try one public page
Start with example.com, or replace it with a public article your agent needs to cite. The free check returns metadata, hashes and the first 1,000 characters or so of extracted text, so a short page comes back whole. This does not create an account or make a payment.
After a successful check, your agent can request the paid response below. It receives a payment challenge first; payment requires your separate authorization.
Run the free check to prepare the request.
Anonymous funnel events store a random per-page flow ID, a known referral label and the step reached—not your URL, page text, IP address or credentials. No analytics cookie is set. Counts can include bots and owner tests.