{"uid":"cap_HwDESbnA9OL61gMtOFzJS","slug":"attestpage-verify-quotes-and-citations-on-live-web-pages-4583ee57","name":"AttestPage: Verify Quotes and Citations on Live Web Pages","description":"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…","url":"https://vehcdj664efetfrsolne5umanq.srv.us/v1/verify/citations?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","properties":{"match":{"enum":["exact","fuzzy","passages"],"type":"string","description":"For every citation: 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)."},"citations":{"type":"array","items":{"type":"object","required":["url","quote"],"properties":{"url":{"type":"string","description":"http(s) URL of the cited page (max 2,048 characters)."},"quote":{"type":"string","description":"Text the answer says is on that page, or with match \"passages\" the claim it says the page supports (max 1,000 characters after normalisation)."}},"additionalProperties":false},"maxItems":10,"minItems":1,"description":"1 to 10 citations. Each URL is fetched once however many quotes cite it. Dead domains are reported as results; if none resolves, 422 and no charge."},"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\"."}}},"responseSchema":{"type":"json","example":{"tier":"paid","pages":[{"title":"Example Domains","final_url":"https://www.iana.org/help/example-domains","http_status":200,"content_kind":"real","requested_url":"https://www.iana.org/help/example-domains","content_sha256":"…","injection_flags":[],"normalised_sha256":"…"},{"title":"IANA-managed Reserved Domains","final_url":"https://www.iana.org/domains/reserved","http_status":200,"content_kind":"real","requested_url":"https://www.iana.org/domains/reserved","content_sha256":"…","injection_flags":[],"normalised_sha256":"…"}],"receipt":"eyJ…","results":[{"end":234,"url":"https://www.iana.org/help/example-domains","page":0,"match":"exact","score":1,"start":171,"context":"...These domains may be used as illustrative examples in documents without prior coordination with us...","final_url":"https://www.iana.org/help/example-domains","http_status":200,"occurrences":1,"content_kind":"real"},{"end":29,"url":"https://www.iana.org/domains/reserved","page":1,"match":"exact","score":1,"start":0,"context":"IANA-managed Reserved Domains...","final_url":"https://www.iana.org/domains/reserved","http_status":200,"occurrences":1,"content_kind":"real"}],"summary":{"none":0,"exact":2,"fuzzy":0,"failed":0}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.1","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.1/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.1","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_WUODQwnf4Z32SFICtmfMQ","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.1","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches live web pages and verifies whether quoted text or paraphrased claims actually appear on those pages, returning signed evidence with match scores and context.","exampleAgentPrompt":"Check all the citations in this answer I wrote — for each URL and quote pair, fetch the live page and tell me whether the quote actually appears there, using fuzzy matching with a 0.9 threshold, so I can confirm I haven't hallucinated any sources.","exampleUseCases":[{"title":"Audit AI-generated research citations","prompt":"I just got a research summary from an AI tool with 5 citations. Can you verify each one — fetch the pages and check whether the quoted sentences actually appear there using fuzzy matching? Here are the URL and quote pairs: [list]."},{"title":"Fact-check a news article's sources","prompt":"This news article quotes three different sources verbatim. Can you check each cited URL and confirm the exact quotes are really there on those live pages? Use exact match mode so I know precisely whether the wording is correct."},{"title":"Detect paraphrase support for a claim","prompt":"I want to know if this webpage actually supports the claim I'm making in my essay — the page doesn't quote it word-for-word but should paraphrase it. Can you check using passages mode and show me the three best matching sections from the page?"}],"resultDescription":"Returns a structured JSON object containing per-citation results (match type, similarity score, character start/end positions, context snippet, occurrence count, HTTP status, final URL after redirects), per-page metadata (title, SHA256 hash of content, injection flags, content kind), a summary count of exact/fuzzy/none/failed results, and a signed cryptographic receipt attesting to the findings.","failureModes":["422 error if all provided URLs resolve to dead domains (no charge issued)","A citation result with http_status non-200 if a specific URL is unreachable","Score below threshold returned as 'none' match if quote is not found","'failed' result if a page cannot be fetched (e.g. bot-blocking, timeout)","Injection flags set if page content appears manipulated","match='passages' incompatible with case_sensitive=true (validation error)","URLs longer than 2,048 characters rejected","More than 10 citations in a single request rejected","Payment failure if insufficient USDC balance via x402 protocol"],"whenToPreferThis":"Use this endpoint when you need cryptographically signed, machine-verifiable evidence that specific text appears on a live webpage — especially for auditing AI-generated citations, fact-checking articles, or building trust pipelines that require tamper-evident attestation. Prefer it over simple web scrapers when you need the signed receipt, injection-flag detection, or the passages mode for paraphrase-level evidence gathering across up to 10 URLs in a single call.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-17T12:40:24.877Z","isFirstParty":false,"canonicalSlug":"attestpage-verify-quotes-and-citations-on-live-web-pages-52246b69"}