# AttestPage: Verify Text Quote in Supplied Content

> AttestPage: Verify Text Quote in Supplied Content is a paid API for AI agents from vehcdj664efetfrsolne5umanq.srv.us, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-17).

Checks whether a specific quote or claim appears in a supplied text body, returning a signed verification result with match score, offsets, and a cryptographic receipt

## Facts

- Endpoint: POST https://vehcdj664efetfrsolne5umanq.srv.us/v1/verify/text-quote?utm_source=zero.xyz
- Price: $0.005/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-text-quote-in-supplied-content-551bcd77
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_uhsq2XcANFI1W-rYlAam6

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-text-quote-in-supplied-content-551bcd77 -d '<json body>'
```

Example prompt: Check whether the quote 'Refunds are paid within 14 days of purchase' appears in the following policy text I already have — use fuzzy matching with a threshold of 0.9 and give me the signed receipt: [paste text here]

## When to prefer this

Choose this endpoint when you already hold the source text locally and need to verify whether a specific quote or claim is present in it, without fetching any URL. It is ideal for batch citation checking of AI outputs against known documents, for getting cryptographic signed receipts as audit evidence, and for finding fuzzy or paraphrased matches with scored passage evidence. Prefer sibling endpoints if you need to fetch and verify against a live web page URL rather than supplied text.

## Known failure modes

- Text exceeds 50,000 characters — request rejected
- Quote exceeds 1,000 characters after normalization — request rejected
- start/end offsets provided together with match type 'passages' — invalid combination
- threshold below 0.5 — rejected as out of range
- No match found — result returns no offsets, score near 0
- Payment not received — 402 response requiring x402 payment
- Network timeout on the verification service
- case_sensitive set to true with match 'passages' — invalid combination

## 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 with: a match result (start/end offsets in normalized text, match type, similarity score, occurrence count), a source descriptor with SHA-256 hash and character count, a human-readable advice string, a signed receipt (JWT) for cryptographic proof, and an injection_flags array flagging any suspicious content in the input. Tier indicates whether the paid path was used.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "end": {
   "type": "integer",
   "minimum": 1,
   "description": "Optional, with start: the declared end offset, raw code points, exclusive. Give both or neither; not with match \"passages\"."
  },
  "text": {
   "type": "string",
   "description": "The source text you already hold, as sent (max 50,000 characters; no fetch, no normalising before hashing). Offsets count characters (code points)."
  },
  "match": {
   "enum": [
    "exact",
    "fuzzy",
    "passages"
   ],
   "type": "string",
   "description": "exact; fuzzy (default), which also accepts small differences; or passages, for a paraphrased claim: the 3 passages of the text that share most of its words, scored, as evidence for you to judge (not a verdict). Not with start and end."
  },
  "quote": {
   "type": "string",
   "description": "Text to look for in the source, or with match \"passages\" the claim to find support for (max 1,000 characters after normalisation)."
  },
  "start": {
   "type": "integer",
   "minimum": 0,
   "description": "Optional, with end: the declared start offset of the quote in text, raw code points, 0-based. Only that slice is matched (max 1,000 code points), so the answer is whether the text at these offsets says the quote. Declared offsets are raw; result offsets are into the normalised text. If the slice misses but the quote is elsewhere in the text, result.located gives its position in the whole text."
  },
  "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": {
  "tier": "paid",
  "advice": "The supplied text contains a close match to this quote, with small differences. This says nothing about where the text came from.",
  "result": {
   "end": 34,
   "match": "fuzzy",
   "score": 0.972,
   "start": 0,
   "source": {
    "kind": "supplied",
    "code_points": 79,
    "text_sha256": "…"
   },
   "context": "Refunds are paid within 14 days of purchase",
   "occurrences": 1,
   "normalised_sha256": "…"
  },
  "receipt": "eyJ…",
  "injection_flags": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/attestpage-verify-text-quote-in-supplied-content-551bcd77/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)
