Monitors

Create a monitor: a schedule that fills a dataset's output columns again daily, weekly, or monthly, compares each cell with the previous run, and can POST the results (or only changes) to a webhook. Pass dataset_id (or enrichment_id naming the dataset's enrichment) and, optionally, columns — the output column names each run fills (every one when omitted). The rows are the dataset's: a monitor takes no input; add rows with POST /datasets/{id}/rows.

Creating the monitor charges nothing. Every scheduled run is a fill of the dataset and charges the fill price (rows × the enrichment's per-row budget at most). estimate_cost: true returns the credit estimate for one scheduled run; max_credits refuses the monitor when that estimate is higher. Each run is listed by GET /monitors/{id}/runs and read by GET /runs/{id}/result; with output_format: include_diffs every cell carries previous_value and changed.

post/monitors

Request

Request body

dataset_idstring

The dataset to fill again on the schedule (ds_...). One of dataset_id / enrichment_id is required.

columnsstring[]

Output column names each run fills. Omit for every output column, including ones added later.

enrichment_idstring

Instead of dataset_id — the enrichment bound to the dataset (enr_...).

cadence'daily' | 'weekly' | 'monthly' required

How often the monitor runs

minuteinteger required

Minute of the hour to run

hourinteger required

Hour of the day to run

day_of_weekinteger

Day of the week (0=Sunday, required for weekly)

day_of_monthinteger

Day of the month (required for monthly)

timezonestring required

Timezone (e.g. 'UTC', 'America/New_York')

webhook_urlstring uri

URL to receive results each scheduled run

alert_rule'each_run' | 'on_diff' | 'disabled'

When the webhook fires — every run, only when a monitored cell changed since the previous run, or never (default each_run)

output_format'current_only' | 'include_diffs'

include_diffs adds previous_value and changed to every cell of the run's output and webhook payload (default current_only)

run_immediatelyboolean

Also run the monitor immediately after creation (a paid run)

estimate_costboolean

Validate and price the request without running or charging anything; the 200 response is the credit estimate (EstimateCostResult).

max_creditsnumber

Credit ceiling. Refused with 422 credit_cap_exceeded (nothing charged) when the estimate's maximum exceeds it.

Response

estimate_cost only — the credit estimate for ONE scheduled run (the dataset's rows × the per-row budget; type monitor); nothing was created

estimate_costtrue required
type'enrichment' | 'dataset_build' | 'extraction_discovery' | 'extraction' | 'monitor' | 'scrape' | 'quick_search' | 'search_agent' required

What would have been charged for (monitor = one scheduled run of the monitor)

Example response

{
  "estimate_cost": true,
  "type": "enrichment",
  "credit_detail": {
    "estimate": {
      "minimum": 0,
      "maximum": 1920,
      "charged_upfront": false
    },
    "credits_used": 0,
    "credits_remaining": 5000,
    "sufficient_credits": true
  }
}

Changes

    • warning

      removed the request property

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • warning

      removed the optional property from the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status

    • info

      added the optional property /////// to the response with the status