# AttestPage

Last updated: 2026-10-10

Signed evidence about web pages, for AI agents. Ask whether a quote appears on a page or check every citation in an answer at once, fetch a page and learn what actually came back, check a list of links, check that package names exist on npm, PyPI or crates.io, or timestamp a hash. Every answer carries an Ed25519-signed receipt that anyone can check offline against our published keys.

A receipt records what our fetcher saw at a given time; it does not show that a statement on the page is correct.

## Endpoints

| Route | Price per call | What you get |
|---|---|---|
| `POST /v1/verify/quote` | US$0.01 | your exact words checked against the page: exact, fuzzy or none match, offsets, page hashes, context, page verdict, receipt; or the passages best matching a paraphrased claim |
| `POST /v1/verify/citations` | US$0.10 | up to 10 quote and URL pairs: the quote verdict per citation and the page verdict per URL, one receipt |
| `POST /v1/verify/document` | US$0.10 per part | a whole answer or report: its quotes and links found and checked, 10 pairs a part, free preview first |
| `POST /v1/fetch` | US$0.002 | content_kind verdict, status, final URL, title, hashes, injection flags, optional text, receipt |
| `POST /v1/check/links` | US$0.005 | up to 10 URLs: status, redirects, content_kind, hash per URL, one receipt |
| `POST /v1/check/packages` | US$0.005 | up to 10 npm, PyPI or crates.io names: exists in registry, latest version, metadata, one receipt (not a security verdict) |
| `POST /v1/attest` | US$0.002 | signed timestamp over a SHA-256 you supply |
| `POST /v1/receipt/verify` | free | checks a receipt against our keys |
| `GET /v1/sample/{name}` | free | each paid route run on fixed demo data |

Payment is x402 v2 in USDC on Base Sepolia, a test network. A request that fails validation gets 400 before any payment is asked for. See [Payments](/docs/payments) for when a call is charged.

## Start here

1. Call a free sample: `curl https://vehcdj664efetfrsolne5umanq.srv.us/v1/sample/quote`
2. Check its receipt: `curl -X POST https://vehcdj664efetfrsolne5umanq.srv.us/v1/receipt/verify -H 'content-type: application/json' -d '{"receipt":"<receipt>"}'`
3. Call a paid route without payment to see the 402 offer, then pay with any x402 v2 client.

## For agents

- [llms.txt](https://vehcdj664efetfrsolne5umanq.srv.us/llms.txt) and [llms-full.txt](https://vehcdj664efetfrsolne5umanq.srv.us/llms-full.txt)
- [OpenAPI 3.1](https://vehcdj664efetfrsolne5umanq.srv.us/openapi.json), [pricing.json](https://vehcdj664efetfrsolne5umanq.srv.us/pricing.json), [x402 discovery](https://vehcdj664efetfrsolne5umanq.srv.us/.well-known/x402)
- Every page here is also markdown: add `.md` to the URL or send `Accept: text/markdown`.

## Read more

- [Docs](/docs)
- [How it works](/docs/how-it-works)
- [Limits](/docs/limits)
- [Our fetcher and how to opt out](/bot)
