firecrawl-monitor

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

firecrawl monitor

firecrawl monitor

Detect when content on a website changes and get notified by webhook or email. Firecrawl handles fetching, diffing, judging, and notifying server-side. Each page in a check is labeled
same
,
new
,
changed
,
removed
, or
error
.
Pick a target mode by what you're watching:
ModeFlagsWatches
Single page
--page <url>
one URL, for changes
URL batch
--scrape-urls <url,url,...>
several URLs, for changes
Whole site
--crawl-url <root-url>
every page a crawl discovers, for changes
Web search
--queries <q,...>
+
--goal
the whole web, for new results matching the goal
The first three watch URLs you already have. Web search runs your queries each check and alerts on results it hasn't seen before (labeled
new
once,
same
on later checks);
--goal
is required with
--queries
.
检测网站内容变更,并通过Webhook或邮件发送通知。Firecrawl在服务器端处理内容抓取、差异对比、状态判断与通知发送。每次检查中的每个页面会被标记为
same
(无变化)、
new
(新增)、
changed
(已变更)、
removed
(已移除)或
error
(错误)。
根据监控目标选择对应模式
模式参数监控内容
单页面
--page <url>
单个URL的内容变更
URL批量
--scrape-urls <url,url,...>
多个URL的内容变更
整站监控
--crawl-url <root-url>
爬虫发现的整站所有页面的内容变更
全网搜索监控
--queries <q,...>
+
--goal
全网范围内符合目标要求的新增搜索结果
前三种模式针对已有的URL进行监控。全网搜索监控会在每次检查时执行查询,并针对首次发现的结果触发告警(首次标记为
new
,后续检查标记为
same
);使用
--queries
时必须搭配
--goal
参数。

Quick start

快速开始

bash
undefined
bash
undefined

Single page, natural-language schedule, email alert

单页面监控,自然语言设定周期,邮件告警

firecrawl monitor create --name "Blog" --schedule "every 30 minutes"
--goal "Alert when a new blog post is published."
--page https://example.com/blog
--email alerts@example.com
firecrawl monitor create --name "Blog" --schedule "every 30 minutes" \ --goal "Alert when a new blog post is published." \ --page https://example.com/blog \ --email alerts@example.com

Web monitor — search the whole web for NEW results matching a goal

全网监控——搜索全网符合目标的新增结果

firecrawl monitor create --name "Competitor launches" --schedule "daily at 9:00"
--queries "competitor product launch,competitor funding round"
--goal "Alert when a competitor announces a new product or raises funding."
--search-window 7d --max-results 20
--email alerts@example.com
firecrawl monitor create --name "Competitor launches" --schedule "daily at 9:00" \ --queries "competitor product launch,competitor funding round" \ --goal "Alert when a competitor announces a new product or raises funding." \ --search-window 7d --max-results 20 \ --email alerts@example.com

Webhook notifications

Webhook通知

firecrawl monitor create --name "Docs webhook" --schedule "every 30 minutes"
--goal "Alert when docs content changes."
--page https://example.com/docs
--webhook-url https://example.com/hook
--webhook-events monitor.page,monitor.check.completed
firecrawl monitor create --name "Docs webhook" --schedule "every 30 minutes" \ --goal "Alert when docs content changes." \ --page https://example.com/docs \ --webhook-url https://example.com/hook \ --webhook-events monitor.page,monitor.check.completed

Manage and inspect

管理与查看

firecrawl monitor list --limit 20 firecrawl monitor get <monitorId> firecrawl monitor run <monitorId> # trigger a check now firecrawl monitor checks <monitorId> # list all checks firecrawl monitor check <monitorId> <checkId> --page-status changed firecrawl monitor update <monitorId> --state paused firecrawl monitor delete <monitorId>

Subcommands: `create | list | get | update | delete | run | checks | check`. Run `firecrawl monitor <subcommand> --help` for the full option list.

**Done when:** `create` returns a monitor ID and a smoke-test `run` + `check` confirms the expected target, state, and notification configuration.

