{"uid":"cap_zI0UofdTObTliHwa5GYvc","slug":"url-change-watch-sha-256-body-diff-checker-ee1b58c3","name":"URL Change Watch — SHA-256 Body Diff Checker","description":"Fetch a public https URL, compute SHA-256 of the response body, and report whether it changed vs a prior sha256/etag ($0.01 USDC via x402). Sticky: store sha256 and call again later. Optional previous_sha256, previous_etag, include_body_if_changed. https only — http, file, data, localhost, and private IPs rejected. Caps: 1 MB body, ~10s timeout, max 5 redirects. Returns JSON { url, final_url, content_type, byte_length, sha256, etag?, last_modified?, changed, warnings, body_preview? }. Provided as is, with no warranty or guarantee of accuracy or fitness. Nothing is stored.","url":"https://well-009-url-change-watch.mmelnyk2000.workers.dev/api/url-change-check?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"https URL to watch. http/file/data/localhost/private IPs rejected."},"previous_etag":{"type":"string","description":"Prior ETag; used when previous_sha256 is absent and response has ETag (quotes normalized)."},"previous_sha256":{"type":"string","description":"Hex SHA-256 of last seen body. If omitted (and no previous_etag match), this call is a baseline (changed=null)."},"include_body_if_changed":{"type":"boolean","description":"If true and changed (or baseline), include truncated body text (~8KB) as body_preview. Default false."}}},"responseSchema":{"type":"object","additionalProperties":true},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","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.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_iLayf_O2Gk-YT_jSKRJgj","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Fetches a public HTTPS URL, computes the SHA-256 hash of the response body, and reports whether the content has changed compared to a previously recorded hash or ETag.","exampleAgentPrompt":"Check if the page at https://example.com/announcements has changed since its SHA-256 was abc123def456... — and if it has changed, include a preview of the new content.","exampleUseCases":[{"title":"Monitor news page for updates","prompt":"Keep an eye on https://example.com/press-releases for me — here's the SHA-256 from last time: d4e5f6a1b2c3... — has anything changed? If so, show me a preview of what's new."},{"title":"Baseline a public API response","prompt":"Fetch https://api.example.com/status and record its current SHA-256 so I can check back later to see if the response body has changed."},{"title":"Verify regulatory document hasn't changed","prompt":"Can you confirm that the document at https://regulator.example.gov/rules.pdf still matches the SHA-256 hash I have: 9f8e7d6c5b4a3...? I need to know if it's been quietly updated."}],"resultDescription":"Returns a JSON object containing the final URL after redirects, content type, byte length, computed SHA-256 hash, optional ETag, optional Last-Modified header, a boolean 'changed' field (null if this is a baseline call with no prior hash), an array of warnings, and an optional truncated body preview (~8KB) if include_body_if_changed was true and the content changed.","failureModes":["Non-HTTPS URLs (http, file, data, localhost, private IPs) are rejected with an error","Response body exceeds 1 MB cap — request is rejected","Target URL times out after ~10 seconds","More than 5 redirects encountered — request fails","Target server returns non-200 status — reported in warnings","SHA-256 mismatch between previous_sha256 and computed hash correctly reports changed=true but does not imply server error"],"whenToPreferThis":"Choose this endpoint when you need a lightweight, stateless way to detect whether a specific public HTTPS URL's content has changed between two points in time, using SHA-256 hashing as the comparison mechanism. It is ideal when you already have a prior SHA-256 or ETag, or want to establish a baseline for future comparison. It is not suited for authenticated pages, non-HTTPS resources, large files over 1 MB, or cases where you need persistent storage of results across calls — the service is stateless and stores nothing.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-20T12:32:33.869Z","isFirstParty":false,"canonicalSlug":"url-change-watch-sha-256-body-diff-checker-ee1b58c3"}