services / page-watch
weboperational · 133 ms
Web Page Change Monitor (diff since last check)
Website change monitoring for agents that check in a loop: send a URL and get only what changed since your last call (added and removed lines of the page text), plus optional keyword alerts. First call saves a baseline and returns a cursor; pass the cursor on the next call. The cursor only advances when a change is reported, so nothing slips through between polls. Good for price pages, docs and changelogs, job boards, status pages, competitor sites, government notices. Params: url, cursor, keywords (list, alert when a keyword newly appears), ignore (list of substrings; lines containing them are ignored, e.g. timestamps or ads), render (true for JavaScript pages).
Run free trial ↗1 free call per day with the example input. Paid: $0.003 USDC, no limit.
Call it
Input
| Field | Type | Description |
|---|---|---|
| url * | string | Page to watch (http or https) |
| cursor | string | Cursor from your previous call; omit on the first call |
| keywords | array | Alert when one of these appears in newly added text (case-insensitive) |
| ignore | array | Ignore lines containing any of these substrings |
| render | boolean = false | Render JavaScript before reading |
Output
| Field | Type | Description |
|---|---|---|
| url | string | |
| title | string | |
| http_status | integer | |
| first_check | boolean | |
| changed | boolean | |
| cursor | string | |
| since | string | |
| checked_at | string | |
| cursor_help | string | |
| summary | string | |
| diff | object | |
| keywords | array | |
| keyword_alert | boolean | |
| content_hash | string | |
| line_count | integer | |
| word_count | integer |
Example response (data)
{
"url": "https://www.python.org/downloads/",
"title": "Download Python | Python.org",
"http_status": 200,
"first_check": false,
"changed": true,
"cursor": "OiXuu1BiPRMC2YpW",
"since": "2026-10-09T06:57:46.355Z",
"checked_at": "2026-10-09T06:57:46.512Z",
"cursor_help": "Pass this cursor on your next call. It only advances when a change is reported.",
"summary": "1 line(s) added, 0 removed since 2026-10-09T06:57:46.355Z. First new line: \"\"",
"diff": {
"added": [
""
],
"removed": [],
"added_count": 1,
"removed_count": 0,
"truncated": false
},
"keywords": [
{
"keyword": "3.15",
"present": true,
"newly_appeared": false
}
],
"keyword_alert": false,
"content_hash": "8eb1656e342b8803149a57e36e6885a9",
"line_count": 346,
"word_count": 3196
}