Website change monitoring
Watch a public URL on a Luni schedule. Each check stores a content snapshot, diffs what changed, and can post a signed webhook when the page is new or updated.
Create a URL watch
Use POST /v1/monitors with a name, public URL, intervalMinutes (60, 360, 1440 or 10080, or 0 for on-demand checks only) and optional webhook. Luni scrapes on that schedule, hashes the main markdown, and keeps the previous snapshot for a text diff.
Main-content extraction reduces footer and chrome noise. Volatile pages can still churn; validate a few checks on your own sample before relying on alerts.
Run on a schedule or on demand
Luni runs scheduled checks for you. POST /v1/monitors/{id}/run checks immediately; send an Idempotency-Key header to retry without a second charge. Each successful check costs one credit, including unchanged pages.
The same watches are available through MCP as luni_monitor_create, luni_monitor_list, luni_monitor_get, luni_monitor_delete and luni_monitor_run.
Notify on change
When the page is new or changed, Luni enqueues a signed monitor.page event with its status and, for a changed page, a text diff. Unchanged checks stay quiet. Verify the webhook signature the same way as other Luni deliveries.
Monitors watch one URL each and notify by webhook. AI relevance scoring, crawl or search targets, field-level watches, email and Slack alerts are not available yet; apply your own thresholds to the diff payload.
