[Go to site: main page, start]

Skip to main content
POST
JavaScript
0 Credits 1-10 Credits Per Run
Creating a monitor always triggers an immediate first run that captures the baseline: the snapshot every later run is compared against. Baseline runs perform no change detection and are billed like any other run.
Only name and target are required. change_detection and schedule are optional:
  • change_detection — inferred from target when omitted. extract targets default to semantic; sitemap targets default to exact; page targets default to semantic when target.instructions is set and exact otherwise. Pass it explicitly only when you want to override defaults (for example, tuning confidence_threshold on a semantic monitor). Supported combinations are page + exact, page + semantic, sitemap + exact, and extract + semantic — anything else returns a 400, as does a semantic page monitor without instructions or an exact page monitor with instructions.
  • schedule — defaults to once per day when omitted. Pass an interval object to run more or less often; the total interval must be between 10 minutes and 1 year.

Poll the baseline run

The 201 response includes initial_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

Authorization
string
header
required

Bearer authentication header of the form Bearer <API_KEY>, where <API_KEY> is your api key.

Body

application/json

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.

name
string
required
Required string length: 1 - 200
Example:

"Acme pricing monitor"

target
Page target · object
required

Discriminated union describing what the monitor watches.

mode
enum<string>

Top-level monitor category. Always web today; the concrete behavior is described by target and change_detection.

Available options:
web
tags
string[]

User-defined tags for grouping and filtering monitors and their changes. Duplicates are removed.

Maximum array length: 20
Required string length: 1 - 50
Example:
change_detection
Exact · object

Discriminated union describing how changes are detected.

schedule
Interval · object

Discriminated union describing how the monitor is scheduled. Only interval is supported today; cron and exact_time are reserved for future use.

webhook
object | null

Response

Monitor created

A newly created monitor plus initial_run_id, the id of the baseline run queued at creation.

mode
enum<string>
required

Top-level monitor category. Always web today; the concrete behavior is described by target and change_detection.

Available options:
web
id
string
required
Example:

"mon_123"

name
string
required
Example:

"Acme pricing monitor"

target
Page target · object
required

Discriminated union describing what the monitor watches.

change_detection
Exact · object
required

Discriminated union describing how changes are detected.

schedule
Interval · object
required

Discriminated union describing how the monitor is scheduled. Only interval is supported today; cron and exact_time are reserved for future use.

status
enum<string>
required

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.

Available options:
active,
paused,
failed
created_at
string<date-time>
required
updated_at
string<date-time>
required
initial_run_id
string | null
required

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}.

Example:

"run_123"

webhook
object | null
last_run_at
string<date-time> | null
last_change_at
string<date-time> | null
next_run_at
string<date-time> | null

When the next scheduled run is due.

last_error
object | null

Error from the most recent failed run; null when the last run succeeded.

webhook_failure
object | null

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.

tags
string[]

User-defined tags for grouping and filtering monitors and their changes. Duplicates are removed.

Maximum array length: 20
Required string length: 1 - 50
Example:
baseline
Page baseline · object

Current 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).