Skip to main content
target says what a monitor watches, and change_detection says how a difference becomes a change. Only name and target are required.
This page target has no instructions, so detection is inferred as exact, and the monitor runs daily.

Targets

Page monitors

Watch the visible text of one page. Focus with CSS selectors, add instructions for semantic detection, and run browser actions before capture.

Sitemap monitors

Watch a sitemap for URLs that are added or removed, filtered by path patterns.

Extract monitors

Watch the pages of a site that matter for your instructions, with an optional JSON Schema.

Search monitors

Search the web on every run and report results you haven’t seen before, judged against your instructions.

Change detection

Omit change_detection and it’s inferred as shown. Any other pair returns 400, including exact with page instructions and semantic without them. Search targets accept either type regardless of instructions. Semantic detection takes an optional confidence_threshold from 0 to 1 (default 0.75). The judge rates each confirmed difference:
  • It matters, with confidence at or above the threshold: reported as a change, and the baseline moves to the new content.
  • It matters, with confidence below the threshold: not reported yet. The baseline stays, so the next run checks the same difference again.
  • It doesn’t matter: not reported, and the baseline takes the new content silently.
Search monitors judge each new result instead of a diff. See Search monitors for that rule.

Update a target

PATCH /v1/monitors/{monitor_id} replaces target as a whole, so send every field you want to keep, including instructions and selectors. Send change_detection together with target. If you leave it out, the monitor keeps its current detection type even when the new target implies another one. For example, adding instructions to an exact monitor without "change_detection": {"type": "semantic"} leaves it exact.
Any change to target or change_detection, including confidence_threshold, discards the baseline and queues a new baseline run, which reports no change. Updating name, tags, schedule, status, or webhook keeps the baseline.

Limits and errors

An unsupported target and detection pair, or a target URL that isn’t public, returns 400 INPUT_VALIDATION_ERROR with a details list of each problem. See Limits and errors for every limit and error code.