Website Change History - Wayback Machine Snapshots + Diff avatar

Website Change History - Wayback Machine Snapshots + Diff

Pricing

from $0.80 / 1,000 snapshots

Go to Apify Store
Website Change History - Wayback Machine Snapshots + Diff

Website Change History - Wayback Machine Snapshots + Diff

List Wayback Machine snapshots of any URL and see exactly what changed between two dates: pricing pages, terms of service, policies, competitor sites.

Pricing

from $0.80 / 1,000 snapshots

Rating

0.0

(0)

Developer

Musedenny

Musedenny

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Website Change History – Wayback Machine Snapshots + Diff

See how any web page changed over time using the Internet Archive's Wayback Machine. List every archived capture of a URL, or get a readable "what changed" report between two dates: the main text of both versions is extracted, compared and summarised, with price changes called out.

Good for pricing pages, terms of service, privacy policies, job pages, product pages and competitor sites.

Uses the official Wayback CDX API and archived pages only. No login, no API key.

Modes

ModeWhat you get
snapshotsOne row per archived capture: time, HTTP status, size, content digest, link. Dedupe with collapse (only when content changed / one per day / month / year). onlyNewSinceLastRun lists only captures newer than the previous run.
compareThe captures closest to compareFrom and compareTo (or the newest), compared: summary, price/figure changes, added/removed lines, unified diff.
timelineConsecutive comparisons across a date range (e.g. one capture per month, up to maxComparisonsPerUrl), so you see when a page changed.
monitorSchedule it: each run compares the capture seen last time with the newest one and reports only new changes. The first run saves a baseline (no comparison charge).

Input example

{
"urls": ["https://www.notion.com/pricing"],
"mode": "compare",
"compareFrom": "2024-06-01",
"compareTo": "2025-09-01"
}

Dates accept YYYY-MM-DD, YYYY-MM or YYYY.

Output examples

Snapshot:

{"type": "snapshot", "url": "https://stripe.com/pricing", "timestamp": "20250101130720",
"capturedAt": "2025-01-01T13:07:20Z", "originalUrl": "https://stripe.com/pricing", "statusCode": 200,
"mimeType": "text/html", "digest": "OSQTIT5IQIOPY5UAH37AE2MIHOYWZZ6N", "lengthBytes": 127566,
"archiveUrl": "https://web.archive.org/web/20250101130720/https://stripe.com/pricing"}

Comparison (real result, shortened):

{
"type": "comparison",
"comparisonKind": "dates",
"url": "https://www.notion.com/pricing",
"from": {"capturedAt": "2024-11-16T22:48:46Z", "archiveUrl": "https://web.archive.org/web/20241116224846/..."},
"to": {"capturedAt": "2025-08-31T18:38:59Z", "archiveUrl": "https://web.archive.org/web/20250831183859/..."},
"summary": "Note: nearest captures are 168 / 0 days from the requested dates. 39 change(s): 168 line(s) added, 156 removed (55% of the text differs). Prices/figures removed: $0, $10, $15, $8 per member, $10 per member, $15 per seat; added: $0 per seat, $20 per seat. …",
"changed": true,
"similarity": 0.4471,
"linesAdded": 168,
"linesRemoved": 156,
"pricesRemoved": ["$8 per member", "$10 per member", "$15 per seat"],
"pricesAdded": ["$0 per seat", "$20 per seat"],
"changes": [{"type": "changed", "before": ["…"], "after": ["…"]}],
"unifiedDiff": "--- before\n+++ after\n@@ …",
"requestedFrom": "20240601", "fromGapDays": 168, "toGapDays": 0
}

Problems with a single URL (no captures, archive errors) come back as {"type": "error", "url": …, "error": …} rows and do not stop the run (only the $0.0003 URL lookup is charged). If the archive fails for 3 URLs in a row, the run stops so you are not charged for an outage.

Pricing (pay per event + usage)

EventPriceWhen
apify-actor-start$0.001Apify built-in event, charged once per run (per GB of memory above 1 GB). Covers start-up cost and deters empty runs.
url-lookup$0.0003One URL looked up in the Wayback Machine index (charged even if it has no captures).
snapshot$0.0008One archived capture listed.
comparison$0.015Two archived captures fetched, main text extracted and compared.

Examples: a year of daily captures of one page = $0.001 + $0.0003 + 365 × $0.0008 = $0.29. A 12-month timeline of one page = 12 comparisons ≈ $0.18. A monitor run with no new capture costs about $0.0013.

Plus Apify platform usage for the run itself (server time), typically $0.0002–0.0005 per run because the Actor is lightweight and capped at 512 MB. The run stops cleanly when your maximum cost per run is reached.

How the text comparison works

Archived pages are fetched exactly as captured (id_ mode, no Wayback toolbar). The main text is taken from <main>/<article> when present, otherwise the body without navigation, header, footer, scripts and forms. Texts are compared block by block; amounts like $29/mo, €12.50 per month, 20% are listed separately so price changes stand out.

Limitations

  • The archive only has what it captured. Busy pages are captured daily; small sites may have months between captures. The result always shows the actual capture dates, and the summary notes it when they are more than 30 days from the dates you asked for.
  • Pages that build their content with JavaScript may have little text in the archived HTML.
  • archive.org can be slow or rate-limit; the Actor paces requests (one every 0.5 s) and retries with backoff.

Local development

pip install -r requirements.txt pytest pytest-asyncio respx
pytest # HTTP mocked
python -m src # reads storage/key_value_stores/default/INPUT.json