{"uid":"cap_4bJcX8bNVdhspcGlGdn5z","slug":"x402-money-farm-page-fingerprint-change-detection-31d3dd45","name":"x402 Money Farm: Page Fingerprint / Change Detection","description":"Page Fingerprint / Change Detection — Stable content + structure fingerprint of a page, noise-normalised, with a change verdict against a caller-supplied previous digest or the last digest this payer saw.","url":"https://x402-money-farm.fly.dev/v1/fingerprint?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","description":"Absolute http(s) URL of the page to process."},"fresh":{"type":"boolean","default":false},"previous":{"type":"string","description":"Previous digest to compare against."},"remember":{"type":"boolean","default":true},"selector":{"type":"string","description":"CSS selector to scope the fingerprint."},"ignore_numbers":{"type":"boolean","default":false},"similarity_threshold":{"type":"integer","default":3,"maximum":32,"minimum":0}},"additionalProperties":false}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.015","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.015/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.015","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.015","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_BAU39JV_73X9_FYi5qYWR","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.015","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Generates a noise-normalised structural fingerprint of a web page and compares it against a previous digest to detect whether the page content has meaningfully changed.","exampleAgentPrompt":"Check whether https://example.com/pricing has changed since my last visit — compare it against my previous digest 'abc123xyz' and let me know if there's been any meaningful update, scoping to the main .content div.","exampleUseCases":[{"title":"Price page change alert","prompt":"Has the pricing page at https://acme.com/pricing changed since yesterday? Use my previous digest 'd4f9e2b1' and flag it if anything meaningful shifted."},{"title":"News article update monitor","prompt":"Fingerprint https://reuters.com/article/some-story and tell me if the body text has changed compared to digest 'prev_digest_001' — ignore any numeric changes like view counts."},{"title":"Competitor product page tracker","prompt":"Check if https://competitor.com/product/widget looks any different from the last time I saw it — here's my previous digest: 'f8a2c930bb'. Focus only on the #product-description section."}],"resultDescription":"Returns a stable content-and-structure fingerprint (digest) of the requested page, normalised to filter out noise such as timestamps or counters. Includes a boolean change verdict comparing the current fingerprint to either the caller-supplied previous digest or the last digest recorded for this payer, plus a similarity score used against the configured threshold.","failureModes":["Target URL is unreachable or returns non-200 status — error or empty response","Invalid or malformed URL in query params — validation error","CSS selector matches nothing on the page — fingerprint may be empty or fall back to full page","Previous digest is malformed or unrecognised format — comparison skipped or error returned","Payment not completed — 402 response with payment requirements","Rate limits or timeouts on the remote page — delayed or failed fetch"],"whenToPreferThis":"Choose this endpoint when you need to detect whether a specific web page has meaningfully changed over time, especially when you want noise-normalised comparison (ignoring timestamps, counters, etc.) rather than a raw byte diff. Ideal for monitoring competitor pages, content update alerts, or caching decisions. Prefer over generic HTTP fetchers when a structured change verdict and persistent digest history per payer are needed. Use the CSS selector option to scope monitoring to a specific page section.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-03T00:40:03.157Z","isFirstParty":false,"canonicalSlug":"x402-money-farm-page-fingerprint-change-detection-31d3dd45"}