Create a Monitor
Creates a monitor. The request body is a union of the supported target/change detection combinations. The monitor runs immediately after creation to create its initial baseline.
name and target are required. change_detection and schedule are optional:
change_detection— inferred fromtargetwhen omitted.extracttargets default tosemantic;sitemaptargets default toexact;pagetargets default tosemanticwhentarget.instructionsis set andexactotherwise. Pass it explicitly only when you want to override defaults (for example, tuningconfidence_thresholdon a semantic monitor). Supported combinations arepage+exact,page+semantic,sitemap+exact, andextract+semantic— anything else returns a400, as does a semanticpagemonitor withoutinstructionsor an exactpagemonitor withinstructions.schedule— defaults to once per day when omitted. Pass anintervalobject to run more or less often; the total interval must be between 10 minutes and 1 year.
Poll the baseline run
The 201 response includesinitial_run_id: the id of the baseline run that was queued when the monitor was created. Watch List Monitor Runs for this id to confirm the baseline completes before expecting change detection on later runs.
initial_run_id is null in the rare case that the baseline could not be queued immediately at create time — the baseline still runs on the monitor’s next scheduled tick, so no action is required.Authorizations
Bearer authentication header of the form Bearer <API_KEY>, where <API_KEY> is your api key.
Body
Creates a web monitor. mode is the constant web; the behavior is described by target (page, sitemap, or extract) and change_detection (exact or semantic). Supported combinations: page + exact, page + semantic, sitemap + exact, extract + semantic. change_detection is optional; page targets with instructions infer semantic detection, while page targets without them infer exact detection. Other targets default to their supported detection type. schedule is optional and defaults to once per day.
1 - 200"Acme pricing monitor"
Discriminated union describing what the monitor watches.
- Page target
- Sitemap target
- Extract target
Top-level monitor category. Always web today; the concrete behavior is described by target and change_detection.
web User-defined tags for grouping and filtering monitors and their changes. Duplicates are removed.
201 - 50Discriminated union describing how changes are detected.
- Exact
- Semantic
Discriminated union describing how the monitor is scheduled. Only interval is supported today; cron and exact_time are reserved for future use.
Response
Monitor created
A newly created monitor plus initial_run_id, the id of the baseline run queued at creation.
Top-level monitor category. Always web today; the concrete behavior is described by target and change_detection.
web "mon_123"
"Acme pricing monitor"
Discriminated union describing what the monitor watches.
- Page target
- Sitemap target
- Extract target
Discriminated union describing how changes are detected.
- Exact
- Semantic
Discriminated union describing how the monitor is scheduled. Only interval is supported today; cron and exact_time are reserved for future use.
Monitor lifecycle status. failed means the most recent run failed (see the monitor's last_error); failed monitors keep running on schedule and flip back to active on the next successful run. Monitors are auto-paused after repeated consecutive failures or insufficient-credit skips; resume by PATCHing status to active.
active, paused, failed The baseline run queued by this create call, or null if it could not be queued immediately (in which case the baseline runs on the next scheduled tick). Poll GET /monitors/{monitor_id}/runs/{run_id}.
"run_123"
When the next scheduled run is due.
Error from the most recent failed run; null when the last run succeeded.
Present while webhook deliveries are failing consecutively; null when deliveries are healthy or no webhook is configured. Cleared on the next successful delivery and when the webhook URL changes.
User-defined tags for grouping and filtering monitors and their changes. Duplicates are removed.
201 - 50Current baseline: the last observed value the monitor compares new snapshots against. Its shape follows target.type (page/sitemap/extract). Only populated on GET /monitors/{monitor_id}; null until the first baseline run completes (and after a target or change_detection update, which resets the baseline).
- Page baseline
- Sitemap baseline
- Extract baseline