# PageWatch Pro Monitor Creation

> PageWatch Pro Monitor Creation is a paid API for AI agents from pagewatch.zenith-ops.workers.dev, paid per call via x402, $0.25/call, status unknown (last checked 2026-11-02).

Creates a pro-tier web page monitor that extracts structured data (prices, tables, lists, events) from a public URL and delivers change notifications via webhook, RSS, or ICS on a schedule as frequent as every 15 minutes.

## Facts

- Endpoint: POST https://pagewatch.zenith-ops.workers.dev/v1/pro/monitors?utm_source=zero.xyz
- Price: $0.25/call
- Payment: x402
- Status: unknown
- Last checked: 2026-11-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/pagewatch-pro-monitor-creation-fb0c049f
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_7MhNJbAs5ui9Cpdak51s7

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 pagewatch-pro-monitor-creation-fb0c049f -d '<json body>'
```

Example prompt: Watch https://www.example.com/products/widget-pro for price changes every 15 minutes using price extraction mode, and send a signed webhook to https://myapp.example.com/hooks/pagewatch whenever the price changes.

## When to prefer this

Choose this endpoint when you need persistent, scheduled monitoring of a static public web page with structured data extraction (prices, tables, lists, events) and reliable delivery via webhook, RSS, or ICS. It is ideal for price tracking, content change alerts, and event calendar monitoring where the target page is rendered in plain HTML. Prefer this over one-shot scraping APIs when you need ongoing change detection rather than a single extraction, and over generic website change detectors when you need structured data types (price, table, list) rather than raw diff output.

## Known failure modes

- URL is not a public HTTP/HTTPS page (private, localhost, or behind auth) — monitor creation fails
- Page uses JavaScript rendering — static HTML only, dynamic content will not be extracted correctly
- Invalid CSS selector returns empty extraction results
- Webhook URL is not reachable or returns non-2xx — notifications silently fail
- Interval outside allowed range (15–10080 minutes for Pro) — validation error
- More than 5 webhook URLs provided — rejected by Pro plan limit
- JSONPath or regex pattern is malformed — extraction error
- Page behind a paywall or rate-limiting — content unavailable

## How this service works

Extract prices, lists, tables and events from public web pages and get notified when they change. RSS, ICS, signed webhooks, MCP. Static HTML only.

## Output

Returns a JSON object containing a unique monitor ID, plan type ('pro'), an RSS feed URL for change updates, an events JSON URL, an expiry timestamp, a one-time manage token for modifying or deleting the monitor, and the configured check interval in minutes.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "all": {
   "type": "boolean"
  },
  "url": {
   "type": "string",
   "example": "https://example.com/",
   "description": "Public http(s) page URL."
  },
  "attr": {
   "type": "string",
   "description": "Attribute name for mode=attr."
  },
  "mode": {
   "enum": [
    "text",
    "attr",
    "list",
    "table",
    "price",
    "events",
    "page",
    "links",
    "json"
   ],
   "type": "string",
   "example": "page",
   "description": "Extraction mode. Default page."
  },
  "match": {
   "type": "string",
   "description": "Regular expression for mode=links."
  },
  "fields": {
   "type": "object",
   "description": "Field map for mode=list.",
   "additionalProperties": {
    "type": "string"
   }
  },
  "jsonpath": {
   "type": "string",
   "description": "JSONPath-lite for mode=json."
  },
  "sameHost": {
   "type": "boolean"
  },
  "selector": {
   "type": "string",
   "description": "CSS selector."
  },
  "tableIndex": {
   "type": "integer",
   "minimum": 0
  },
  "webhook_url": {
   "type": "string",
   "description": "https URL that receives a signed POST on every change."
  },
  "webhook_urls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Pro plan only: up to 5 webhook URLs."
  },
  "interval_minutes": {
   "type": "integer",
   "description": "Check interval. Free: 60-10080 (default 360). Pro: 15-10080 (default 15)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "id": "9f1c0b6e5d2a47c8b3e1a0f4d7c2b5a9",
  "plan": "pro",
  "feed_url": "https://pagewatch.zenith-ops.workers.dev/m/9f1c0b6e5d2a47c8b3e1a0f4d7c2b5a9/feed.rss",
  "events_url": "https://pagewatch.zenith-ops.workers.dev/m/9f1c0b6e5d2a47c8b3e1a0f4d7c2b5a9/events.json",
  "expires_at": "2026-11-16T08:00:00.000Z",
  "manage_token": "pwm_<shown once>",
  "interval_minutes": 15
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/pagewatch-pro-monitor-creation-fb0c049f/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from pagewatch.zenith-ops.workers.dev](https://www.zero.xyz/host/pagewatch.zenith-ops.workers.dev/llms.txt)
