Wayback Machine Snapshot Lookup avatar

Wayback Machine Snapshot Lookup

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Wayback Machine Snapshot Lookup

Wayback Machine Snapshot Lookup

Full archive history of any URL from the Internet Archive's official CDX API: every snapshot with date, archive link, HTTP status and content digest - or a per-URL summary with first/last capture, snapshots per year and unique content versions. Polite rate control built in. No credentials needed.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

kuon

kuon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Get the full archive history of any URL from the Internet Archive's official CDX API: every snapshot with capture date, direct archive.org link, HTTP status and content digest — or a per-URL summary with first/last capture, snapshots per year and how many distinct content versions exist. Polite rate control towards archive.org is built in. No credentials or API keys needed.

What it does

Give it a list of URLs and pick an output mode:

Snapshots mode (default) — one dataset item per archived capture:

  • capturedAt (ISO 8601) and the raw Wayback timestamp
  • archiveUrl — click-through link to view that capture on web.archive.org
  • httpStatus, mimeType, lengthBytes recorded at capture time
  • digest — content hash; identical digests mean the page didn't change

Summary mode — one dataset item per URL:

  • archived (does any snapshot exist), totalSnapshots (+ totalIsLowerBound when the URL has more than your cap)
  • firstSnapshot and lastSnapshot — the true latest capture is fetched even when the list is truncated
  • snapshotsPerYear — capture counts by year (archival activity profile)
  • uniqueVersions — distinct content digests among retrieved snapshots

URLs that were never archived produce a summary item with archived: false; lookup failures produce a failed item with a clear error. Batch jobs always finish.

Input

FieldTypeDefaultDescription
urlsarrayURLs to look up (exact match, duplicates removed)
outputModeselectsnapshotssnapshots (one item per capture) or summary (one per URL)
maxSnapshotsPerUrlinteger500Cap per URL, oldest first (max 5000)
fromDate / toDatestringFilter captures, YYYY, YYYYMM or YYYYMMDD

Example output (summary mode, abridged)

{
"url": "https://example.com",
"type": "summary",
"status": "success",
"archived": true,
"totalSnapshots": 200,
"totalIsLowerBound": true,
"firstSnapshot": {"capturedAt": "2002-01-20T14:25:10Z", "archiveUrl": "https://web.archive.org/web/20020120142510/http://example.com:80/"},
"lastSnapshot": {"capturedAt": "2026-08-17T16:50:07Z", "archiveUrl": "https://web.archive.org/web/..."},
"snapshotsPerYear": {"2002": 7, "2003": 12},
"uniqueVersions": 3,
"checkedAt": "2026-08-18T09:30:00Z"
}

Typical uses

  • Due diligence: how old is a site really, and how has it changed over the years
  • Recover link targets that have gone dead (find the last good capture)
  • Research and journalism: build a timeline of a page's revisions
  • SEO forensics: when did a page first appear, when did it change

Politeness & terms

  • Uses only the Internet Archive's public CDX API with an honest User-Agent
  • 2 concurrent workers, a pause before every request, and backoff on 429/5xx — wired into the code, not optional
  • No page content is downloaded — only the archive index metadata

Limitations

  • Exact URL matching (no prefix/domain wildcards in this version)
  • snapshotsPerYear and uniqueVersions are computed over retrieved snapshots, so they cover the first maxSnapshotsPerUrl captures for heavily archived URLs
  • The Wayback Machine itself decides what gets archived; unarchived URLs return archived: false

Development (local)

cd actors/wayback-snapshot-lookup
uv venv --python 3.13 .venv && uv pip install -p .venv/bin/python -r requirements.txt
.venv/bin/python tests/run_local_test.py # end-to-end test (apify run equivalent), exit 0 = ALL PASS
../../node_modules/.bin/apify run # real apify CLI local run (input: storage/key_value_stores/default/INPUT.json)

The test runs against a local CDX mock (truncation, revisit rows, retry on 503, unarchived and invalid URLs); expected results live in tests/expected_output.json. Publishing → ../../docs/publishing.md.