Use case
Watch fields on a list of people or companies and read what changed. Use these endpoints to create a monitor from rows, inspect its rows and events, export the table at any point in time, and change or stop it. See Monitors Overview for how checks work.Monitors are available to organizations with Monitors enabled. Requests from other organizations return
403.API Reference
See the full request/response schema and parameters in the API Reference.
Pricing
After a row’s first check, every tick bills a probe per active row. A full re-check at the monitor’s tier is billed only when the probe finds a likely change. See Credits & Pricing Guide for more information.Errors
For error responses (400, 403, 404, 409, etc.), see Handling Errors.Create monitor
Create one monitor from a table, with one row per subject.
Creation is all or nothing. If any row is invalid, nothing is created. The response is
201 with the monitor and its rows.
Example request
Example response
List monitors
Retrieve your team’s monitors, newest first. Rows are not included.
The response is
{ "monitors": [...], "next_cursor": "..." }. next_cursor is null on the last page.
Get monitor
Retrieve a monitor and every row in it, switched-off rows included.next_run_times are the monitor’s, and are empty when the row is switched off.
Get the monitor a workflow run started
Retrieve the monitor that a workflow’smonitor block started, with its rows.
404 when that block did not start a monitor, or when the monitor belongs to another team. See the monitor block.
Update monitor
Change what a monitor watches, how often, how deeply, or where it notifies.name, frequency, tier, struct, webhook_url, metadata, is_active. Changes apply to every row. Send null for webhook_url or metadata to clear them.
is_active pauses or resumes the whole monitor. Pausing through this endpoint sets disabled_reason: "paused", and resuming clears it. A row you switched off stays off when the monitor resumes.
Example request
Trigger monitor
Check every active row now, without waiting for the next scheduled fire.202 with { "status": "accepted", "monitor_id": "..." }. Returns 409 if the monitor is not active. If a check of the monitor is already running, the triggered one is skipped.
Cancel monitor
Stop checking the whole monitor. Rows keep their on/off switches, baselines, and history, so resuming withPOST /monitors/{monitor_id}/update and "is_active": true restores the previous selection.
is_active: false and disabled_reason: "cancelled".
Get row
Retrieve one row, including the values its watched fields currently hold inbaseline.
Switch a row on or off
Include or exclude one row from checks.is_active is a required query parameter. A switched-off row is skipped on every tick, is not billed, and keeps its baseline and history. Its disabled_reason is excluded.
List row events
Retrieve one row’s events, newest first.Example response
List snapshots
List every moment the monitor’s data changed, newest first, each with a download link. A snapshot is recorded per change, not per check: the changes from one tick share one snapshot.limit — 1–500, default 100.
Example response
Download snapshot
Download the table as it stood at a moment, as CSV: one row per subject, with the key columns followed by the watched fields.as_of is an as_of value from the snapshot list, URL-encoded, or latest for the current values. Any ISO 8601 timestamp is accepted and returns the values held at that time.