Create a change-detection monitor
Creates a recurring change-detection monitor for a URL. Webhook deliveries include `X-RapidCrawl-Event: monitor.change_detected` or `X-RapidCrawl-Event: monitor.captured` so receivers can dispatch on the header without parsing the body shape. Scrape-monitor webhook payloads carry an additive `was_preflight: boolean` field. It is `true` only when the cycle confirmed the page was unchanged (the target returned HTTP 304) — emitted as a heartbeat under `notify_on='every'`. On the `notify_on='change'` delivery path, unchanged cycles suppress the webhook entirely. The field is `false` on every other delivery, including all captures that carry a body.
Authorization
AuthorizationRequiredBearer <token>API key. Obtain from POST /v1/account/api-keys.
In: header
Request Body
application/jsonRequiredurlRequiredstring"uri"typestring"screenshot"Value in: "screenshot" | "scrape"interval_typeRequiredstring"hourly" | "daily" | "weekly" | "cron"cron_expressionstring5-field cron expression. Required when interval_type is "cron".
change_thresholdnumber5Minimum: 0Maximum: 100notify_onstring"change"Value in: "change" | "every"webhook_urlRequiredstringWebhook endpoint URL (HTTPS only; http:// rejected with HTTP 422)
"^https://"Format: "uri"webhook_secretstringwebhook_headersobjectMax 20 headers. Keys must match /^[A-Za-z0-9-]+$/ and not be reserved.
optionsobjectScreenshot monitor options (device, viewport, format, etc.).
scrape_optionsobjectScrape monitor options (formats, country, headers, etc.). Only for type=scrape.
metadataobjectArbitrary key-value metadata. Max 4096 bytes when JSON-serialized.
Monitor created.