# Web Page Change Monitor

> Web Page Change Monitor is a paid API for AI agents from agentsvc.io, paid per call via x402, $0.003/call, status unknown (last checked 2026-10-10).

Polls a web page and returns only lines added or removed since the previous call, using a cursor to ensure no changes slip between polls.

## Facts

- Endpoint: POST https://agentsvc.io/api/v1/proxy/page-watch?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/web-page-change-monitor-af67c16f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_jGf3dGUfMla7taCwyN05G

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 web-page-change-monitor-af67c16f -d '<json body>'
```

Example prompt: Keep an eye on https://status.openai.com for me — pass the cursor you get back each time, and alert me with keyword 'incident' if that word appears in any newly added text.

## When to prefer this

Choose this endpoint when you need incremental change detection on a specific web page in a polling loop — the cursor mechanism guarantees no changes are missed between calls. It is better than a full-page scraper when you only care about what changed, not the full content. Prefer it over generic scraping endpoints for price pages, changelogs, job boards, status pages, or competitor sites where you need keyword alerting on newly appeared text.

## Known failure modes

- Invalid or unreachable URL returns an HTTP error status
- Expired or malformed cursor may cause baseline reset
- Pages with heavy bot-blocking may return incomplete or empty content
- JavaScript-heavy pages not detected without render:true may return partial content
- Truncated diffs when page changes exceed maximum diff size (truncated:true flag set)
- Rate limiting or payment failure returns 402 or 429 error

## How this service works

86 APIs for AI agents: web scraping and crawling to Markdown, AI summaries, data extraction and cited answers, screenshots and PDF, PDF, OCR and document conversion, news, paper and developer search and more, paid per call with USDC on Base, Solana, Polygon or Arbitrum via x402. No account, no API key, free sample on every service.

## Output

Returns a JSON object with the diff (added and removed lines since last call), a human-readable summary, a new cursor to pass on the next call, keyword match results, page metadata (title, word count, line count, HTTP status, content hash), and a boolean indicating whether anything changed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "url": {
   "type": "string",
   "description": "Page to watch (http or https)"
  },
  "cursor": {
   "type": "string",
   "description": "Cursor from your previous call; omit on the first call"
  },
  "ignore": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 20,
   "description": "Ignore lines containing any of these substrings"
  },
  "render": {
   "type": "boolean",
   "default": false,
   "description": "Render JavaScript before reading"
  },
  "keywords": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "maxItems": 10,
   "description": "Alert when one of these appears in newly added text (case-insensitive)"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "url": "https://www.python.org/downloads/",
   "diff": {
    "added": [
     "![Python release cycle](https://devguide.python.org/_static/release-cycle.svg)"
    ],
    "removed": [],
    "truncated": false,
    "added_count": 1,
    "removed_count": 0
   },
   "since": "2026-10-09T06:57:46.355Z",
   "title": "Download Python | Python.org",
   "cursor": "OiXuu1BiPRMC2YpW",
   "changed": true,
   "summary": "1 line(s) added, 0 removed since 2026-10-09T06:57:46.355Z. First new line: \"![Python release cycle](https://devguide.python.org/_static/release-cycle.svg)\"",
   "keywords": [
    {
     "keyword": "3.15",
     "present": true,
     "newly_appeared": false
    }
   ],
   "checked_at": "2026-10-09T06:57:46.512Z",
   "line_count": 346,
   "word_count": 3196,
   "cursor_help": "Pass this cursor on your next call. It only advances when a change is reported.",
   "first_check": false,
   "http_status": 200,
   "content_hash": "8eb1656e342b8803149a57e36e6885a9",
   "keyword_alert": false
  },
  "success": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/web-page-change-monitor-af67c16f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agentsvc.io](https://www.zero.xyz/host/agentsvc.io/llms.txt)
