Change monitoring

Watch any page on a schedule. Each check captures a screenshot, pixel-diffs it against the previous capture, and — only when the change beats your threshold — stores before/after/diff images and alerts you by webhook and/or email.

Plan: Starter (5 pages, daily), Pro (25 pages, hourly), Scale (100 pages, every 15 minutes). Each executed check bills one screenshot from your monthly quota; creating, pausing, or editing monitors is free.

Killing false positives

Rotating ads, cookie popups, and clocks make naive monitors cry wolf. Monitor captures block ads/cookies/chat widgets by default, and ignoreSelectors hides your page's dynamic regions before the comparison. Two knobs decide what counts as a change: thresholdPercent (default 0.5% of pixels) and minChangedPixels (default 500).

Create a monitor

curl -X POST https://screenshotforweb.com/api/v1/monitors \
  -H "X-API-Key: sk_live_your_key" -H "Content-Type: application/json" \
  -d '{
    "url": "https://competitor.com/pricing",
    "name": "Competitor pricing",
    "frequencyMinutes": 60,
    "thresholdPercent": 0.5,
    "ignoreSelectors": [".ad-slot", ".carousel"],
    "webhookUrl": "https://your-app.com/webhooks/changes",
    "webhookSecret": "whsec_...",
    "notifyEmail": "you@company.com"
  }'

The first check captures the baseline; every later check compares against the previous capture (rolling baseline).

Webhook payload

Signed with your webhookSecret as X-Webhook-Signature: sha256=<hmac> — same scheme as async screenshots.

{
  "type": "monitor.change",
  "monitorId": "9c2f...",
  "monitorName": "Competitor pricing",
  "url": "https://competitor.com/pricing",
  "detectedAt": "2026-07-08T12:00:00Z",
  "change": { "percentChanged": 3.42, "changedPixels": 35012, "dimensionsChanged": false },
  "eventId": "b7d1..."
}

Endpoints

EndpointDoes
POST /monitorscreate a monitor
GET /monitorslist monitors + plan limits
GET /monitors/:idone monitor
PATCH /monitors/:idedit / pause (status: "paused") / resume
DELETE /monitors/:iddelete
GET /monitors/:id/eventschange history with signed before/after/diff image URLs

The dashboard's Change Monitors page wraps all of this — create, pause, and browse the visual change history without writing code.