Docs
Last updated: 2026-10-13
AttestPage returns signed evidence for AI agents: whether a quote or a whole set of citations appears on the cited pages, what our fetcher got back from a URL, whether links are live, whether package names exist on npm, PyPI or crates.io, and signed timestamps over hashes. Each page here is also markdown: add .md to its URL or send Accept: text/markdown.
Routes
- Verify a quote:
POST /v1/verify/quote, US$0.01 - Verify quotes on one page:
POST /v1/verify/quotes, US$0.02 per call of up to 20 quotes - Verify citations:
POST /v1/verify/citations, US$0.10 per batch - Verify a document:
POST /v1/verify/document, US$0.10 per part of up to 10 pairs, free preview - Fetch a page:
POST /v1/fetch, US$0.002 - Recheck a page:
POST /v1/recheck, US$0.003: has a page you read earlier changed since its receipt - Check links:
POST /v1/check/links, US$0.005 per batch - Check packages:
POST /v1/check/packages, US$0.005 per batch - Attest a hash:
POST /v1/attest, US$0.002 - Verify a receipt:
POST /v1/receipt/verify, free - Samples:
GET /v1/sample/{name}, free
Guides
- All guides: the index of every step-by-step guide
- Payments: the x402 flow and when a call is charged
- How it works: the fetcher, content_kind values and receipts
- Receipt demo: a signed receipt end to end, with free calls only
- Demo: one paid call and its signed receipt: the request, the 402 offer, the paid retry with x402 and the receipt, with a signature check in Node.js
- Verify receipts offline: the checker script and keys
- MCP server: one MCP tool per route, paying with x402 or the free trial
- Agent Skill: a SKILL.md telling an agent when to check a source and how to read the verdict
- Quickstart: from discovery to your first paid call, step by step, with prices from pricing.json
- Worked examples: one paid call per route, from the request and the 402 offer to the signed receipt, with prices from pricing.json
- Example recipes: LangChain, LlamaIndex, OpenAI Agents SDK and Claude Agent SDK agents that call these routes on the trial or with x402
- CrewAI recipe: a Python CrewAI agent that checks several quotes on one page
- Pydantic AI recipe: a Python Pydantic AI agent that checks several quotes on one page
- Mastra recipe: a JavaScript Mastra agent that checks several quotes on one page
- Vercel AI SDK recipe: a JavaScript agent that checks its sources before it cites them (in the examples index)
- More examples: runnable recipes, including one x402 payment step by step with plain
fetch - Limits: caps, timeouts and rate limits
- Errors: error codes and charging
- Status: current state and uptime (JSON)
Answers
- How to verify a quote an LLM cites
- How to check a quote an LLM cites, step by step with curl: the free sample, the 402 offer, one check, the receipt, and the same call over MCP
- How to check every quote in a draft before publishing, step by step with curl: the free preview, the 402 offer, one part, the summary and each result, and the receipt
- How to check the quotes in a draft one source at a time before publishing, step by step with curl: the recipe for grouping quotes by URL, the price from the 402 offer, one quote or one page of up to 20 quotes with x402, how to read the verdict and page kind, and how to keep the receipt.
- How to check every quote in a Markdown document from a CI job before merge, step by step with curl: the free preview, the 402 offer, one part per paid call, which misses fail a build, a shell script for the CI step, and the same call over MCP
- How to get a signed receipt of a web page
- How to get a signed receipt of a web page, step by step with curl: the free sample, the 402 offer, one receipt, its signature and text hash, and the same call over MCP
- How to check links before citing them
- How to check links before citing them, step by step with curl: the free sample, the 402 offer, one batch of links, the receipt, and the same call over MCP
- How to check packages before installing them, step by step with curl: the free sample, the 402 offer, one batch of names, how to read exists and advisories, the receipt, and the same call over MCP
- How to check a package's licence before installing it, step by step with curl: the free sample, the 402 offer, what the license field holds, an allow-list rule, how to treat a null licence, and the same call over MCP
- How to check whether a web page has changed since you read it, step by step with curl: the free sample, the 402 offer, one recheck, how to read the answer, chaining receipts, and the same call over MCP
- How to check a signed receipt before you rely on it, step by step with curl: free; a sample receipt, the check, an altered receipt, the payload, and the same call over MCP
- How to check the citations at the end of an answer before you send it, step by step with curl: the free sample, the 402 offer, one batch of up to 10 quote and URL pairs, how to read the answer, and the same call over MCP
- How to check many quotes against one page in a single call, step by step with curl: the free sample, the 402 offer, up to 20 quotes on one URL at one price, how to read the answer, and the same call over MCP
- How to turn a web page into clean text for an agent, step by step with curl: the free sample, the 402 offer, one page as clean text, how to read content_kind and injection flags, the receipt, and the same call over MCP
- How to fetch a web page as clean text from code, with an x402 client: the free sample, the 402 offer, a Node script that checks and pays one page with x402, how to read the answer, the receipt, and the same call over MCP
- How to get a signed timestamp that shows a file did not change, step by step with curl: the free sample, the 402 offer, one attestation of a SHA-256, how to read the answer, a retry, checking the file later, and the same call over MCP
- How to use AttestPage tools from an MCP client, step by step with curl: the tool names and prices, the remote endpoint, listing the tools, the 402 offer for a tool call, and paying with x402
- How to check a quote against text you already hold, step by step with curl: the free sample, the 402 offer, one check of a quote against text you send with no fetch, how to read exact, fuzzy and none, declared offsets, how to check the receipt, and the same call as an MCP tool
- How to check a package name an LLM suggested before installing it
- How to tell a bot wall from the real page when an agent fetches a URL