v2

latestOpenAPI 3.1.0Proprietary2026-07-26211984.6 KB
Watch

Dry-run a watch config (creates nothing)

Render a proposed watch config exactly as a live check would (same self-identifying User-Agent, SSRF checks, geo + compatibility-mode behaviour, and block/error detection) and return what was captured — so you can validate a selector, scope, or fetch identity and confirm the page is reachable BEFORE committing to a schedule. Creates nothing (no watch, baseline, diff, or alerts). Draws 1 credit; refunded when the page can't be read. A blocked or errored page is a 200 result with reachable:false + an actionable reason, not an API error.

post/v1/watches/test

Request body

urlstring uri required

The page to monitor

namestring

Optional label

intervalMinutesinteger

Check frequency in minutes. The accepted minimum is your plan's floor — Free 1440 (daily), Starter 180 (3h), Pro 30, Enterprise 5. A faster value returns 403 WATCH_INTERVAL_TOO_FAST.

diffMode'visual' | 'text' | 'both'

How changes are detected. Default both = a pixel diff (with a highlighted overlay) AND a full-page text diff, alerting on either — catches any change, visual or text. visual or text narrow to a single signal. (text/both extract the full visible page text, not just the article body.)

thresholdnumber

Visual sensitivity (0..1). Low (default 0.01) alerts on ANY change, including a small one on a long page (a changed-region test, not a whole-page pixel ratio). 0.06+ = only MAJOR visual changes (whole-page ratio). Does not affect text detection.

aiSummaryboolean

Pro+ — opt in to an AI-written one-sentence "what changed" summary on each detected change. Off by default. Every change already gets a free templated summary regardless of this flag; enabling it upgrades a text change's summary to a Workers-AI sentence.

webhookUrlstring uri

Starter+ — HMAC-signed change-webhook target. Delivered payload: the WatchWebhookEvent schema.

notifyEmailstring email

Any plan — send change alerts here (defaults to your account email if omitted). Anti-abuse: must be your OWN account email; any other address is rejected with 400 VALIDATION_ERROR.

pausedboolean

Create the watch paused (no baseline capture or charge until resumed). Paused watches still count toward your plan's watch limit.

Response

Render result (reachable or not — both are valid test outcomes)

successboolean