Read [goals.md](goals.md) when writing or refining `--goal` (and `--queries` for web monitors). Read [json-tracking.md](json-tracking.md) when the user cares about specific structured fields (price, headline, stock flag) and wants per-field diffs.
firecrawl monitor list --limit 20 firecrawl monitor get <monitorId> firecrawl monitor run <monitorId> # 立即触发一次检查 firecrawl monitor checks <monitorId> # 查看所有检查记录 firecrawl monitor check <monitorId> <checkId> --page-status changed firecrawl monitor update <monitorId> --state paused firecrawl monitor delete <monitorId>

子命令:`create | list | get | update | delete | run | checks | check`。执行`firecrawl monitor <subcommand> --help`查看完整参数列表。

**完成标志**:`create`命令返回监控ID,执行`run` + `check`进行冒烟测试,确认目标、状态与通知配置符合预期。

编写或优化`--goal`(以及全网监控的`--queries`)时,请阅读[goals.md](goals.md)。如果用户关注特定结构化字段(如价格、标题、库存标识)并需要字段级差异对比,请阅读[json-tracking.md](json-tracking.md)。

Constraints & tips

约束与提示

  • Minimum schedule interval is 5 minutes. Monitoring is not available for zero-data-retention teams.
  • Prefer one monitor over repeated one-off scrapes whenever the user wants the same URL checked more than once.
  • Silence temporarily with
    update --state paused
    ; reserve
    delete
    for monitors that are permanently done. (
    --state
    is an update flag;
    --status
    is the global CLI status flag.)
  • Filter check pages with
    --page-status changed
    (or
    new
    ,
    removed
    ,
    error
    ) to skip the noise from
    same
    pages.
  • firecrawl monitor run <id>
    triggers a check immediately — useful for smoke-testing a monitor right after creating it.
  • --retention-days
    controls how long snapshots are kept for diffing. Lower it for high-frequency monitors to save storage.
  • External email recipients must opt in. First time they're added, Firecrawl sends a confirmation email and they only receive alerts after they confirm. Team-owned addresses are auto-confirmed. Once a recipient unsubscribes, they must be re-added by the owner for a fresh confirmation email.
  • On HTTP 429 / rate-limit errors, back off once: wait ~30s and retry once. If it persists, stop, report the rate limit as the blocking reason, and delete any monitors created for this task. Never retry in a loop.
  • Monitor-triggered scrapes default
    maxAge
    to
    0
    — every check performs a fresh scrape unless
    scrapeOptions.maxAge
    is set explicitly in a JSON payload.
  • 最小周期间隔为5分钟零数据保留团队无法使用监控功能
  • 当用户需要多次检查同一URL时,优先使用单个监控任务,而非重复的一次性爬取
  • 如需临时停止监控,使用
    update --state paused
    delete
    仅用于永久删除不再需要的监控任务。(
    --state
    是更新参数;
    --status
    是全局CLI状态参数。)
  • 使用
    --page-status changed
    (或
    new
    removed
    error
    )过滤检查页面,跳过无变化(
    same
    )页面的冗余信息。
  • **
    firecrawl monitor run <id>
    **可立即触发一次检查——适合在创建监控任务后进行冒烟测试。
  • **
    --retention-days
    **控制快照保留时长(用于差异对比)。对于高频监控任务,可降低此值以节省存储空间。
  • 外部邮件接收人需主动订阅。首次添加时,Firecrawl会发送确认邮件,接收人确认后才能收到告警。团队内部邮箱会自动确认。一旦接收人取消订阅,需由管理员重新添加并发送新的确认邮件。
  • 遇到HTTP 429/限流错误时,仅重试一次:等待约30秒后重试。如果问题持续,请停止操作,报告限流问题,并删除为此任务创建的所有监控任务。禁止循环重试。
  • 监控触发的爬取默认
    maxAge
    0
    ——每次检查都会执行全新爬取,除非在JSON payload中显式设置
    scrapeOptions.maxAge

See also

相关链接

  • firecrawl-scrape — one-off scrape; escalate to
    monitor
    when checks become recurring
  • firecrawl-crawl — one-off crawl; pair with
    --crawl-url
    here for recurring crawl diffs
  • firecrawl — top-level workflow guide
  • firecrawl-scrape — 一次性爬取;当需要周期性检查时,升级为
    monitor
    功能
  • firecrawl-crawl — 一次性爬虫;搭配此处的
    --crawl-url
    实现周期性爬虫差异对比
  • firecrawl — 顶层工作流指南 ",