# AttestPage Text-Quote Verifier

> AttestPage Text-Quote Verifier is a paid API for AI agents from s2h6qt73jtzlgbgnnfacln2poq.srv.us, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-27).

Checks whether a given quote appears in a supplied source text, returning an exact, fuzzy, or passage-match verdict with character offsets.

## Facts

- Endpoint: POST https://s2h6qt73jtzlgbgnnfacln2poq.srv.us/v1/verify/text-quote?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-27
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/attestpage-text-quote-verifier-bdbb7b6d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_3Jy9r1P6NtjBbjEK_6h06

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-text-quote-verifier-bdbb7b6d -d '<json body>'
```

Example prompt: Check whether this quote — 'Climate change poses an existential risk to coastal cities by 2100' — appears in the article text I'm pasting, using fuzzy matching with a 0.85 threshold so small differences are still caught.

## When to prefer this

Choose this endpoint when you already hold the source text locally and need to verify a quote against it without fetching any URL. It is cheaper ($0.005) than the live-page or batch-URL variants and avoids any fetch latency. Prefer it for document pipelines, offline corpora, or when privacy requires not sending URLs to external services. Use the fuzzy mode to catch minor transcription errors, and passages mode when validating paraphrased claims rather than direct quotations.

## Known failure modes

- Source text exceeds 50,000 characters — request rejected
- Quote exceeds 1,000 characters after normalisation — request rejected
- Both start/end offsets provided alongside match mode 'passages' — invalid parameter combination
- Threshold below 0.5 or above 1.0 — validation error
- case_sensitive set to true with match 'passages' — rejected
- Payment not attached or insufficient — 402 Payment Required
- No match found — verdict returned as 'none' with no offsets

## How this service works

Checks a quote word for word against text you hold: exact, fuzzy or none, offsets. US$0.005 per call; POST text, quote.

## Output

Returns a verdict indicating whether the match is exact, fuzzy, or none, along with character offsets into the normalised text where the quote was found. In passages mode, returns the three text passages most relevant to the claim, each with a similarity score, for the caller to evaluate as supporting evidence.

## 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\"."
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/attestpage-text-quote-verifier-bdbb7b6d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from s2h6qt73jtzlgbgnnfacln2poq.srv.us](https://www.zero.xyz/host/s2h6qt73jtzlgbgnnfacln2poq.srv.us/llms.txt)
