Monitors
Backed byY CombinatorCombinator

Watch Any Website for Changes

Point a monitor at a page, a sitemap, or a whole site and get a signed webhook the moment something actually changes. Checks as often as every 10 minutes. No cron jobs, no scrapers, no diffing infrastructure.

Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Tsenta logo

How it works

From "did this website change?" to one API call

Configure

Create a monitor

Pick a target and a schedule in one API call. The first run captures a baseline that every later run is compared against.

await client.monitors.create({
target: { type: "page",
url: "acme.com/pricing" },
schedule: { frequency: 6,
unit: "hours" } })
Runs

We check it on schedule

Context.dev handles the crawling, diffing, judging, and retrying in the background — as often as every 10 minutes.

06:00 baseline captured
12:00 no change
18:00 no change
00:00 change detected
Notify

React the moment it changes

Get a signed webhook with a summary of what changed, or poll the API for the full diff. Silence means nothing changed.

"event": "change.detected",
"change": {
"title": "Acme pricing
page changed" }

Targets

Three ways to watch a website

EXACTtarget: { type: "page" }

Page monitors

Re-scrape a single URL on schedule and diff the visible text exactly. Good anywhere a literal change is the signal: pricing pages, terms of service, changelogs, docs.

Pricing pagesTerms of serviceChangelogs
API docs
EXACTtarget: { type: "sitemap" }

Sitemap monitors

Watch a site's sitemap and get notified when URLs are added or removed. Catch new product pages, new blog posts, or delisted content the moment they ship. Scope with include and exclude patterns.

New product pagesCompetitor blogsDelisted content
API docs
SEMANTICtarget: { type: "extract" }

Extract monitors

Describe what you care about in plain language, like "track pricing plans and their monthly cost". Each run extracts structured data from the relevant pages and semantically compares it to the last run. Cosmetic edits don't fire it; meaningful changes do, each with a confidence score you can threshold.

Competitor pricingProduct catalogsJob listings
API docs

Built for pipelines

An event source for agents, not just an alert tool

Wake an agent, refresh an index, or re-run an enrichment the moment the web changes — instead of re-scraping everything on a timer and hoping.

Signed webhooks

Every delivery carries an X-Context-Signature header (HMAC-SHA256 over the timestamp and body) so you can verify it actually came from us.

Full run & change history

No webhook? Poll instead. Pull text diffs, added and removed URLs, and semantic evidence with confidence scores from the API — per monitor or account-wide.

AI monitor generator

Type "tell me when Stripe changes their pricing" in the dashboard and get a fully configured monitor. Tune it from there or use it as-is.

Creating and managing monitors is free. Runs cost 1 credit for page and sitemap checks, 10 for semantic extract.

webhook delivery
POST https://myapp.com/hooks/context
X-Context-Signature: t=1783017612,v1=9f2a…
 
{
"event": "change.detected",
"data": {
"change": {
"id": "chg_123",
"title": "Acme pricing page changed",
"summary": "The Pro plan price
changed from $29 to $39.",
"url": "https://acme.com/pricing"
}
}
}

Built for

Teams that need to know when the web changes

Ship an agent that actually knows things.

Free tier, 10-minute integration, and the same API powering agents at Mintlify, daily.dev, and Propane. No credit card to start.