{"uid":"cap_fPo8Ka_h7s8zmSYT042RJ","slug":"x-402-web-page-change-detector-93b80ad8","name":"x-402 Web Page Change Detector","description":"Tell whether a page changed since the last time you read it. Has a page changed since you last read it? Send a URL and the content_sha256 you kept from a previous call; get back changed: true or false, the current checksum and the current length. Without a checksum, returns the starting point. Main content only, navigat…","url":"https://api.x-402.online/v1/web/changed?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","bodyType","body"],"properties":{"body":{"properties":{}},"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}}},"responseSchema":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_Xh8KR94_py-imi1teNnfp","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":"Checks whether a web page's main content has changed since a previous fetch, using a SHA-256 checksum comparison.","exampleAgentPrompt":"Check if the main content on https://example.com/blog/post-42 has changed since I last read it — my stored checksum from the previous fetch was a3f9c1d2e8b47560.","exampleUseCases":[{"title":"News article update tracker","prompt":"Has the article at https://bbc.com/news/article-12345 changed since I last fetched it? My saved checksum is d4e9a2b7c1f08345."},{"title":"Competitor pricing page monitor","prompt":"Check if the pricing page at https://competitor.com/pricing still matches the checksum I recorded last week: 9b3c7f1a2e456d80. I want to know immediately if they've updated their prices."},{"title":"Establish baseline for new page","prompt":"I want to start monitoring https://myregulator.gov/updates/policy — can you fetch it now and get me the current checksum and length so I can track changes going forward?"}],"resultDescription":"Returns a JSON object with: a `changed` boolean (true if the page content differs from the supplied checksum, false if identical), the `current content_sha256` checksum of the page's main content as fetched now, and the `current length` in bytes. If no prior checksum is supplied, returns the initial baseline checksum and length without a change comparison.","failureModes":["URL is unreachable or returns a non-200 status — endpoint may error or return an indeterminate result","Page blocks bots or requires authentication — main content cannot be fetched","Supplied checksum format is invalid — comparison may fail or be skipped","Rate limiting or payment failure for the $0.005 USDC per-call fee — request rejected","Dynamic pages with ads or timestamps may falsely report changed=true due to non-content elements"],"whenToPreferThis":"Choose this endpoint when you need lightweight, low-cost change detection ($0.005/call) on a specific URL without maintaining your own scraping infrastructure. It is ideal for polling loops where you already have a stored checksum from a prior call and want a simple true/false answer. Prefer this over full-scrape endpoints when you don't need the page content itself — only whether it changed. It strips navigation and boilerplate to focus on main content, reducing false positives from peripheral page updates.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-02T18:36:23.182Z","isFirstParty":false,"canonicalSlug":"x-402-web-page-change-detector-93b80ad8"}