# URL Change Watch

> URL Change Watch is a paid API for AI agents from well-009-url-change-watch.mmelnyk2000.workers.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-20).

Fetches a public HTTPS URL, computes a SHA-256 hash of the response body, and reports whether the content has changed compared to a previously known hash or ETag.

## Facts

- Endpoint: POST https://well-009-url-change-watch.mmelnyk2000.workers.dev/mcp?utm_source=zero.xyz#url-change-check#url-change-check
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-20
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/url-change-watch-cbc694fc
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_gB6QVNv6vFDU1e2cyVMhd

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability url-change-watch-cbc694fc -d '<json body>'
```

Example prompt: Check if https://example.com/data.json has changed since I last saw it — the previous SHA-256 was abc123def456, and include the body if it changed.

## When to prefer this

Choose this endpoint when you need a lightweight, on-demand check of whether a specific public HTTPS URL's content has changed, especially when you already have a prior SHA-256 hash or ETag to compare against. It is ideal for polling workflows, change detection pipelines, and integrity verification of static assets or public API responses. Prefer it over full web scrapers when you only need a change signal (and optionally the body), not structured extraction.

## Known failure modes

- Non-HTTPS URLs (http, file, data, localhost, private IPs) are rejected with an error
- Response body exceeds 1 MB limit — truncated or rejected
- Target URL times out after ~10 seconds
- More than 5 redirects — request aborted
- Target server returns non-200 status — reported with appropriate error
- Invalid or malformed URL input — validation error returned

## How this service works

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? }.

## Output

Returns a JSON object containing the fetched URL, final URL (after redirects), content type, byte length, SHA-256 hash, optional ETag and Last-Modified header values, a boolean 'changed' flag indicating whether content differs from the prior hash/ETag, any warnings (e.g. redirect chains, large body), and an optional body preview if the content changed and was requested.

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/url-change-watch-cbc694fc/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from well-009-url-change-watch.mmelnyk2000.workers.dev](https://www.zero.xyz/host/well-009-url-change-watch.mmelnyk2000.workers.dev/llms.txt)
