# NetIntel Web Page Change Monitor

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

Fetches a URL and detects changes since the last check, returning added/removed lines, percent changed, and new content only when something changed.

## Facts

- Endpoint: GET https://netintel.dev/web/monitor?utm_source=zero.xyz
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/netintel-web-page-change-monitor-9a70bca6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ORv5ur0jB9iuPd-MhwTCN

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 netintel-web-page-change-monitor-9a70bca6
```

Example prompt: Keep an eye on https://example.com/pricing for me — use watch_id 'pricing-watch' and let me know if anything changes, what lines were added or removed, and by what percentage.

## When to prefer this

Choose this endpoint when you need lightweight, pay-per-call web page change detection without managing infrastructure or storing baselines yourself. It is ideal for agent cron workflows that periodically poll a URL and only need to act when content changes. It natively handles HTML (readable text), JSON (canonical keys), and plain text, and uses conditional GET to minimize bandwidth. It requires no API key, making it easy to invoke ad hoc. Prefer it over full scraping pipelines when you only need to know what changed, not the full content every time.

## Known failure modes

- URL is unreachable or returns non-200 — endpoint may return an error or baseline may not be stored
- watch_id not provided — watches may conflict if multiple pages are monitored by the same wallet
- Page blocks automated fetching (robot restrictions, Cloudflare) — content may be empty or incomplete
- First call always returns changed: null — agents must handle baseline case explicitly
- Truncated diffs for very large pages — 'truncated: true' in the diff object
- Invalid or malformed URL — query will fail with an error response

## How this service works

Monitor a web page for changes — fetch a URL, compare it with your previous check and return changed true/false, the added and removed lines, the percent changed and the new content only when it changed. First call stores the baseline; repeat with the same watch_id from your cron. Works on HTML (readable text), JSON (canonical keys) and plain text; conditional GET; no API key.

## Output

Returns a JSON object with: 'changed' (boolean, null on first/baseline call), 'diff' (object with 'added' and 'removed' line arrays, 'added_count', 'removed_count', 'truncated' flag), 'change_pct' (numeric percentage of content changed), and 'summary' (human-readable change description). On the first call a baseline is stored and 'changed' is null. On subsequent calls with the same watch_id, the result reflects differences from the stored baseline.

## Request schema (JSON Schema)

```json
{
 "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": "Absolute http(s) URL to monitor. Aliases: target, page, link"
      },
      "watch_id": {
       "type": "string",
       "description": "Your job id (1-64 chars A-Za-z0-9_.:-); keeps watches apart when one wallet serves many agents"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "diff": {
       "type": [
        "object",
        "null"
       ],
       "description": "added/removed lines with counts"
      },
      "changed": {
       "type": [
        "boolean",
        "null"
       ],
       "description": "null on the baseline call"
      },
      "summary": {
       "type": "string"
      },
      "change_pct": {
       "type": [
        "number",
        "null"
       ]
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "diff": {
   "added": [
    "Natural gas prices rose 4%"
   ],
   "removed": [
    "Natural gas prices fell 2%"
   ],
   "truncated": false,
   "added_count": 1,
   "removed_count": 1
  },
  "changed": true,
  "summary": "changed: +1 / −1 lines (6.1%)",
  "change_pct": 6.1
 }
}
```

## More

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