{"uid":"cap_DYKouZ3dnYS7IkcW0Nqdr","slug":"watch-diff-snapshot-1eb48951","name":"Watch & Diff Snapshot","description":"Did this URL change since my last check? Fetch, normalize, hash and diff any page, region or JSON for AI agents running recurring tasks. State per paying wallet, 90 days. Pay per call over x402, no API key.","url":"https://watch-diff.agent-utils.workers.dev/v1/snapshot","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 to fetch (max 2 MB body)"},"mode":{"enum":["text","html","json"],"type":"string","default":"text","description":"text = readable text (default); html = normalized markup; json = canonicalized JSON body"},"maxChars":{"type":"integer","default":20000,"maximum":100000,"minimum":200,"description":"Cap on returned content length"},"selector":{"type":"string","description":"Optional CSS selector; only text inside matching elements is compared (e.g. '#price', 'main', 'table.results')"}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","properties":{"url":{"type":"string"},"etag":{"type":["string","null"]},"mode":{"enum":["text","html","json"],"type":"string","default":"text","description":"text = readable text (default); html = normalized markup; json = canonicalized JSON body"},"bytes":{"type":"integer"},"chars":{"type":"integer"},"status":{"type":"integer"},"content":{"type":"string"},"finalUrl":{"type":"string"},"fetchedAt":{"type":"string"},"truncated":{"type":"boolean"},"responseMs":{"type":"integer"},"contentHash":{"type":"string"},"contentType":{"type":"string"},"lastModified":{"type":["string","null"]}}}}}}},"responseSchema":{"type":"json","example":{"url":"https://example.com/","etag":null,"mode":"text","bytes":1256,"chars":180,"status":200,"content":"Example Domain\nThis domain is for use in illustrative examples in documents.","finalUrl":"https://example.com/","fetchedAt":"2026-09-06T21:10:00.000Z","truncated":false,"responseMs":120,"contentHash":"7f3b…","contentType":"text/html; charset=UTF-8","lastModified":null}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.005","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.005/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.005","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_QbrusU4-fBSXPe_Mxrgt8","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.005","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches, normalizes, hashes, and returns the content of any URL so an agent can detect changes between calls using the returned content hash.","exampleAgentPrompt":"Check whether https://example.com/pricing has changed since the last time you looked — fetch it in text mode and give me the content hash and the actual text so I can compare.","exampleUseCases":[{"title":"E-commerce price change detection","prompt":"Keep an eye on https://store.example.com/product/widget — fetch the text inside the '#price' selector and tell me if the content hash has changed from last time you checked."},{"title":"Competitor landing page monitoring","prompt":"Fetch https://competitor.com in text mode and return the content hash — I want to know if anything has changed on their homepage since my agent last ran."},{"title":"Government regulation document tracking","prompt":"Snapshot https://regulations.gov/document/EPA-2024-001 in html mode and give me the hash and content so I can diff it against what my agent captured last week."}],"resultDescription":"A JSON object containing the fetched page content (up to maxChars characters), the SHA-based content hash of the normalized body, HTTP status code, final URL after redirects, ETag and Last-Modified headers if present, fetch timestamp, response time in milliseconds, content type, byte and character counts, and a truncated flag. The content hash is the primary signal for change detection across calls.","failureModes":["Target URL returns a non-2xx status (e.g. 404 or 500) — status field reflects this but content may be empty or an error page","URL exceeds the 2 MB body limit — response may be truncated or rejected","CSS selector matches no elements — content field will be empty","Payment not attached or insufficient — x402 payment required error returned","Target site blocks the fetcher (bot detection, Cloudflare challenge) — fetch may fail or return challenge page content instead of real content","URL is not reachable or DNS fails — fetch error returned"],"whenToPreferThis":"Use this endpoint when an AI agent needs to periodically check a specific URL for content changes without maintaining its own fetch and hashing infrastructure. It is ideal for recurring scheduled tasks where state (previous hash) is maintained per paying wallet for 90 days. Prefer this over generic HTTP fetch tools when you need normalized, mode-aware content (text/html/json) and a stable content hash for diffing. The CSS selector feature makes it superior for monitoring specific regions of a page rather than the whole document.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-14T12:34:05.713Z","isFirstParty":false}