monitor_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
/api/v1/tools/monitor_changesParameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Required | - | The URL to monitor for changes Example: https://competitor.com/pricing |
operation | string | Optional | compare | Operation type: "create_baseline" | "compare" | "monitor" | "get_history" | "get_stats" Example: compare |
trackingOptions | object | Optional | - | Options for what to track and how Example: {"granularity": "high", "ignoreWhitespace": true} |
trackingOptions.granularity | string | Optional | medium | Change detection sensitivity: "low" | "medium" | "high" Example: high |
trackingOptions.ignoreWhitespace | boolean | Optional | true | Ignore whitespace-only changes Example: true |
trackingOptions.trackText | boolean | Optional | true | Track text content changes Example: true |
trackingOptions.trackLinks | boolean | Optional | true | Track link changes (added/removed) Example: true |
trackingOptions.trackStructure | boolean | Optional | true | Track HTML structure changes Example: true |
monitoringOptions | object | Optional | - | Options for scheduled monitoring Example: {"enabled": true, "interval": "1h"} |
monitoringOptions.enabled | boolean | Optional | false | Enable automatic scheduled monitoring Example: true |
monitoringOptions.interval | string | Optional | 1h | Check interval: "15m" | "30m" | "1h" | "6h" | "24h" Example: 1h |
monitoringOptions.notificationThreshold | number | Optional | 0.1 | Minimum change score to trigger notifications (0-1) Example: 0.1 |
monitoringOptions.webhookUrl | string | Optional | - | Webhook URL to receive change notifications Example: https://your-app.com/webhooks/changes |
storageOptions | object | Optional | - | Options for change history storage Example: {"retainHistory": true, "maxHistoryEntries": 100} |
storageOptions.retainHistory | boolean | Optional | true | Store change history for later retrieval Example: true |
storageOptions.maxHistoryEntries | number | Optional | 100 | Maximum number of history entries to retain Example: 100 |
storageOptions.enableSnapshots | boolean | Optional | false | Store full HTML snapshots for comparison Example: false |
Request Examples
Response Example
{ "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}data.comparison.changeScoreOverall change score (0-1, where 1 is completely different)data.comparison.significancelow, medium, or high based on changeScoredata.comparison.changesArray of detected changes with detailsdata.baseline.hashUnique hash of the baseline content for comparisondata.history.nextCheckNext scheduled check (if monitoring enabled)credits_usedFixed 3 credits per operation (baseline, compare, monitor, etc.)processing_timeTypically 2-4 seconds for comparison operationsOperations Guide
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.
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.
Credit Cost
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 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)
Webhook Notification Format
Your webhook endpoint must return 200 OK within 10 seconds. Failed webhooks are retried up to 3 times with exponential backoff.