CrawlForge
MonitoringAdvanced3 credits

track_changes

Track content changes on web pages with baseline capture, intelligent comparison, and scheduled monitoring with webhook alerts. Perfect for monitoring competitors, legal policies, and breaking news.

Use Cases

Monitor Competitor Pricing Pages

Get instant alerts when competitors change prices, features, or product offerings

Track Legal/Policy Document Changes

Monitor Terms of Service, Privacy Policies, or regulatory compliance documents

Watch News Sites for Updates

Detect breaking news or article updates on specific pages in real-time

Detect Website Outages or Defacements

Get alerts when significant structural changes indicate errors or attacks

Monitor API Documentation for Breaking Changes

Track API reference pages to catch deprecations and breaking changes early

Endpoint

POST/api/v1/tools/track_changes
Auth Required
2 req/s on Free plan
3 credits

Parameters

NameTypeRequiredDefaultDescription
url
stringRequired-
The URL to monitor for changes
Example: https://competitor.com/pricing
operation
stringOptionalcompare
Operation type: "create_baseline" | "compare" | "monitor" | "get_history" | "get_stats"
Example: compare
trackingOptions
objectOptional-
Options for what to track and how
Example: {"granularity": "high", "ignoreWhitespace": true}
monitoringOptions
objectOptional-
Options for scheduled monitoring
Example: {"enabled": true, "interval": "1h"}
storageOptions
objectOptional-
Options for change history storage
Example: {"retainHistory": true, "maxHistoryEntries": 100}

Operations Guide

Different operations for various monitoring workflows

create_baseline
Capture initial state of a webpage. Must be run first before comparisons. Creates a snapshot with content hash, text length, link count, and structure.
compare
Compare current webpage state against baseline. Returns change score, significance, and detailed list of all detected changes (text, links, structure).
monitor
Enable/disable scheduled monitoring with webhook notifications. Automatically checks for changes at specified interval and sends alerts when threshold is met.
get_history
Retrieve change history for a URL. Returns array of all detected changes with timestamps, change scores, and summaries.
get_stats
Get monitoring statistics including total checks, average change score, last check time, and change frequency trends.

Webhook Notification Format

When changes are detected above threshold, this payload is sent to your webhook

webhook-payload.jsonJson
Your webhook endpoint must return 200 OK within 10 seconds. Failed webhooks are retried up to 3 times with exponential backoff.

Request Examples

terminalBash

Response Example

200 OK2,340ms
{
"success": true,
"data": {
"comparison": {
"changeScore": 0.35,
"significance": "medium",
"changes": [
{
"type": "text",
"description": "Pricing changed from $99/mo to $79/mo",
"location": "div.pricing-card > span.price",
"oldValue": "$99",
"newValue": "$79",
"impact": "high"
},
{
"type": "link",
"description": "New \"Enterprise\" link added",
"location": "nav.pricing-tiers",
"action": "added",
"url": "/pricing/enterprise",
"impact": "medium"
},
{
"type": "structure",
"description": "New section added: \"Compare Plans\"",
"location": "main > section:nth-child(3)",
"action": "added",
"impact": "low"
}
],
"summary": "3 changes detected: 1 high impact, 1 medium impact, 1 low impact",
"timestamp": "2025-10-15T14:30:00Z"
},
"baseline": {
"url": "https://competitor.com/pricing",
"captured_at": "2025-10-15T12:00:00Z",
"hash": "a1b2c3d4e5f6",
"metrics": {
"textLength": 4567,
"linkCount": 23,
"elementCount": 145
}
},
"history": {
"totalChecks": 48,
"changesDetected": 5,
"lastCheck": "2025-10-15T14:30:00Z",
"nextCheck": "2025-10-15T15:30:00Z"
}
},
"credits_used": 3,
"credits_remaining": 997,
"processing_time": 2340
}
Field Descriptions
data.comparison.changeScoreOverall change score (0-1, where 1 is completely different)
data.comparison.significancelow, medium, or high based on changeScore
data.comparison.changesArray of detected changes with details
data.baseline.hashUnique hash of the baseline content for comparison
data.history.nextCheckNext scheduled check (if monitoring enabled)
credits_usedFixed 3 credits per operation (baseline, compare, monitor, etc.)
processing_timeTypically 2-4 seconds for comparison operations

Error Handling

No Baseline Found (400 Bad Request)

Must run create_baseline operation first before comparison. Each URL needs its own baseline.

Invalid Monitoring Interval (400 Bad Request)

Interval must be one of: 15m, 30m, 1h, 6h, 24h. Shorter intervals require higher plans.

URL Not Accessible (400 Bad Request)

Target URL returned error or is blocked. Check URL accessibility and authentication.

Webhook Failed (500 Internal Server Error)

Webhook URL returned error or timeout. Ensure endpoint is accessible and returns 200 OK.

Pro Tip: Use high granularity for critical pages like pricing or legal docs. Use medium/low granularity for pages with frequent minor updates to reduce false positives.

Credit Cost

3 credits
3 credits per operation
Each operation (create_baseline, compare, monitor, get_history, get_stats) costs 3 credits. Scheduled monitoring checks are charged per execution.

Cost Breakdown:

create_baseline: 3 credits (one-time per URL)

compare: 3 credits per check

monitor (setup): 3 credits (one-time)

Scheduled checks: 3 credits per execution

get_history: 3 credits per retrieval

get_stats: 3 credits per retrieval

Monitoring Cost Example:

1-hour monitoring interval: 24 checks/day × 3 credits = 72 credits/day/URL

6-hour monitoring interval: 4 checks/day × 3 credits = 12 credits/day/URL

24-hour monitoring interval: 1 check/day × 3 credits = 3 credits/day/URL

Plan Recommendations:

Free Plan: 1,000 one-time trial credits = Monitor 5 URLs at 6h intervals for 1 month

Hobby Plan: 5,000 credits = Monitor 25 URLs at 6h intervals ($19/mo)

Professional Plan: 50,000 credits = Monitor 250 URLs at 6h intervals ($99/mo)

Related Tools

fetch_url
Basic URL fetching for comparison (1 credit)
extract_content
Extract main content for focused monitoring (2 credits)
stealth_mode
Monitor protected pages without detection (5 credits)
batch_scrape
Monitor multiple URLs in parallel (1 credit per URL)
Ready to try track_changes? Sign up for free and get 1,000 credits to start monitoring your first pages.