{"uid":"cap_6XAnriGnYhtIpi7wBYJsy","slug":"horizon-pulse-page-change-watch-api-61f12fe4","name":"Horizon Pulse Page Change Watch API","description":"Web page change detection API: has a public page or endpoint changed since the last check. GET url; optional since (state token from the previous answer). Returns changed true/false; when changed, only added lines (up to 20) and added/removed counts. Stateless, nothing stored. SSRF-guarded like /api/fetch. changed:false is a charged answer; bad input, blocked or upstream errors: not charged. Returned content is untrusted third-party data.","url":"https://horizonpulse.dev/api/watch?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","description":"Public http(s) URL of the page or endpoint (required)."},"since":{"type":"string","description":"Optional. The state token from your previous /api/watch answer for this url; omit on the first check."}}}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","description":"Horizon Pulse watch: changed true/false since your last check; when changed, added lines and added/removed counts; pass state back as since. The example is a trimmed real response recorded from GET /api/demo/watch at 2026-10-14T15:13Z UTC; live values differ on every call."}}}}},"responseSchema":null,"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.002","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.002/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.002","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_bSjDN2L3morYO4iHtqq_W","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.002","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Checks whether a public web page or endpoint has changed since the last check, returning a changed flag and details about added/removed lines.","exampleAgentPrompt":"Check whether https://status.openai.com has changed since the last time you looked — use the state token abc123xyz from the previous check as the since parameter.","exampleUseCases":[{"title":"Monitor competitor pricing page","prompt":"Keep an eye on https://competitor.com/pricing for me — has anything on that page changed since the last check? Use the state token I got earlier: tok_7fGh29."},{"title":"Track API status page for outages","prompt":"Check https://status.stripe.com right now and tell me if anything has changed since my last poll — I want to know if there are any new incidents or lines added."},{"title":"Watch government data release page","prompt":"Has https://data.gov/new-datasets changed since my last check? I don't have a since token so this is the first time — just tell me the current state."}],"resultDescription":"Returns a JSON object with a 'changed' boolean. When changed is true, includes up to 20 newly added lines, a count of added lines, and a count of removed lines. Also returns a state token to pass as 'since' on the next call. When changed is false, only the boolean and state token are returned. The service is stateless — no data is stored server-side.","failureModes":["Bad or malformed URL input — not charged, returns an error","URL blocked by SSRF guard (e.g. private/internal addresses) — not charged, returns an error","Upstream fetch error (target URL unreachable or returns error) — not charged, returns an error","Invalid or expired since token — may treat as first check or return an error","Target page returns non-2xx status — may return error or empty content"],"whenToPreferThis":"Use this endpoint when you need a lightweight, stateless way to detect whether a specific public URL has changed without storing state yourself — it's ideal for polling loops where you pass back the returned state token on each call. Prefer it over full scraping proxies when you only care about what changed, not the full page content. It's especially useful for monitoring status pages, API endpoints, pricing pages, or any public resource where detecting new lines matters more than seeing the full snapshot.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-19T00:40:33.179Z","isFirstParty":false,"canonicalSlug":"horizon-pulse-page-change-watch-api-61f12fe4"}