Introducing /monitor. Notify your AI agent the moment pages or sites change. Try it now →
[ WATCH ]
[ DIFF ]
[ JUDGE ]
[ PUSH ]
Introducing /monitor

Monitor the web

Stop polling. Firecrawl watches pages on your schedule, diffs every check against the last, and sends you, or your agent, only what actually changed.

New monitor
SETUP
URL
Watching anthropic.com/news
EVERY HOUR
First check runs as soon as setup completes
Fires only when something real changes
[ 01 / 06 ]
·
How It Works
//
How It Works
//

From change to event

Set a schedule and a goal. Firecrawl checks and diffs every page, the AI judge filters the noise, and an event lands in your webhook with just the diff.
Checks on your schedule
EVERY HOUR
PAGE
STATUS
vercel.com/changelog
changed
stripe.com/pricing
no changes
anthropic.com/news
changed
openai.com/blog
new
github.com/firecrawl/releases
changed
Only what changed
DIFF
RESULT + AI JUDGMENT
stripe.com/pricing
GoalAlert me when pricing changes
- Pro plan $20/mo
+ Pro plan $25/momeaningful
Matches your goal: pro plan price increased
confidence: high
Up to 90% fewer tokens. Your agent only ingests what changed
Read docs
[ 02 / 06 ]
·
Why Monitor
//
Why Monitor
//

Stop polling the web

Polling re-reads entire pages to discover that nothing changed. Monitor turns the web into events you can subscribe to.
Push, not poll

Firecrawl does the checking on your schedule and calls your webhook the moment something is different. No polling loop, no wasted runs.

monitor.pagePOST your-agent.com/hooks
Diffs, not pages

Events carry exactly what was added, removed, or changed, in text and JSON. Up to 90% fewer tokens than re-ingesting the page.

- Pro plan $20/mo
+ Pro plan $25/mo
Goals remove the false positives

Give each monitor a goal in plain English. The AI judge scores every diff against it, so copyright years, timestamps, and rotated testimonials never trigger an alert. Only changes that match your goal get through.

goal: “Alert me when pricing changes”
© 2025 → © 2026not meaningful
+ Pro plan $25/momeaningful
One page or the whole site

Watch a single URL, a batch, or an entire site by crawl, with paths to include or exclude. New and removed pages arrive as events too.

single pageurl batchfull site
Watch fields, not pages
DETERMINISTIC JSON
Deterministic JSON

Prefer structure over text diffs? Give your monitor a schema for the fields you care about, like a plan name and its price, and every check extracts them as structured JSON. A stable, site-specific parser means the same page always yields the same fields, so a diff is always a real value change, never extraction noise.

extracted fields · every check
"plan""Pro" · unchanged
"price""$20/mo""$25/mo"
"cta""Start now" · unchanged
[ 03 / 06 ]
·
Use Cases
//
Use Cases
//

Watch what matters

Every monitor takes a goal in plain English. These are the ones teams set up first.
Competitor Pricing

Alert me when any plan price changes

Docs & Changelogs

Ping my agent when the API docs change

RAG Freshness

Flag content changes worth re-indexing

E-commerce

Watch for price drops and new products

Job Postings

Notify me when new roles are posted

Compliance

Track changes to terms and policies

[ 04 / 06 ]
·
In Action
//
In Action
//

Monitors on the job

The same goals, running: alerts in your inbox, quiet checks all week, judged diffs, and webhooks landing in your logs.
Competitor Pricing
Alert me when any plan price changes
[ 01 ]
Email · alerts@example.comnow
anthropic.com/pricing changed
- $15 / 1M tokens
+ $12 / 1M tokens
meaningfulconfidence: high
POST hooks.example.com/monitor200 OK
stripe.com/pricing changed
- Pro plan $20/mo
+ Pro plan $25/mo
meaningfulconfidence: high
Docs & Changelogs
Tell me about new changelog entries
[ 02 ]
MONTUEWEDTHUFRI
checks run quietly, nothing delivered
E-commerce
Watch for price drops and new products
[ 03 ]
previous09:00
From $1,599
current15:00
From $1,499
meaningfulconfidence: highStarting price dropped by $100
RAG Freshness
Flag content changes worth re-indexing
[ 04 ]
your-app.com — server log
listening on :3000 …
[ 05 / 06 ]
·
Get Started
//
Easy to integrate
//

Start using /monitor today

One call from the API, SDKs, or CLI. Events arrive as signed webhooks or email.
[ INPUT ]
# pip install firecrawl-py
from firecrawl import Firecrawl

app = Firecrawl(api_key ="fc-YOUR-API-KEY")

monitor = app.create_monitor(
    name ="Stripe pricing",
    schedule ={"text": "every 6 hours"},
    targets =[{
        "type": "scrape",
        "urls": ["https://stripe.com/pricing"]
    }],
    goal ="Alert when pricing changes",
    judge_enabled =True,
    webhook ={
        "url": "https://hooks.example.com/monitor",
        "events": ["monitor.page"]
    }
)
[ WEBHOOK ]
{
  "success": true,
  "type": "monitor.page",
  "data": {
    "monitorId": "019df960-06e7-7383",
    "url": "https://stripe.com/pricing",
    "status": "changed",
    "diff": {
      "text": "- Pro plan $20/mo\n+ Pro plan $25/mo"
    },
    "judgment": {
      "meaningful": true,
      "confidence": "high",
      "reason": "Pro plan price increased"
    }
  },
  "metadata": {
    "monitorName": "Stripe pricing"
  }
}
[ 06 / 06 ]
·
FAQ
//
FAQ
//

Frequently asked questions

Everything you need to know about Firecrawl Monitor.
Monitor
Usage