# AttestPage: Verify Quotes and Citations on Live Web Pages

> AttestPage: Verify Quotes and Citations on Live Web Pages is a paid API for AI agents from vehcdj664efetfrsolne5umanq.srv.us, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-17).

Fetches a live web page and returns signed evidence about whether specified quotes or claims actually appear on that page, with match scoring and context snippets.

## Facts

- Endpoint: POST https://vehcdj664efetfrsolne5umanq.srv.us/v1/verify/quotes?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-17
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/attestpage-verify-quotes-and-citations-on-live-web-pages-52246b69
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_mwnmtpE655-vkevwApTw8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability attestpage-verify-quotes-and-citations-on-live-web-pages-52246b69 -d '<json body>'
```

Example prompt: Can you check whether the quote 'These domains may be used as illustrative examples in documents without prior coordination' actually appears on https://example.com? Use fuzzy matching with a 0.9 threshold.

## When to prefer this

Choose this endpoint when you need cryptographically signed, auditable evidence that a specific quote or claim appears (or does not appear) on a live web page — especially for AI output citation checking, fact-checking workflows, or compliance auditing where a simple scrape is insufficient. Prefer it over generic web scraping when you need structured per-quote verdicts, similarity scores, and a signed receipt. Use passages mode when verifying paraphrased claims rather than verbatim quotes.

## Known failure modes

- Page returns non-200 HTTP status (e.g. 404, 403, 500) — reported in page.http_status
- Page is behind a paywall or requires authentication — content may be incomplete or unavailable
- URL exceeds 2,048 characters — request rejected
- More than 20 quotes submitted — request rejected
- Quote exceeds 1,000 characters after normalization — item rejected
- Threshold below 0.5 — request rejected
- case_sensitive set to true with passages mode — request rejected
- Page content is not real (e.g. bot-detection page, empty response) — content_kind flags this

## How this service works

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…

## Output

Returns a JSON object containing per-quote results (match type, similarity score, start/end character positions, context snippet, occurrence count, normalized SHA-256 of the matched text), a summary of exact/fuzzy/no-match counts, the page's HTTP status and content kind, and a cryptographically signed receipt for auditability.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "http(s) URL of the page to check (max 2,048 characters). Fetched once for all the quotes."
  },
  "match": {
   "enum": [
    "exact",
    "fuzzy",
    "passages"
   ],
   "type": "string",
   "description": "For every quote: exact; fuzzy (default), which also accepts small differences; or passages, for a paraphrased claim: the 3 passages that share most of its words, scored, as evidence for you to judge (not a verdict)."
  },
  "quotes": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 20,
   "minItems": 1,
   "description": "1 to 20 quotes to look for on that page, or with match \"passages\" claims to find support for (each max 1,000 characters after normalisation). One price for the call however many."
  },
  "threshold": {
   "type": "number",
   "maximum": 1,
   "minimum": 0.5,
   "description": "Fuzzy similarity needed, default 0.9."
  },
  "case_sensitive": {
   "type": "boolean",
   "description": "Default false; must be false with match \"passages\"."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "page": {
   "http_status": 200,
   "content_kind": "real"
  },
  "tier": "paid",
  "receipt": "eyJ…",
  "results": [
   {
    "end": 234,
    "match": "exact",
    "score": 1,
    "start": 171,
    "context": "...maintained for documentation purposes. These domains may be used as illustrative examples in documents without prior coordination with us...",
    "occurrences": 1,
    "normalised_sha256": "…"
   },
   {
    "end": 269,
    "match": "exact",
    "score": 1,
    "start": 235,
    "context": "...illustrative examples in documents without prior coordination with us. They are not available for registration...",
    "occurrences": 1,
    "normalised_sha256": "…"
   }
  ],
  "summary": {
   "none": 0,
   "exact": 2,
   "fuzzy": 0,
   "failed": 0
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/attestpage-verify-quotes-and-citations-on-live-web-pages-52246b69/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from vehcdj664efetfrsolne5umanq.srv.us](https://www.zero.xyz/host/vehcdj664efetfrsolne5umanq.srv.us/llms.txt)
