cdpfleet Docs Sign up free

Monitors

A monitor loads a page in a real browser on a schedule, compares what it shows with last time, and tells you what changed — by webhook, by email, and in its history. Prices, stock, terms of service, job boards, competitors' pages. Monitors come with every paid plan.

curl -s https://cdpfleet.com/v1/monitors -H "x-api-key: $CDPFLEET_API_KEY" -H "content-type: application/json" \
  -d '{"url":"https://books.toscrape.com/","every":"1h","selector":".product_pod","ignore":["\\d{2}:\\d{2}"],
       "deliver":{"webhook":{"url":"https://example.com/hooks/cdpfleet"},"email":true}}'

Fields

FieldTypeDefaultWhat it does
urlstringrequiredA public http(s) page.
every / cronstringone is required"15m", "2h", "1d", "1w", or a 5-field cron in UTC ("0 9 * * 1-5"). Shortest: 5 minutes on dedicated plans, 15 on shared.
formatstring"markdown"What is compared: "markdown", "text" or "html".
selectorstringwhole pageCompare only this element.
removestring[]noneElements dropped first (ads, "related" boxes, cookie banners).
ignorestring[]noneRegular expressions removed from the text before comparing — dates, counters, rotating tokens.
country, proxy, wait_for, actions, max_wait—as in scrapeHow each check loads the page — see scrape.
deliverobjecthistory only{"webhook": {"url": "https://…"}, "email": true}.
activebooleantruefalse pauses it.

Whitespace is normalised and empty lines dropped before comparing, so reflowed text isn't a change. The first check stores a baseline; later checks report a change only when the compared text differs.

API

On a change

Webhooks are signed like job webhooks (your whsec_… secret) and retried on failure — verifying them in five languages:

{"type": "monitor.change", "created_at": "…", "data": {
  "monitor_id": "…", "change_id": "…", "url": "https://books.toscrape.com/", "at": "…",
  "added": 2, "removed": 1,
  "diff": "--- before\n+++ after\n@@ -1,3 +1,4 @@\n …",
  "snapshot_url": "https://…/after.txt"}}

After three failed checks in a row you get one monitor.error (and an email if you asked for email); the monitor keeps trying at its interval.

Billing and limits

Each check is one function call on your plan: it holds a thread while the page loads (a few seconds) and uses browser-minutes for that time. Up to 100 monitors per thread of your plan. History keeps 30 days of changes and the last 10 snapshots.